読み込んでいます...
一致する結果は見つかりませんでした。

Google Cloud Skills Boost

Google Cloud コンソールでスキルを試す

Managing Security in Google Cloud - 日本語版

700 以上のラボとコースにアクセス

IAM の構成 - Identity and Access Management

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

概要

このラボでは、Identity and Access Management(IAM)を構成して、ロールを付与し、カスタムロールを作成します。IAM を使用すると、Google Cloud リソースの権限を作成および管理できます。IAM は、Google Cloud サービスに関するアクセス制御を 1 つのシステムに統合し、一貫性のあるオペレーションを提供します。

目標

このラボでは、次の方法について学びます。

  • IAM を使用してアクセス制御を実装する
  • 特定の機能やリソースへのアクセスを制限する
  • 事前定義ロールを使用して Google Cloud へのアクセス権を付与する
  • カスタム IAM ロールを作成して、職務に基づく権限を付与する
  • カスタムロールを変更する

設定と要件

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

タスク 1. 2 つのユーザー アカウントでログインする

このタスクでは、2 つの異なるユーザー アカウントを使用してログインします。それらのアカウントは、特定のリソースへの IAM アクセス権を調べるために、後ほど使用されます。

1 人目のユーザーとして Google Cloud コンソールにログインする

Qwiklabs の [接続の詳細] ダイアログで、このラボ用の 2 つのユーザー名が提供されています。

  1. Chrome のシークレット ウィンドウを開いて、Qwiklabs で提供されている Username 1 を使用して Cloud コンソールにログインします。どちらのユーザー名でも同じパスワードを使用します。
  2. この一時的な Google アカウントの利用規約に同意します。
  3. これは一時的なアカウントであるため、再設定オプションの情報を追加したり、無料トライアルに登録したりしないでください。
  4. プロンプトが表示されたら、Google Cloud の利用規約に同意します。

2 人目のユーザーとして Cloud コンソールにログインする

  1. シークレット ウィンドウで別のブラウザタブを開きます。
  2. Cloud コンソールに移動します。
  3. 画面右上にあるユーザー アイコンをクリックし、[アカウントを追加] をクリックします。
  4. Qwiklabs で提供されている Username 2 を使用して、Cloud コンソールにログインします。
注: このラボの特定の時点で Username 1 アカウントからログアウトすると、Qwiklabs によって Username 2 アカウントが削除されます。そのため、Username 1 でログインしたままにしてください。

タスク 2. IAM コンソールで現在のロールを調べる

このタスクでは、Username 1 および Username 2 の現在のロールを確認していきます。

IAM コンソールに移動してロールを調べる

Cloud コンソールの [Username 1] タブが開いていることを確認します。

  1. IAM コンソールを表示するには、ナビゲーション メニュー[IAM と管理] > [IAM] をクリックします。
  2. IAM コンソールで、Username 1 の行を見つけます。Username 1 にはいくつかのロールが割り当てられています(プロジェクト オーナーなど)。
  3. Username 2 の行を見つけます。Username 2 にはプロジェクト閲覧者のロールが割り当てられています。
注: 次の 3 つのステップでは、権限を変更しないでください。ここで編集機能を使用するのは、割り当てられているロールを確認するためだけです。
  1. Username 2 の行の [プリンシパルを編集します] ボタン をクリックします。
  2. [閲覧者] をクリックして、選択できるロールのリストを表示します。 Username 1 はプロジェクト オーナーなのでロールを変更できますが、ここではまだ変更しないでください。
  3. ロールのリストの外側をクリックしてリストを閉じ、[キャンセル] をクリックします。
  4. Username 2 の Cloud コンソールのタブに切り替えます。
  5. ナビゲーション メニューで、[IAM と管理] > [IAM] をクリックします。
  6. Username 2 の行の [プリンシパルを編集します] ボタン をクリックします。今度はロールを編集できません。Username 2 には現在、プロジェクトを表示するためのアクセス権(プロジェクト閲覧者)はありますが、変更の権限はありません。

タスク 3. アクセステストのためにリソースを準備する

