このページでは、ワークロード マネージャー リソースへのアクセスを制御する方法について説明します。
ワークロード マネージャーは、Identity and Access Management(IAM)を使用してリソースへのアクセスを制御します。IAM は、 Google Cloud リソースのきめ細かい認可を管理するためのツールです。つまり、IAM を使用すると、どのリソースで誰が何をできるかを制御できます。
IAM を使用してユーザーにリソースへのアクセス権を付与するには、特定のロールを付与します。IAM ロールは、ワークロード マネージャー リソースでタスクを実行する権限をプリンシパルに付与します。
IAM とその機能の詳細については、IAM のドキュメントをご覧ください。
ワークロード マネージャー リソースへのアクセスを管理する
IAM でアクセスを管理する最も一般的な方法は、許可ポリシーを使用することです。許可ポリシーには、リソースにアクセスできるプリンシパルと、そのプリンシパルがリソースに対して実行できるアクションが記述されています。
以降のセクションでは、 Google Cloud コンソールと Google Cloud CLI を使用して、許可ポリシーでアクセスを管理する方法について説明します。これには、単一のロールの付与や取り消しなど、一般的なタスクの手順が含まれます。複数のロールを同時に付与または取り消すこともできます。詳細については、IAM ドキュメントのプロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
さまざまな Google Cloud リソースに適用されている許可ポリシーを使用して、リソース階層の他のレベルでアクセスを管理することもできます。詳細については、IAM ドキュメントのアクセス制御にリソース階層を使用するをご覧ください。
すべてのリソースが許可ポリシーをサポートしているわけではありません。許可ポリシーを接続できるリソースについては、IAM ドキュメントの許可ポリシーをサポートするリソースをご覧ください。
IAM でアクセスを制御するために使用できる他のポリシー(拒否ポリシーなど)については、IAM ドキュメントの IAM ポリシーの種類をご覧ください。
プロジェクト、フォルダ、または組織に対する単一の IAM ロールを付与する
このセクションでは、プロジェクト、フォルダ、組織レベルでアクセス権を付与する方法について説明します。これにより、プロジェクト、フォルダ、組織とその内部のすべてのリソースに対するユーザーのアクセスが制御されます。
プロジェクト、フォルダ、組織のプリンシパルに 1 つのロールを付与するには、次の操作を行います。
コンソール
- Google Cloud コンソールで、[IAM] ページに移動します。
- プロジェクト、フォルダ、または組織を選択します。
- ロールを付与するプリンシパルを選択します。
- リソースに対する追加のロールをプリンシパルに付与するには、プリンシパルを含む行を見つけて、その行で [ プリンシパルを編集] をクリックし、[ 別のロールを追加] をクリックします。
サービス エージェントにロールを付与するには、[ Google提供のロール付与を含みます] チェックボックスをオンにして、メールアドレスを表示します。
- リソースに対する既存のロールを持たないプリンシパルにロールを付与するには、 [アクセスを許可] をクリックし、プリンシパル ID(
my-user@example.comや//iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.comなど)を入力します。
- リソースに対する追加のロールをプリンシパルに付与するには、プリンシパルを含む行を見つけて、その行で [ プリンシパルを編集] をクリックし、[ 別のロールを追加] をクリックします。
- 付与するロールをプルダウン リストから選択します。セキュリティのベスト プラクティスに沿って、プリンシパルが必要とする権限のみを含むロールを選択してください。
- (省略可)ロールに条件を追加します。
- [保存] をクリックします。リソースのロールがプリンシパルに付与されます。
gcloud
-
Google Cloud コンソールで Cloud Shell をアクティブにします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
-
add-iam-policy-bindingコマンドを使用すると、プリンシパルにロールをすばやく付与できます。後述のコマンドデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE: アクセスを管理するリソースタイプ。projects、resource-manager folders、またはorganizationsを使用します。 -
RESOURCE_ID: Google Cloud プロジェクト、フォルダ、または組織 ID。プロジェクト ID は英数字です(例:my-project)。フォルダ ID と組織 ID は数値です(例:123456789012)。 -
PRINCIPAL: プリンシパルまたはメンバーの識別子。通常、PRINCIPAL_TYPE:IDの形式で指定します。 例:user:my-user@example.comまたはprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com。PRINCIPALに使用できる値の一覧については、プリンシパル ID をご覧ください。プリンシパル タイプが
userの場合、識別子に含まれるドメイン名は Google Workspace ドメインまたは Cloud Identity ドメインである必要があります。Cloud Identity ドメインの設定方法については、Cloud Identity の概要をご覧ください。 -
ROLE_NAME: 付与するロールの名前。次のいずれかの形式で指定してください。- 事前定義ロール:
roles/SERVICE.IDENTIFIER - プロジェクト レベルのカスタムロール:
projects/PROJECT_ID/roles/IDENTIFIER - 組織レベルのカスタムロール:
organizations/ORG_ID/roles/IDENTIFIER
事前定義ロールのリストについては、ロールについてをご覧ください。
- 事前定義ロール:
-
CONDITION: ロール バインディングに追加する条件。条件を追加しない場合は、値Noneを使用します。条件の詳細については、条件の概要をご覧ください。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \ --member=PRINCIPAL --role=ROLE_NAME \ --condition=CONDITION
Windows(PowerShell)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ` --member=PRINCIPAL --role=ROLE_NAME ` --condition=CONDITION
Windows(cmd.exe)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ^ --member=PRINCIPAL --role=ROLE_NAME ^ --condition=CONDITION
レスポンスには、更新された IAM 許可ポリシーが含まれます。
-
プロジェクト、フォルダ、組織に対する単一の IAM ロールを取り消す
このセクションでは、プロジェクト、フォルダ、組織レベルでアクセス権を取り消す方法について説明します。これにより、プロジェクト、フォルダ、組織とその内部のすべてのリソースに対するユーザーのアクセスが制御されます。
プロジェクト、フォルダ、組織のプリンシパルから 1 つのロールを取り消すには、次の操作を行います。
コンソール
- Google Cloud コンソールで、[IAM] ページに移動します。
- プロジェクト、フォルダ、または組織を選択します。
- アクセス権を取り消すプリンシパルを含む行を探します。その行の [ プリンシパルを編集します] をクリックします。
- 取り消すロールの [削除] ボタンをクリックし、[保存] をクリックします。
gcloud
-
Google Cloud コンソールで Cloud Shell をアクティブにします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
-
ユーザーからロールを取り消すには、
remove-iam-policy-bindingコマンドを実行します。gcloud RESOURCE_TYPE remove-iam-policy-binding RESOURCE_ID \ --member=PRINCIPAL --role=ROLE_NAME
次の値を指定します。
-
RESOURCE_TYPE: アクセスを管理するリソースタイプ。projects、resource-manager folders、またはorganizationsを使用します。 -
RESOURCE_ID: Google Cloud プロジェクト、フォルダ、または組織 ID。プロジェクト ID は英数字です(例:my-project)。フォルダ ID と組織 ID は数値です(例:123456789012)。 -
PRINCIPAL: プリンシパルまたはメンバーの識別子。通常、PRINCIPAL_TYPE:IDの形式で指定します。 たとえば、user:my-user@example.comやprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.comです。プリンシパル タイプが
userの場合、識別子に含まれるドメイン名は Google Workspace ドメインまたは Cloud Identity ドメインである必要があります。Cloud Identity ドメインの設定方法については、Cloud Identity の概要をご覧ください。 -
ROLE_NAME: 取り消すロールの名前。次のいずれかの形式で指定してください。- 事前定義ロール:
roles/SERVICE.IDENTIFIER - プロジェクト レベルのカスタムロール:
projects/PROJECT_ID/roles/IDENTIFIER - 組織レベルのカスタムロール:
organizations/ORG_ID/roles/IDENTIFIER
事前定義ロールのリストについては、ロールについてをご覧ください。
- 事前定義ロール:
たとえば、プロジェクト
example-projectのサービス アカウントexample-service-account@example-project.iam.gserviceaccount.comのプロジェクト作成者のロールを取り消すには、次のコマンドを使用します。gcloud projects remove-iam-policy-binding example-project \ --member=serviceAccount:example-service-account@example-project.iam.gserviceaccount.com \ --role=roles/resourcemanager.projectCreator
-
必要なロールを取り消さないように、変更リスクの推奨事項を有効にできます。変更リスクの推奨事項により、 Google Cloud で重要とされているプロジェクト レベルのロールを取り消そうとすると、警告が生成されます。
条件付きアクセス
IAM 条件を使用すると、特定の条件が満たされた場合にのみプリンシパルにアクセス権を付与することで、ポリシーをより詳細に設定できます。条件は、プリンシパル、リソース、リクエストに関連する属性に基づいています。たとえば、特定の場所または特定の時間にリソースにアクセスしている場合にのみ、プリンシパルにアクセス権を付与できます。
許可ポリシーの条件は、次のタイプの属性に基づいています。
- リソース属性: リソースのサービス、タイプ、名前が含まれます。これらの属性は通常、ロール バインディングによって付与されるアクセスのスコープを変更するために使用されます。
- リクエストの属性: リクエストを行ったプリンシパルの時間やアクセスレベルなど、リクエストの詳細が含まれます。これらの属性を使用すると、アクセスレベル、日時、宛先 IP アドレスとポート、想定 URL パスなど、リクエストの詳細情報を評価する条件を作成できます。
Workload Manager でサポートされている条件属性の詳細については、IAM ドキュメントの IAM Conditions の属性リファレンスをご覧ください。
Workload Manager リソースに条件付きアクセスを直接付与することはできません。ただし、プロジェクト、フォルダ、組織などのコンテナ リソースのプリンシパルにロールを付与し、これらのロール バインディングに条件を追加することで、ワークロード マネージャー リソースタイプに条件付きアクセス権を付与できます。コンテナ リソースの許可ポリシーに追加された条件は、そのコンテナ リソースに含まれるリソースに継承されます。継承された条件の詳細については、IAM ドキュメントの継承された条件のサポートをご覧ください。
ロール バインディングに条件を追加する方法については、IAM ドキュメントの条件付きロール バインディングの管理をご覧ください。
次のステップ
- IAM によるアクセス制御の詳細については、IAM の概要をご覧ください。
- ワークロード マネージャー で使用可能なロールと権限を表示するには、ワークロード マネージャー のロールと権限をご覧ください。
- Workload Manager サービス エージェントについて学習する。
- ワークロード マネージャーの認証方法を確認する。