このドキュメントでは、コンテキスト ベースのルールを使用して Google Cloud Console と Google Cloud APIs へのアクセスを保護する方法について説明します。
Google Cloud コンソールと Google Cloud API のコンテキストアウェア アクセスは、Google Cloud コンソールと Google Cloud API へのアクセスを、コンテキスト ベースのルールによって制限します。BeyondCorp Enterprise の一部であり、定義したアクセス要件を満たす組織内の個人やグループが Google Cloud コンソールや Google Cloud API(Google Cloud CLI からのアクセスを含む)にアクセスするのに役立ちます。
Google Cloud Console と Google Cloud APIs を保護するには、次の手順を行います。
- [省略可] 組織内のデバイスに Endpoint Verification をデプロイします。
- Access Context Manager でアクセスレベルを作成します。
- コンテキストアウェアの制限を受けるユーザーのグループを作成する。
- 必要な Identity and Access Management 権限を取得します。
- Google Cloud コンソールと Google Cloud API にコンテキストアウェア ルールを適用する、アクセス バインディングを作成します。
(省略可)Endpoint Verification をデプロイする
デバイスの属性を使用して Google Cloud コンソールと Google Cloud API へのアクセスを保護する場合は、組織内のデバイスに Endpoint Verification をデプロイします。
Endpoint Verification は、MacOS、Windows、Linux のユーザーに対して、デスクトップおよびノートパソコンで Chrome 拡張機能として実行されます。管理者は、Google 管理コンソールから会社所有のデバイスにデプロイできます。また、組織のメンバーは、自分でインストールできます。
アクセスレベルを作成する
Access Context Manager で 基本のアクセスレベルを作成することによって、Google Cloud コンソールと Google Cloud API へのアクセスを決定するときに使用できるアクセスレベルを定義する必要があります。
ユーザー グループを作成する
コンテキストアウェアの制限を受けるユーザー グループを作成する。このグループのいずれかのユーザーが組織のメンバーでもある場合は、事前に作成されたアクセスレベルを満たし、Google Cloud コンソールと Google Cloud API にアクセスできるようにする必要があります。
必要な IAM 権限を付与する
Access Context Manager アクセス バインディングの作成に必要な組織レベルの IAM 権限を付与します。
Console
Google Cloud コンソールの [IAM と管理] ページに移動します。
[追加] をクリックして、以下を構成します。
- 新しいメンバー: 権限を付与するユーザーまたはグループを指定します。
- ロールを選択: [Access Context Manager] > [Cloud アクセス バインディング管理者] を選択します。
[保存] をクリックします。
gcloud
組織レベルの IAM 権限を追加するのに十分な権限で認証されていることを確認してください。少なくとも、組織管理者のロールが必要です。
適切な権限があることを確認したら、次のコマンドでログインします。
gcloud auth login
次のコマンドを実行して
GcpAccessAdmin
ロールを割り当てます。gcloud organizations add-iam-policy-binding ORG_ID \ --member=user:EMAIL \ --role=roles/accesscontextmanager.gcpAccessAdmin
ORG_ID
は、組織 ID です。組織 ID を把握していない場合は、次のコマンドを使用して確認できます。gcloud organizations list
EMAIL
は、ロールを付与するユーザーまたはグループのメールアドレスです。
アクセス バインディングを作成する
アクセス バインディングは、前に作成したユーザー グループと Google Cloud コンソールおよび Google Cloud API へのアクセスのために定義した Access Context Manager アクセスレベルのマッピングです。
アクセス バインディングは、次のいずれかの方法で作成できます。
- グループとアクセスレベル間のアクセス バインディング。
- ドライラン構成によるグループとアクセスレベル間のアクセス バインディング。 ドライラン構成では、グループとドライランのアクセスレベル間、またはグループ、アクセスレベル、ドライランのアクセスレベルの間にアクセス バインディングを作成できます。
アクセスレベルを使用してアクセス バインディングを作成する
コンソール
Google Cloud コンソールで BeyondCorp Enterprise ページに移動します。
組織を選択して、[選択] をクリックします。
[アクセスの管理] をクリックして、アクセスを許可するユーザー グループを選択します。
[追加] をクリックして、以下を構成します。
- メンバー グループ: アクセス権を付与するグループを指定します。選択できるのは、アクセスレベルにまだバインドされていないグループのみです。
- アクセスレベルを選択する: グループに適用するアクセスレベルを選択します。
[保存] をクリックします。
gcloud
これと他の追加のフラグ オプションを含む gcloud access-context-manager cloud-bindings の詳細については、Google Cloud CLI をご覧ください。
gcloud access-context-manager cloud-bindings create \
--group-key GROUP_ID \
--level ACCESS_LEVEL \
--organization ORG_ID
ここで
-
GROUP_ID
は、前に作成したユーザー グループのグループ ID です。グループ ID を利用できない場合は、
Groups
リソースのget
メソッドを呼び出すことで取得できます。 -
ORG_ID
は、GcpAccessAdmin
ロールの作成時に使用した組織の ID です。access-context-manager/organization
プロパティが設定されていない場合、オプションの--organization
フラグのORG_ID
をGcpAccessAdmin
のロールを作成した際に使用した組織用の ID と置き換えてください。 -
POLICY_ID
は、組織のアクセス ポリシーの ID です。 -
ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。
API
リクエストのデータを使用する前に、次のように置き換えます。
-
ORG_ID
は、GcpAccessAdmin
ロールの作成時に使用した組織の ID です。 -
GROUP_ID
は、前に作成したユーザー グループのグループ ID です。グループ ID を利用できない場合は、
Groups
リソースのget
メソッドを呼び出すことで取得できます。 -
POLICY_ID
は、組織のアクセス ポリシーの ID です。 -
ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。
HTTP メソッドと URL:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
リクエストの本文(JSON):
{ "groupKey": "GROUP_ID", "accessLevels": [ "ACCESS_LEVEL" ], }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ] }
ドライラン構成でアクセス バインディングを作成する
ドライラン構成でアクセス バインディングを作成して、次のシナリオで環境内のアクセスレベルの影響を把握できます。
- アクセスレベルの適用前に評価するには、ドライランのアクセスレベルでアクセス バインディングを作成します。
- アクセスレベルを適用し、ドライランのアクセスレベルの影響を同時に評価するには、アクティブなアクセスレベルとドライラン アクセスレベルを使用してアクセス バインディングを作成します。
ドライランのアクセスレベルのアクセス バインディングはアクセスを防止しませんが、ドライランのアクセスレベルの違反をログに記録します。ログの詳細を表示するには、拒否ログをご覧ください。
ドライランのアクセスレベルのアクセス バインディングを作成する
gcloud
gcloud access-context-manager cloud-bindings create \
--group-key = GROUP_ID \
--dry-run-level = DRY_RUN_ACCESS_LEVEL \
--organization ORG_ID
ここで
-
GROUP_ID
は、前に作成したユーザー グループのグループ ID です。グループ ID を利用できない場合は、
Groups
リソースのget
メソッドを呼び出すことで取得できます。 -
ORG_ID
は、GcpAccessAdmin
ロールの作成時に使用した組織の ID です。access-context-manager/organization
プロパティが設定されていない場合、オプションの--organization
フラグのORG_ID
をGcpAccessAdmin
のロールを作成した際に使用した組織用の ID と置き換えてください。 -
POLICY_ID
は、組織のアクセス ポリシーの ID です。 -
DRY_RUN_ACCESS_LEVEL
は、効果を把握するACCESS_LEVEL
です。ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。
API
リクエストのデータを使用する前に、次のように置き換えます。
-
ORG_ID
は、GcpAccessAdmin
ロールの作成時に使用した組織の ID です。 -
GROUP_ID
は、前に作成したユーザー グループのグループ ID です。グループ ID を利用できない場合は、
Groups
リソースのget
メソッドを呼び出すことで取得できます。 -
POLICY_ID
は、組織のアクセス ポリシーの ID です。 -
DRY_RUN_ACCESS_LEVEL
は、効果を把握するACCESS_LEVEL
です。ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。
HTTP メソッドと URL:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
リクエストの本文(JSON):
{ "groupKey": "GROUP_ID", "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
アクセスレベルとドライランのアクセスレベルを使用してアクセス バインディングを作成する
gcloud
gcloud access-context-manager cloud-bindings create \
--group-key = GROUP_ID \
--level = ACCESS_LEVEL \
--dry-run-level = DRY_RUN_ACCESS_LEVEL \
--organization ORG_ID
ここで
-
GROUP_ID
は、前に作成したユーザー グループのグループ ID です。グループ ID を利用できない場合は、
Groups
リソースのget
メソッドを呼び出すことで取得できます。 -
ORG_ID
は、GcpAccessAdmin
ロールの作成時に使用した組織の ID です。access-context-manager/organization
プロパティが設定されていない場合、オプションの--organization
フラグのORG_ID
をGcpAccessAdmin
のロールを作成した際に使用した組織用の ID と置き換えてください。 -
POLICY_ID
は、組織のアクセス ポリシーの ID です。 -
ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。 -
DRY_RUN_ACCESS_LEVEL
は、効果を把握するACCESS_LEVEL
です。ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。
API
リクエストのデータを使用する前に、次のように置き換えます。
-
ORG_ID
は、GcpAccessAdmin
ロールの作成時に使用した組織の ID です。 -
GROUP_ID
は、前に作成したユーザー グループのグループ ID です。グループ ID を利用できない場合は、
Groups
リソースのget
メソッドを呼び出すことで取得できます。 -
POLICY_ID
は、組織のアクセス ポリシーの ID です。 -
ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。 -
DRY_RUN_ACCESS_LEVEL
は、効果を把握するACCESS_LEVEL
です。ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。
HTTP メソッドと URL:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
リクエストの本文(JSON):
{ "groupKey": "GROUP_ID", "accessLevels": [ "ACCESS_LEVEL" ], "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
拒否ログを表示する
ドライラン構成を作成したら、ログを確認して、ドライラン構成でアクセスが拒否される場所を特定します。
次の表に、ログを取得するクエリを作成および実行するために使用できるログフィールドを示します。
フィールド名 | 説明 |
---|---|
protoPayload > authenticationInfo > principalEmail |
アクセスが拒否されるプリンシパルのメール ID。 |
protoPayload > metadata > deniedApplications |
アクセスが拒否されるアプリケーションの名前。 |
protoPayload > metadata > evaluationResult |
アクティブ アクセス ポリシーの評価結果。有効な値は GRANTED または DENIED です。 |
protoPayload > metadata > appliedAccessLevels |
アクティブ アクセス ポリシーに必要な適用アクセスレベル。 |
protoPayload > metadata > appliedDryRunAccessLevels |
ドライラン アクセス ポリシーに必要な適用アクセスレベル。 |
protoPayload > metadata > dryRunEvaluationResult |
ドライラン アクセス ポリシーの評価結果。アクセス ポリシーが適用されたときの意図されたアクションを示します。有効な値は GRANTED または DENIED です。 |
ログのクエリを作成する方法については、Logging のクエリ言語をご覧ください。
コンソール
Google Cloud コンソールのナビゲーション メニューで [ロギング] をクリックしてから、[ログ エクスプローラ] をクリックします。
[クエリ] フィールドに次のフィルタのようなクエリフィルタを入力し、[クエリを実行] をクリックします。
severity="ERROR" AND (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"
[クエリ結果] でログを確認します。
gcloud
gcloud CLI を使用してログを表示するには、次のようなコマンドを実行します。
gcloud logging read 'severity="ERROR" AND
(protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"'
アクセス バインディングを管理する
ユーザー グループにアクセス バインディングを作成した後、Google Cloud コンソールと Google Cloud API へのアクセスは、バインドされたアクセスレベルのレベルに応じて制御されます。
作成したアクセス バインディングの詳細を表示して、編集または削除できます。
アクセス バインディングを表示する
コンソール
組織のすべてのアクセス バインディングを表示し、アクセス バインディングの詳細を表示できます。
gcloud
すべてのアクセス バインディングを表示するには、次のコマンドを実行します。
gcloud access-context-manager cloud-bindings list \ --organization ORG_ID
ここで
ORG_ID
は、GcpAccessAdmin
ロールの作成時に使用した組織の ID です。 .access-context-manager/organization
プロパティが設定されていない場合、オプションの--organization
フラグのORG_ID
をGcpAccessAdmin
のロールを作成した際に使用した組織用の ID と置き換えてください。アクセス バインディングの詳細を表示するには、次のコマンドを実行します。
gcloud access-context-manager cloud-bindings describe \ --binding=BINDING_ID
ここで
BINDING_ID
は、アクセス バインディングの ID またはバインディングの ID です。
API
すべてのアクセス バインディングを表示します。
リクエストのデータを使用する前に、次のように置き換えます。
-
ORG_ID
は、GcpAccessAdmin
ロールの作成時に使用した組織の ID です。access-context-manager/organization
プロパティが設定されていない場合、オプションの--organization
フラグのORG_ID
をGcpAccessAdmin
のロールを作成した際に使用した組織用の ID と置き換えてください。
HTTP メソッドと URL:
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content次のような JSON レスポンスが返されます。
{ "name": string, "groupKey": string, "accessLevels": [ string ] "dryRunAccessLevels": [ string ] }
-
アクセス バインディングの詳細を表示します。
HTTP メソッドと URL:
GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/BINDING_ID"PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content次のような JSON レスポンスが返されます。
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
アクセス バインディングを更新する
コンソール
アクセス バインディングは必要に応じて更新できます。
gcloud
アクセスレベルの変更など、アクセス バインディングを更新するには、次のコマンドを実行します。
gcloud access-context-manager cloud-bindings update \ --binding ACCESS_BINDING \ --level ACCESS_LEVEL
ここで
-
ACCESS_BINDING
の形式はorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
です。 -
ORG_ID
は、GcpAccessAdmin
ロールの作成時に使用した組織の ID です。 -
ACCESS_BINDING_NAME
は、アクセス バインディングの作成時にname
識別子に対して返される一意の文字列です。 - 必要に応じて ACCESS_LEVEL の値を置き換えます。
ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。
-
ドライランのアクセスレベルでアクセス バインディングを更新するには、次のコマンドを実行します。
gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING --dry-run-level=DRY_RUN_ACCESS_LEVEL
必要に応じて
DRY_RUN_ACCESS_LEVEL
の値を置き換えます。形式はaccessPolicies/
です。POLICY_ID
/accessLevels/DRY_ACCESS_LEVEL_NAME
アクセス バインディングを更新してアクセスレベルとドライランのアクセスレベルの両方を変更するには、次のコマンドを実行します。
gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING --level=`ACCESS_LEVEL` --dry-run-level=DRY_RUN_ACCESS_LEVEL
必要に応じて
ACCESS_LEVEL
とDRY_RUN_ACCESS_LEVEL
の値を置き換えます。ACCESS_LEVEL
とDRY_RUN_ACCESS_LEVEL
の形式はaccessPolicies/
で、POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
DRY_RUN_ACCESS_LEVEL
はACCESS_LEVEL
と同じです。アクセス バインディングからドライランのアクセスレベルを削除するには、次のコマンドを実行します。
gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING --dry-run-level=
API
アクセスレベルの変更など、アクセス バインディングを更新します。
リクエストのデータを使用する前に、次のように置き換えます。
-
ACCESS_BINDING_NAME
は、アクセス バインディングの作成時にname
識別子に対して返される一意の文字列です。 -
ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。
HTTP メソッドと URL:
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels
リクエストの本文(JSON):
{ "accessLevels": [ "ACCESS_LEVEL" ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels"PowerShell
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels" | Select-Object -Expand Content次のような JSON レスポンスが返されます。
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ] }
-
ドライランのアクセスレベルでアクセス バインディングを更新します。
リクエストのデータを使用する前に、次のように置き換えます。
-
ACCESS_BINDING_NAME
は、アクセス バインディングの作成時にname
識別子に対して返される一意の文字列です。 -
DRY_RUN_ACCESS_LEVEL
は、効果を把握するACCESS_LEVEL
です。ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。
HTTP メソッドと URL:
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels
リクエストの本文(JSON):
{ "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"PowerShell
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content次のような JSON レスポンスが返されます。
{ name: "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", group_key: "045jfvxd0ybeul8", dry_run_access_levels: [ "accessPolicies/305009197125/accessLevels/another" ] }
-
アクセス バインディングを更新し、アクセスレベルとドライラン アクセスレベルの両方を変更します。
リクエストのデータを使用する前に、次のように置き換えます。
-
ACCESS_BINDING_NAME
は、アクセス バインディングの作成時にname
識別子に対して返される一意の文字列です。 -
ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。 -
DRY_RUN_ACCESS_LEVEL
は、効果を把握するACCESS_LEVEL
です。ACCESS_LEVEL
の形式はaccessPolicies/
です。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
とACCESS_LEVEL_NAME
の値は、アクセスレベルを作成してから、Access Context Manager で確認できます。
HTTP メソッドと URL:
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels
リクエストの本文(JSON):
{ "accessLevels": [ "ACCESS_LEVEL" ], "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels"PowerShell
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels" | Select-Object -Expand Content次のような JSON レスポンスが返されます。
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
-
アクセス バインディングからドライランのアクセスレベルを削除します。
リクエストのデータを使用する前に、次のように置き換えます。
-
ACCESS_BINDING_NAME
は、アクセス バインディングの作成時にname
識別子に対して返される一意の文字列です。
HTTP メソッドと URL:
PATCH PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels
リクエストの本文(JSON):
{ "dryRunAccessLevels": [ ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"PowerShell
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
-
アクセス バインディングを削除する
コンソール
アクセス バインディングは、必要に応じて削除できます。
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding ACCESS_BINDING
ここで
-
ACCESS_BINDING
の形式はorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
です。 -
ACCESS_BINDING_NAME
は、アクセス バインディングの作成時にname
識別子に対して返される一意の文字列です。
API
リクエストのデータを使用する前に、次のように置き換えます。
-
ACCESS_BINDING_NAME
は、アクセス バインディングの作成時にname
識別子に対して返される一意の文字列です。
HTTP メソッドと URL:
DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
よくある質問
新しく作成したアクセス バインディングが有効になるまでにどれくらい時間がかかりますか?
最長で 24 時間ほどかかることがあります。
アクセス バインディングのあるグループを削除するとどうなりますか?
グループとバインディングが削除され、グループ内のすべてのユーザーがアクセスできるようになります。
アクセス バインディングで使用されているアクセスレベルを削除するとどうなりますか?
アクセスレベルが満たせず、バインドされたグループのすべてのユーザーがアクセスを拒否されます。
アクセス バインディングがある複数のグループにユーザーがいる場合どうなりますか?
ユーザーは、そうしたグループの 1 つのアクセスレベルを満たすだけでアクセスできます。
ユーザーが組織に属していない場合はどうなりますか?
バインドされているユーザー グループにユーザーを追加しても、コンテキストアウェア の制限により、アクセス バインディングの対象にはなりません。
次のステップ
- BeyondCorp Enterprise の監査ログの詳細については、監査ロギングをご覧ください。
- 管理アクティビティで記録される API オペレーションの概要など、Access Context Manager での監査ロギングの詳細については、Access Context Manager の監査ロギング情報をご覧ください。