このタスクでは、Cloud Storage バケットおよびサンプル テキスト ファイルを作成します。Username 2 を使用したサンプル ファイルへのアクセスをテストします。

バケットを作成してサンプル ファイルをアップロードする

  1. Cloud コンソールの [Username 1] タブに切り替えます。
  2. Google Cloud コンソールのタイトルバーで、Cloud Shell をアクティブにするアイコン()をクリックします。プロンプトが表示された場合、[続行] をクリックします。
  3. 次のコマンドを実行して、 に新しい Storage バケットを作成します。
gcloud storage buckets create -l {{{project_0.default_region | Region}}} gs://$DEVSHELL_PROJECT_ID
  1. 次のコマンドを実行して、Cloud Shell でサンプル テキスト ファイルを作成します。
echo "this is a sample file" > sample.txt
  1. 次のコマンドを実行して、先ほど作成したバケットにそのファイルをコピーします。
gcloud storage cp sample.txt gs://$DEVSHELL_PROJECT_ID

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 アクセステストのためのリソースを準備する

プロジェクト閲覧者ロールのアクセス権を確認する

  1. Cloud コンソールの [Username 2] タブに切り替えます。
  2. Cloud Shell をアクティブにするアイコン をクリックして Cloud Shell を開きます。プロンプトが表示されたら、[続行] をクリックします。
  3. 次のコマンドを実行して、Username 2 がバケット内のファイルを表示できることを確認します。
gcloud storage ls gs://$DEVSHELL_PROJECT_ID
  1. 次のコマンドを実行して、ファイルを作成してバケットにアップロードできるか試してみます。
echo "this is another file" > sample2.txt gcloud storage cp sample2.txt gs://$DEVSHELL_PROJECT_ID

Username 2 にはプロジェクト閲覧者のロールしかないため、Cloud Storage にファイルをアップロードすることはできません。

出力:

Copying file://sample2.txt ERROR: User xxx does not have permission to access b instance (or it may not exist): student-xx-xxxx@qwiklabs.net does not have storage.objects.create access to the Google Cloud Storage object.

タスク 4. プロジェクトへのアクセス権を削除する

このタスクでは、Username 2 のプロジェクト閲覧者のロールを削除します。Username 2 が Cloud Storage バケットへのアクセス権を失ったことを確認します。

Username 2 のプロジェクト閲覧者のロールを削除する

  1. Cloud コンソールの [Username 1] タブに切り替えます。
  2. ナビゲーション メニューで、[IAM と管理] > [IAM] をクリックします。
  3. Username 2 の鉛筆アイコンの編集ボタン()をクリックします。
  4. 割り当てられているロールの横にある削除アイコンをクリックします。
  5. [保存] をクリックします。

このユーザーがリストから消去されていると、アクセス権が取り消されていることになります。Username 2 には引き続き Google Cloud アカウントがありますが、プロジェクトへのアクセス権はありません。

Username 2 がアクセス権を失ったことを確認する

  1. Cloud コンソールの [Username 2] タブに切り替えます。
  2. Cloud Shell で次のコマンドを実行して、Username 2 がバケット内のファイルを表示できなくなったことを確認します。
gcloud storage ls gs://$DEVSHELL_PROJECT_ID

出力:

ERROR: User xxx does not have permission to access b instance (or it may not exist): student-xx-xxxx@qwiklabs.net does not have storage.objects.list access to the Google Cloud Storage bucket.
  1. 引き続きファイルを表示できる場合は、アクセス権の変更がまだ反映されていません。しばらくしてからもう一度コマンドを実行してみてください。Permission denied on resource が表示されるまで繰り返してください。
  2. Username 2 のコンソールから Compute Engine サービスにアクセスできるか試してみます。ナビゲーション メニューで、[Compute Engine] > [VM インスタンス] をクリックします。Compute Engine ダッシュボードを表示することもできません。

注: Username 2 には引き続き Google Cloud アカウントがありますが、Cloud コンソールからも CLI からもプロジェクトにアクセスできません。

タスク 5. ストレージへのアクセス権を追加する

