プリンシパル アクセス境界(PAB)ポリシーを使用すると、一連のプリンシパルがアクセスできるリソースを制限できます。プリンシパル セットにプリンシパル アクセス境界ポリシーを適用する必要がなくなった場合は、ポリシーをプリンシパル セットにバインドするポリシー バインディングを削除できます。プリンシパル アクセス境界ポリシーを、バインドされているすべてのプリンシパル セットから削除するには、ポリシーを削除します。
プリンシパル セットからプリンシパル アクセス境界ポリシーを削除すると、次のいずれかの効果があります。
- プリンシパル セット内のプリンシパルが他のプリンシパル アクセス境界ポリシーの対象でない場合、すべての Google Cloud リソースにアクセスできます。
- プリンシパル セット内のプリンシパルが他のプリンシパル アクセス境界ポリシーの対象となる場合、それらのプリンシパルは、それらのポリシー内のリソースにのみアクセスできます。
始める前に
認証を設定します。
Select the tab for how you plan to use the samples on this page:
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
プリンシパル アクセス境界ポリシーの概要を確認します。
プリンシパル アクセス境界ポリシーの削除に必要なロール
プリンシパル アクセス境界ポリシーの削除に必要な権限を取得するため、組織に対するプリンシパル アクセス境界管理者(
roles/iam.principalAccessBoundaryAdmin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。この事前定義ロールには、プリンシパル アクセス境界ポリシーの削除に必要な
iam.principalaccessboundarypolicies.delete
権限が含まれています。カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。
プリンシパル アクセス境界ポリシー バインディングの削除に必要なロール
プリンシパル アクセス境界ポリシーのポリシー バインディングを削除するために必要な権限は、ポリシーにバインドされているプリンシパル セットによって異なります。
プリンシパル アクセス境界ポリシーのポリシー バインディングを削除するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼します。
-
組織に対するプリンシパル アクセス境界ユーザー(
roles/iam.principalAccessBoundaryUser
) -
Workforce Identity 連携プールにバインドされているプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: 対象の Workforce Identity 連携プールに対する IAM Workforce プール管理者(
roles/iam.workforcePoolAdmin
) -
Workload Identity 連携プールにバインドされたプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: 対象の Workforce Identity 連携プールを所有するプロジェクトに対する IAM Workload Identity プール管理者(
roles/iam.workloadIdentityPoolAdmin
) -
Google Workspace ドメインにバインドされたプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: 組織に対する Workspace プール IAM 管理者(
roles/iam.workspacePoolAdmin
) -
プロジェクトのプリンシパル セットにバインドされているプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: プロジェクトに対するプロジェクト IAM 管理者(
roles/resourcemanager.projectIamAdmin
) -
フォルダのプリンシパル セットにバインドされているプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: フォルダに対するフォルダ IAM 管理者(
roles/resourcemanager.folderIamAdmin
) -
組織のプリンシパル セットにバインドされているプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: 組織に対する組織管理者(
roles/resourcemanager.organizationAdmin
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、プリンシパル アクセス境界ポリシーのポリシー バインディングを削除するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
プリンシパル アクセス境界ポリシーのポリシー バインディングを削除するには、次の権限が必要です。
- 組織に対する
iam.principalaccessboundarypolicies.unbind
-
Workforce Identity 連携プールにバインドされているプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: Workforce Identity 連携プールに対する
iam.workforcePools.deletePolicyBinding
-
Workload Identity 連携プールにバインドされているプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: 対象の Workforce Identity 連携プールを所有するプロジェクトに対する
iam.workloadIdentityPools.deletePolicyBinding
-
Google Workspace ドメインにバインドされているプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: 組織に対する
iam.workspacePools.deletePolicyBinding
-
プロジェクトのプリンシパル セットにバインドされたプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: プロジェクトに対する
resourcemanager.projects.deletePolicyBinding
-
フォルダのプリンシパル セットにバインドされたプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: フォルダに対する
resourcemanager.folders.deletePolicyBinding
-
組織のプリンシパル セットにバインドされているプリンシパル アクセス境界ポリシーのポリシー バインディングを削除する: 組織に対する
resourcemanager.organizations.deletePolicyBinding
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
プリンシパル アクセス境界ポリシーの削除を準備する
プリンシパル アクセス境界ポリシーを削除する前に、次の目標のうち、いずれを達成する必要があるかを決定します。
- プリンシパル セット内のプリンシパルがすべてのリソースにアクセスできるようにする
- プリンシパル セット内のプリンシパルがアクセスできるリソースの数を減らす
以降のセクションでは、これらの各目標を達成するために必要な手順について説明します。
プリンシパルがすべてのリソースにアクセスできるようにする
プリンシパル セット内のプリンシパルがすべてのリソースにアクセスできるようにする手順は、次のとおりです。
- プリンシパル セットにバインドされているすべてのプリンシパル アクセス境界ポリシーを特定します。
- 関連するポリシー バインディングを削除して、プリンシパル セットにバインドされているすべてのプリンシパル アクセス境界ポリシーを削除します。
プリンシパルがどのプリンシパル アクセス境界ポリシーの対象でもない場合、そのプリンシパルはすべての Google Cloud リソースにアクセスできます。
リソースにアクセスする資格がある場合でも、必ずしもユーザーがリソースにアクセスできるとは限りません。詳細については、ポリシー評価をご覧ください。
プリンシパルがアクセスできるリソースを減らす
プリンシパル セット内のプリンシパルが複数のプリンシパル アクセス境界ポリシーの対象となっている場合は、それらのプリンシパルを対象とするプリンシパル アクセス境界ポリシーを 1 つ以上削除することで、それらのプリンシパルがアクセスできるリソースの数を減らすことができます。ただし、どのような場合でも、目的のプリンシパルを対象とするプリンシパル アクセス境界ポリシーをすべて削除することは避けてください。削除すると、それらのプリンシパルはすべての Google Cloud リソースにアクセスできるようになります。
プリンシパル セット内のプリンシパルが常に少なくとも 1 つのプリンシパル アクセス境界ポリシーの対象となるようにしながら、プリンシパル アクセス境界ポリシーを削除する手順は次のとおりです。
- プリンシパル セットにバインドされているすべてのプリンシパル アクセス境界ポリシーを特定します。
プリンシパル セット内のプリンシパルがアクセスできるようにするリソースのみを含むプリンシパル アクセス境界ポリシーを特定します。それらのポリシーが、プリンシパル セットから削除しないポリシーになります。
このようなポリシーがない場合は、プリンシパルがアクセスできるようにするリソースのみを含む新しいプリンシパル アクセス境界ポリシーを作成します。次に、プリンシパル セットにポリシーを関連付けます。
プリンシパル セット内のプリンシパルがアクセスできないようにするリソースを含むプリンシパル アクセス境界ポリシーを特定します。次に、関連するポリシー バインディングを削除して、これらのプリンシパル アクセス境界ポリシーを削除します。
特定のプリンシパルのアクセスを制限する場合は、ポリシー バインディングを削除するのではなく、ポリシー バインディングに条件を追加します。
プリンシパルがアクセスできるリソースの数を減らす際に、どのプリンシパル アクセス境界ポリシーも削除したくない場合は、代わりに、そのプリンシパルを対象とするプリンシパル アクセス境界ポリシーを変更できます。プリンシパル アクセス境界ポリシーを変更する方法については、プリンシパル アクセス境界ポリシーを編集するをご覧ください。
プリンシパル セットからプリンシパル アクセス境界ポリシーを削除する
プリンシパル セットからプリンシパル アクセス境界ポリシーを削除する前に、まず、ポリシーの削除を準備します。次に、ポリシーをプリンシパル セットにバインドしているポリシー バインディングを削除して、ポリシーを削除します。
ポリシー バインディングは、Google Cloud コンソール、gcloud CLI、または IAM REST API を使用して削除できます。
コンソール
Google Cloud コンソールで、プリンシパル アクセス境界ポリシーのページに移動します。
バインディングを削除するプリンシパル アクセス境界ポリシーの組織を選択します。
バインディングを削除するプリンシパル アクセス境界ポリシーのポリシー ID をクリックします。
[バインディング] タブをクリックします。
削除するバインディングの ID を見つけます。そのバインディングの行で、
(アクション)をクリックし、[バインディングを削除] をクリックします。確認ダイアログで [削除] をクリックします。
gcloud
gcloud beta iam policy-bindings delete
コマンドは、ポリシー バインディングを削除します。後述のコマンドデータを使用する前に、次のように置き換えます。
-
BINDING_ID
: 削除するポリシー バインディングの ID(例:example-binding
)。 -
RESOURCE_TYPE
: ポリシー バインディングの子である Resource Manager リソースのタイプ(プロジェクト、フォルダ、組織)。値project
、folder
、またはorganization
を使用します。リソースタイプは、ポリシー バインディングで設定されたプリンシパルによって異なります。使用するリソースタイプを確認するには、サポートされているプリンシパル タイプをご覧ください。
RESOURCE_ID
: ポリシー バインディングが子であるプロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud beta iam policy-bindings delete BINDING_ID \ --RESOURCE_TYPE=RESOURCE_ID --location=global
Windows(PowerShell)
gcloud beta iam policy-bindings delete BINDING_ID ` --RESOURCE_TYPE=RESOURCE_ID --location=global
Windows(cmd.exe)
gcloud beta iam policy-bindings delete BINDING_ID ^ --RESOURCE_TYPE=RESOURCE_ID --location=global
レスポンスには、リクエストを表す長時間実行オペレーションが含まれます。
Delete request issued for: [example-binding] Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374724030-6181fcd1520c5-d21b0a12-b704e1ce] to complete...done. Deleted policyBinding [example-binding].
REST
policyBindings.delete
メソッドは、ポリシー バインディングを削除します。リクエストのデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE
: ポリシー バインディングの子である Resource Manager リソースのタイプ(プロジェクト、フォルダ、組織)。値projects
、folders
、またはorganizations
を使用します。リソースタイプは、ポリシー バインディングで設定されたプリンシパルによって異なります。使用するリソースタイプを確認するには、サポートされているプリンシパル タイプをご覧ください。
RESOURCE_ID
: ポリシー バインディングが子であるプロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。-
BINDING_ID
: 削除するポリシー バインディングの ID(例:example-binding
)。
HTTP メソッドと URL:
DELETE https://iam.googleapis.com/v3beta/RESOURCE_TYPE/RESOURCE_ID/locations/global/policyBindings/BINDING_ID
リクエストを送信するには、次のいずれかのオプションを開きます。
レスポンスには、リクエストを表す長時間実行オペレーションが含まれます。
{ "name": "organizations/123456789012/locations/global/operations/operation-1715373190994-6181f71b4daad-6d8168c1-13cc6600", "metadata": { "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata", "createTime": "2024-05-10T20:33:11.165728913Z", "target": "organizations/123456789012/locations/global/policyBindings/example-binding", "verb": "delete", "requestedCancellation": false, "apiVersion": "v3beta" }, "done": false }
プリンシパル アクセス境界ポリシーを削除する
プリンシパル アクセス境界ポリシーを削除する前に、そのプリンシパル アクセス境界ポリシーを参照するすべてのプリンシパル アクセス境界ポリシー バインディングを特定して削除することをおすすめします。
既存のポリシー バインディングを含むプリンシパル アクセス境界ポリシーを削除すると、最終的には、それらのバインディングも削除されます。ただし、それらのポリシー バインディングは、削除されるまで、1 つのプリンシパル セットを参照できるバインディングは最大 10 個という上限に引き続きカウントされます。
プリンシパル アクセス境界ポリシーは、Google Cloud コンソール、gcloud CLI、または IAM REST API を使用して削除できます。
コンソール
Google Cloud コンソールで、プリンシパル アクセス境界ポリシーのページに移動します。
バインディングを削除するプリンシパル アクセス境界ポリシーの組織を選択します。
削除するポリシーの ID を見つけます。そのポリシーの行で、
(アクション)をクリックし、[ポリシーを削除] をクリックします。確認ダイアログで、ポリシーの削除を確定します。
- ポリシーに関連付けられたバインディングがない場合にのみポリシーを削除するには、[削除] をクリックします。
- ポリシーと関連付けられているすべてのバインディングを削除するには、[Forcefully delete policy] チェックボックスをオンにして、[削除] をクリックします。
gcloud
gcloud iam gcloud beta iam principal-access-boundary-policies delete
コマンドは、プリンシパル アクセス境界ポリシーとそれに関連付けられているすべてのバインディングを削除します。後述のコマンドデータを使用する前に、次のように置き換えます。
-
PAB_POLICY_ID
: 削除するプリンシパル アクセス境界ポリシーの ID(例:example-policy
)。 ORG_ID
: プリンシパル アクセス境界ポリシーを所有する組織の ID。組織 ID は数値で指定します(例:123456789012
)。FORCE_FLAG
: 省略可。既存のポリシー バインディングでポリシーが参照されている場合でも、そのポリシーをコマンドによって強制的に削除するには、--force
フラグを使用します。このフラグが設定されていない場合に、既存のポリシー バインディングでポリシーが参照されていると、コマンドは失敗します。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud beta iam principal-access-boundary-policies delete PAB_POLICY_ID \ --organization=ORG_ID --location=global FORCE_FLAG
Windows(PowerShell)
gcloud beta iam principal-access-boundary-policies delete PAB_POLICY_ID ` --organization=ORG_ID --location=global FORCE_FLAG
Windows(cmd.exe)
gcloud beta iam principal-access-boundary-policies delete PAB_POLICY_ID ^ --organization=ORG_ID --location=global FORCE_FLAG
レスポンスには、リクエストを表す長時間実行オペレーションが含まれます。
Delete request issued for: [example-policy] Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374811191-6181fd2471ab4-f0947406-85778c43] to complete... Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374811191-6181fd2471ab4-f0947406-85778c43] to complete...done. Deleted principalAccessBoundaryPolicy [example-policy].
REST
principalAccessBoundaryPolicies.delete
メソッドは、プリンシパル アクセス境界ポリシーとそれに関連するすべてのバインディングを削除します。リクエストのデータを使用する前に、次のように置き換えます。
ORG_ID
: プリンシパル アクセス境界ポリシーを所有する組織の ID。組織 ID は数値で指定します(例:123456789012
)。-
PAB_POLICY_ID
: 削除するプリンシパル アクセス境界ポリシーの ID(例:example-policy
)。 -
FORCE_DELETE
: 省略可。既存のポリシー バインディングでポリシーが参照されている場合でも、そのポリシーをリクエストによって強制的に削除するには、クエリ パラメータforce=true
を追加します。このクエリ パラメータが設定されていない場合に、既存のポリシー バインディングでポリシーが参照されていると、リクエストは失敗します。
HTTP メソッドと URL:
DELETE https://iam.googleapis.com/v3beta/organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID?FORCE_DELETE
リクエストを送信するには、次のいずれかのオプションを開きます。
レスポンスには、リクエストを表す長時間実行オペレーションが含まれます。
{ "name": "organizations/123456789012/locations/global/operations/operation-1715373190994-6181f71b4daad-6d8168c1-13cc6600", "metadata": { "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata", "createTime": "2024-05-10T20:33:11.165728913Z", "target": "organizations/123456789012/locations/global/policyBindings/example-policy", "verb": "delete", "requestedCancellation": false, "apiVersion": "v3beta" }, "done": false }
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。