このページでは、スコープ アクセス ポリシーを作成して委任する方法について説明します。
始める前に
スコープ ポリシーについて確認します。
VPC Service Controls へのアクセスの許可について確認します。
スコープが指定されたアクセス ポリシーが委任されている委任管理者に、スコープが指定されたポリシーがバインドされているフォルダまたはプロジェクトに対する
cloudasset.assets.searchAllResources
権限が付与されていることを確認してください。すべての Google Cloud リソースを検索するには、委任管理者にこの権限が必要です。サービス境界の構成について確認します。
スコープ アクセス ポリシーを作成する
スコープ アクセス ポリシーを作成し、組織内のフォルダとプロジェクトに管理を委任します。スコープ アクセス ポリシーを作成した後に、ポリシーのスコープを変更することはできません。既存のポリシーのスコープを変更するには、ポリシーを削除して、新しいスコープでポリシーを再作成します。
コンソール
Google Cloud コンソールのナビゲーション メニューで [セキュリティ] をクリックし、続いて [VPC Service Controls] をクリックします。
プロンプトが表示されたら、組織、フォルダ、またはプロジェクトを選択します。
[VPC Service Controls] ページで、スコープ ポリシーの親となるアクセス ポリシーを選択します。たとえば、
default policy
組織のポリシーを選択します。[ポリシーを管理する] をクリックします。
[Manage VPC Service Controls] ページで、[作成] をクリックします。
[アクセス ポリシーの作成] ページの [アクセス ポリシー名] ボックスに、スコープ アクセス ポリシーの名前を入力します。
スコープ アクセス ポリシー名は 50 文字以下で、先頭は英字にする必要があります。ASCII ラテン文字(a~z、A~Z)、数字(0~9)、アンダースコア(
_
)のみを使用できます。スコープ アクセス ポリシー名では大文字と小文字が区別され、組織のアクセス ポリシー内で一意である必要があります。アクセス ポリシーのスコープを指定するには、[スコープ] をクリックします。
アクセス ポリシーのスコープとしてプロジェクトまたはフォルダを指定します。
アクセス ポリシーのスコープに追加するプロジェクトを選択するには、次の操作を行います。
[スコープ] ペインで [プロジェクトを追加] をクリックします。
[プロジェクトの追加] ダイアログで、そのプロジェクトのチェックボックスをオンにします。
[完了] をクリックします。追加されたプロジェクトが [スコープ] セクションに表示されます。
アクセス ポリシーのスコープに追加するフォルダを選択するには、次の操作を行います。
[スコープ] ペインで [フォルダを追加] をクリックします。
[フォルダを追加] ダイアログで、フォルダのチェックボックスをオンにします。
[完了] をクリックします。追加されたフォルダが [スコープ] セクションに表示されます。
スコープ アクセス ポリシーの管理を委任するには、[プリンシパル] をクリックします。
アクセス ポリシーにバインドするプリンシパルとロールを指定するには、次の手順を行います。
[プリンシパル] ペインで [プリンシパルを追加] をクリックします。
[プリンシパルの追加] ダイアログで、ユーザー名やサービス アカウントなどのプリンシパルを選択します。
プリンシパルに関連付けるロール(編集者や読み取りなど)を選択します。
[保存] をクリックします。追加したプリンシパルとロールが [プリンシパル] に表示されます。
[アクセス ポリシーの作成] ページで、[アクセス ポリシーを作成] をクリックします。
gcloud
スコープ アクセス ポリシーを作成するには、gcloud access-context-manager policies create
コマンドを使用します。
gcloud access-context-manager policies create \ --organization ORGANIZATION_ID [--scopes=SCOPE] --title POLICY_TITLE
ここで
ORGANIZATION_ID は組織の数値 ID です。
POLICY_TITLE は、人が読める形式のポリシー タイトルです。ポリシー タイトルは 50 文字以下で、先頭は英字にする必要があります。ASCII ラテン文字(a~z、A~Z)、数字(0~9)、アンダースコア(
_
)のみを使用できます。ポリシー タイトルでは大文字と小文字が区別され、組織のアクセス ポリシー内で一意である必要があります。SCOPE は、このポリシーが適用されるフォルダまたはプロジェクトです。スコープとして指定できるフォルダまたはプロジェクトは 1 つだけです。スコープは、指定した組織内に存在する必要があります。スコープを指定しない場合、ポリシーは組織全体に適用されます。
次の出力が表示されます(POLICY_NAME は、Google Cloud によって割り当てられた一意のポリシーの数値識別子です)。
Create request issued Waiting for operation [accessPolicies/POLICY_NAME/create/1521580097614100] to complete...done. Created.
プリンシパルとロールをスコープ アクセス ポリシーにバインドして管理を委任するには、add-iam-policy-binding
コマンドを使用します。
gcloud access-context-manager policies add-iam-policy-binding \ [POLICY] --member=PRINCIPAL --role=ROLE
ここで
POLICY は、ポリシーの ID または完全修飾 ID です。
PRINCIPAL は、バインディングを追加するプリンシパルです。
user|group|serviceAccount:email
またはdomain:domain
の形式で指定します。ROLE は、プリンシパルに割り当てるロール名です。ロール名は、事前定義ロールの完全なパス(
roles/accesscontextmanager.policyEditor
など)またはカスタムロールのロール ID(organizations/{ORGANIZATION_ID}/roles/accesscontextmanager.policyEditor
など)です。
API
スコープ アクセス ポリシーを作成するには、次の操作を行います。
リクエストの本文を作成します。
{ "parent": "ORGANIZATION_ID", "scope": "SCOPE" "title": "POLICY_TITLE" }
ここで
ORGANIZATION_ID は組織の数値 ID です。
SCOPE は、このポリシーが適用されるフォルダまたはプロジェクトです。
POLICY_TITLE は、人が読める形式のポリシー タイトルです。ポリシー タイトルは 50 文字以下で、先頭は英字にする必要があります。ASCII ラテン文字(a~z、A~Z)、数字(0~9)、アンダースコア(
_
)のみを使用できます。ポリシー タイトルでは大文字と小文字が区別され、組織のアクセス ポリシー内で一意である必要があります。
accessPolicies.create
を呼び出してアクセス ポリシーを作成します。POST https://accesscontextmanager.googleapis.com/v1/accessPolicies
レスポンスの本文
成功した場合は、呼び出しのレスポンス本文に Operation
リソースが含まれ、これにより POST
オペレーションの詳細がわかります。
スコープ アクセス ポリシーの管理を委任するには、次の操作を行います。
リクエストの本文を作成します。
{ "policy": "IAM_POLICY", }
ここで
- IAM_POLICY はバインディングのコレクションです。バインディングは、1 つ以上のメンバー(またはプリンシパル)を 1 つのロールにバインドします。プリンシパルは、ユーザー アカウント、サービス アカウント、Google グループ、ドメインです。ロールは権限の名前付きリストです。各ロールは、IAM 事前定義ロールまたはユーザー作成のカスタムロールです。
accessPolicies.setIamPolicy
を呼び出して、アクセス ポリシーを委任します。POST https://accesscontextmanager.googleapis.com/v1/accessPolicies
レスポンスの本文
成功した場合、レスポンスの本文には policy
のインスタンスが含まれます。
次のステップ
- 既存のサービス境界を管理する方法をご覧ください。