このタスクでは、Username 2 に Storage オブジェクト閲覧者の権限を追加し、ユーザーが Cloud Storage バケットのコンテンツを閲覧できることを確認します。

Username 2 に Storage オブジェクト閲覧者の権限のみを追加する

  1. Qwiklabs の [接続の詳細] ダイアログから Username 2 の値をコピーします。
  2. Cloud コンソールの [Username 1] タブに切り替えます。
  3. ナビゲーション メニューで、[IAM と管理] > [IAM] をクリックします。
  4. [アクセスを許可] をクリックしてユーザーを追加します。
  5. [新しいプリンシパル] に、Qwiklabs の [接続の詳細] ダイアログからコピーした Username 2 の値を貼り付けます。

次のステップでは、事前定義ロールを使用して Username 2 に Storage オブジェクト閲覧者の権限を付与します。どのような事前定義ロールがあるか自由にご覧いただいてかまいません。

  1. [ロールを選択] で、[Cloud Storage] > [Storage オブジェクト閲覧者] をクリックします。

  2. [保存] をクリックします。

Username 2 がストレージへのアクセス権を得たことを確認する

  1. Cloud コンソールの [Username 2] タブに切り替えます。
注: Username 2 にはプロジェクト閲覧者のロールがないため、引き続き Cloud コンソールでプロジェクトやプロジェクトのリソースを表示することはできません。たとえば、Compute Engine ダッシュボードは引き続き表示できません。ただし、Cloud Storage の表示に特化したアクセス権があるため、API 呼び出しでストレージを表示できます。
  1. Cloud Shell で次のコマンドを実行して、前に作成したバケットの内容を表示します。
gcloud storage ls gs://$DEVSHELL_PROJECT_ID

これで、Cloud Storage の表示に限定されたアクセス権が Username 2 に付与されたことがわかります。

タスク 6. カスタムロールを作成する

このタスクでは、プライバシー審査担当者の職務に合わせたカスタムロールを作成します。プライバシー審査担当者は、データ プライバシーのレビューを行います。そのため、Cloud Storage、Cloud Bigtable、Cloud Spanner など、さまざまなサービスのデータを表示する権限が必要です。

Google Cloud には、「カスタムロール」を作成する機能があります。カスタムロールは、組織の特定の職務を Google Cloud の権限にマッピングするために利用できます。複数の Google Cloud サービスの権限を 1 つのロールにまとめて、その新しいロールを組織全体で共有できます。

注: 一般的に、まずは Google によって管理されている事前定義ロールを使用することをおすすめします。カスタムロールを作成して使用すると、より自在に権限を設定できますが、手動での管理が必要となるため運用上のオーバーヘッドが増加します。

カスタムロールは、既存の事前定義ロールに基づいて作成することもできます。ただし、ベースとなった事前定義ロールがカスタムロールの作成後に変更された場合、それらの変更はカスタムロールに継承されません。

カスタムロールを作成するには、iam.roles.createpermission 権限が必要です。デフォルトでは、プロジェクトや組織のオーナーがこの権限を持ち、カスタムロールを作成して管理できます。このラボでは、Username 1 がプロジェクト オーナーです。

Cloud コンソールを使用してカスタムロールを作成する

  1. Cloud コンソールの [Username 1] タブに切り替えます。
  2. ナビゲーション メニューで、[IAM と管理] > [ロール] をクリックします。このページには現在、すべての事前定義ロールが表示されています。数多くのロールがあることがわかります(数百ページあります)。
  3. [ロールを作成] をクリックします。
  4. 以下の値を使用してロールを作成します。

タイトル

説明

ID

ロールのリリース段階

Privacy Reviewer

Custom role to perform data reviews

privacyreviewer

アルファ版

各プレースホルダ値の詳細は、以下のとおりです。

  • タイトル: ロールのわかりやすいタイトル(例: Role Viewer)
  • 説明: ロールについての短い説明(例: My custom role description)
  • ID: 一意の ID
  • ロールのリリース段階: リリース ライフサイクルにおけるロールの段階(例: アルファ版、ベータ版、一般提供、無効)
  1. [権限を追加] をクリックします。
  2. [フィルタ] フィールドに「storage」と入力して、Enter キーを押します。
  3. storage.buckets.liststorage.objects.liststorage.objects.get を選択し、[追加] をクリックします。
