このページでは、ワークロード マネージャー リソースへのアクセスを制御する方法について説明します。
Workload Manager は、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] ページに移動します。
- プロジェクト、フォルダ、または組織を選択します。
- アクセス権を取り消すプリンシパルを含む行を探します。次に、 その 行の [ **プリンシパルを編集**]をクリックします。
- 取り消すロールの [Delete] button をクリックし、[Save] をクリックします。
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 Conditions を使用すると、特定の条件が満たされた場合にのみプリンシパルにアクセス権を付与することで、ポリシーをより細かく設定できます。条件は、 プリンシパル、リソース、リクエストに関連する属性に基づいています。たとえば、プリンシパルが特定のリソースから、または特定の時間にリソースにアクセスする場合にのみ、アクセス権を付与できます。
許可ポリシーの条件は、次のタイプの属性に基づいています。
- リソース属性: リソースのサービス、タイプ、名前が含まれます。これらの属性は通常、ロール バインディングによって付与されるアクセスの範囲を変更するために使用されます。
- リクエスト属性: リクエストを行ったプリンシパルの時間やアクセスレベルなど、リクエストの詳細が含まれます。これらの 属性を使用すると、アクセスレベル、日時、宛先 IP アドレスとポート、想定 URL パスなど、リクエストの詳細を評価する条件を作成できます。
Workload Manager でサポートされている条件属性の詳細については、IAM ドキュメントの IAM Conditions の属性のリファレンスをご覧ください。
ワークロード マネージャー リソースに条件付きアクセス権を直接付与することはできません。ただし、プロジェクト、フォルダ、組織などのコンテナ リソースのプリンシパルにロールを付与し、これらのロール バインディングに条件を追加することで、ワークロード マネージャー リソースタイプに条件付きアクセス権を付与できます。コンテナ リソースの許可ポリシーに追加された条件は、そのコンテナ リソースに含まれるリソースによって継承されます。継承された条件の詳細については、IAM ドキュメントの継承された条件のサポートをご覧ください。
ロール バインディングに条件を追加する方法については、IAM ドキュメントの条件付きロール バインディングの管理をご覧ください。
次のステップ
- IAM によるアクセス制御の詳細については、 IAM の概要をご覧ください。
- Workload Manager で使用可能なロールと権限を確認するには、Workload Manager のロールと権限をご覧ください。
- ワークロード マネージャー サービス エージェントについて学習する。
- ワークロード マネージャーに対する認証方法を学習する。