注: 必要な権限が表示されていない場合、次のページを参照する必要がある場合があります。
  1. 再び [権限を追加] をクリックします。
  2. [フィルタ] フィールドに「spanner」と入力して、Enter キーを押します。
  3. spanner.databases.getspanner.databases.list を選択し、[追加] をクリックします。
  4. 再び [権限を追加] をクリックします。
  5. [フィルタ] フィールドに「bigtable」と入力して、Enter キーを押します。
  6. bigtable.tables.getbigtable.tables.listbigtable.tables.readRows を選択し、[追加] をクリックします。

権限が次のようになるはずです。

  1. [作成] をクリックします。

作成した新しいカスタムロールがロールの表の一番上に表示されます。

CLI と YAML ファイルを使用してカスタムロールを作成する

  • CLI と YAML ファイルを使用してロールを作成することもできます。YAML ファイルに次のような形式でロールの定義を含めます。
title: [ROLE_TITLE] description: [ROLE_DESCRIPTION] stage: [LAUNCH_STAGE] includedPermissions: - [PERMISSION_1] - [PERMISSION_2]
  • したがって、先ほど Cloud コンソールで作成したロールの YAML は次のようになります。
title: Privacy Reviewer description: Custom role to perform data reviews stage: ALPHA includedPermissions: - storage.buckets.list - storage.objects.list - storage.objects.get - spanner.databases.get- spanner.databases.list - bigtable.tables.get - bigtable.tables.list - bigtable.tables.readRows

この YAML ファイルをコピーしないでください。ここでは別のロールを CLI で作成します。

  1. 引き続き Username 1 のブラウザタブを表示していることを確認し、まだ Cloud Shell を開いていない場合は開きます。

  2. 次のコマンドを実行して、role.yaml という新しいファイルを作成します。

nano role.yaml
  1. 次のロール定義をコピーして、Cloud Shell の nano エディタに貼り付けます。
title: App Viewer description: Custom role to view apps stage: ALPHA includedPermissions: - compute.instances.get - compute.instances.list - appengine.versions.get - appengine.versions.list
  1. Ctrl+XYEnter の順にキーを押して、ファイルを保存します。
  2. 次のコマンドを実行して、新しいロールを作成します。
gcloud iam roles create app_viewer --project \ $DEVSHELL_PROJECT_ID --file role.yaml

次のような出力が表示されます。

出力:

Created role [app_viewer]. description: Custom role to view apps etag: BwVshqVuvBs= includedPermissions: - appengine.versions.get - appengine.versions.list - compute.instances.get - compute.instances.list name: projects/xxxxxxxxxx/roles/app_viewer stage: ALPHA title: App Viewer
  1. 次のコマンドを実行して、プロジェクトのすべてのカスタムロールを一覧表示します。
gcloud iam roles list --project $DEVSHELL_PROJECT_ID

作成したロールが両方とも表示されます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 カスタムロールを作成する

タスク 7. カスタムロールを使用する

このタスクでは、カスタムロールを作成して、Username 2 に割り当てます。

  1. Cloud コンソールの [Username 1] タブが開いていることを確認します。
  2. ナビゲーション メニューで、[IAM と管理] > [IAM] をクリックします。
  3. IAM コンソールで、Username 2 の行を見つけて [プリンシパルを編集します] ボタン()をクリックします。Username 2 には現在、Storage オブジェクト閲覧者のロールが割り当てられているはずです。
  4. [別のロールを追加] をクリックし、[ロールを選択] をクリックします。
  5. [Custom] カテゴリで、作成したロールのいずれかを選択します。
  6. [保存] をクリックします。

これで、作成したカスタムロールの 1 つが Username 2 に割り当てられました。

タスク 8. カスタムロールを管理する

このタスクでは、カスタムロールの変更、無効化、削除、削除の取り消しを行います。

Google Cloud サービスで利用できる権限は時間が経つと変更されることもあるため、カスタムロールを使用する際には、作成したロールに関連付けられている権限を把握しておくことが重要です。Google Cloud の事前定義ロールとは異なり、権限の追加や削除をご自身で管理する必要があります。

ロールの権限を変更する

既存のロールに変更を加えるには、まずそのロールの定義を取得して更新してから、ロールそのものを更新します。

  1. Cloud コンソールの [Username 1] タブが開いていることを確認します。
  2. Cloud Shell で次のコマンドを実行して、app_viewer ロールの定義を取得します。
gcloud iam roles describe app_viewer --project \ $DEVSHELL_PROJECT_ID

describe コマンドは次の出力を返します。

出力:

description: Custom role to view apps etag: [Etag value] includedPermissions: - appengine.versions.get - appengine.versions.list - compute.instances.get - compute.instances.list name: projects/[Project_ID]/roles/app_viewer stage: DISABLED title: App Viewer
  1. describe コマンドの出力をコピーします。description の行から title の行までをコピーしてください。
  2. 次のコマンドを実行して、新しい YAML ファイルを作成します。
nano update-role.yaml
  1. describe コマンドの出力を nano エディタに貼り付けます。
  2. includedPermissions: の一連の行のすぐ下に次の 2 行を追加します。
- container.clusters.get - container.clusters.list
  1. Ctrl+XYEnter の順にキーを押して、ファイルを保存します。
  2. 次のコマンドを実行して、app_viewer ロールを更新します。
gcloud iam roles update app_viewer --project \ $DEVSHELL_PROJECT_ID --file update-role.yaml

app_viewer ロールが更新されて、2 つの権限が追加されました。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ロールの権限を変更する

ロールを無効にする

カスタムロールは、無効化することができます。ロールを無効にすると、そのロールに関連するポリシー バインディングはすべて無効になります。つまり、ユーザーにロールを付与してもロールの権限は付与されません。

  1. Cloud コンソールの [Username 1] タブが開いていることを確認します。
  2. Cloud Shell で次のコマンドを実行して、このラボで作成した app_viewer ロールを無効にします。
gcloud iam roles update app_viewer --project \ $DEVSHELL_PROJECT_ID --stage DISABLED

ロールを削除する

削除されたロールは停止され、新しい IAM ポリシー バインディングの作成に使用できなくなります。ロールが削除された後、既存のバインディングは残りますが無効になります。ロールの削除は、7 日以内は取り消し可能です。7 日が過ぎるとロールの完全削除プロセスが開始され、これは 30 日間続きます。

  1. Cloud コンソールの [Username 1] タブが開いていることを確認します。
  2. Cloud Shell で次のコマンドを実行して、このラボで作成した app_viewer ロールを削除します。
gcloud iam roles delete app_viewer --project \ $DEVSHELL_PROJECT_ID
  1. 次のコマンドを実行して、プロジェクトのすべてのロールを一覧表示します。
gcloud iam roles list --project $DEVSHELL_PROJECT_ID

削除した app_viewer ロールは表示されません。

  1. 削除したロールも含めてプロジェクトのすべてのロールを一覧表示するには、次のコマンドを実行します。
gcloud iam roles list --project $DEVSHELL_PROJECT_ID \ --show-deleted

ロールの削除を取り消す

7 日以内であれば、ロールの削除を取り消すことができます。

  1. app_viewer ロールの削除を取り消すには、Cloud Shell で次のコマンドを実行します。
gcloud iam roles undelete app_viewer --project \ $DEVSHELL_PROJECT_ID
  1. 次のコマンドを実行して、プロジェクトのすべてのロールを一覧表示します。
gcloud iam roles list --project $DEVSHELL_PROJECT_ID

再び app_viewer ロールが表示されます。

まとめ

このラボでは次の作業を行いました。

  1. IAM を使用してアクセス制御を実装する

  2. 特定の機能やリソースへのアクセスを制限する

  3. 事前定義ロールを使用して Google Cloud へのアクセス権を付与する

  4. カスタム IAM ロールを作成して独自の職務に基づく権限を付与する

  5. カスタムロールを変更する

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。

前へ 次へ

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
プレビュー