このページでは、アクセス ポリシーをユーザー グループに適用する方法を定義する、既存のアクセス バインディングの管理方法について説明します。これらのバインディングは、必要に応じて表示、変更、削除できます。アクセス バインディングは、アクセスレベルとセッション管理をユーザー グループに適用する方法を決定します。
アクセス バインディングの作成方法と、アクセスレベルとセッション管理の詳細については、アクセス バインディングを使用してユーザー グループにポリシーを適用するをご覧ください。
アクセス バインディングを表示する
ユーザー グループにアクセス バインディングを作成すると、Google Cloud コンソールと Google Cloud API へのアクセスは、バインドされたアクセスレベルの満足度に応じて制御されます。
作成したアクセス バインディングの詳細を表示、編集、削除できます。
コンソール
Google Cloud コンソールで、[Access Context Manager] ページに移動します。
プロンプトが表示されたら、プロジェクトを選択します。 アクセス バインディングのリストは、[Access Context Manager] ページに表示されます。
gcloud
すべてのアクセス バインディングを表示するには、次のコマンドを実行します。
gcloud access-context-manager cloud-bindings list \ --organization ORG_ID
ORG_ID: 組織の 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" ] }
アクセス バインディングを更新する
アクセス バインディングを更新すると、次のことができるようになります。
- ポリシーが適用されるアプリケーションを追加、削除、変更する。
- ユーザー グループ内のアプリケーションのアクセスレベルを変更する。
- 新しいドライランのアクセスレベルを追加するか、既存のアクセスレベルを本番環境レベルに昇格します。
コンソール
Google Cloud コンソールで、[Access Context Manager] ページに移動します。
プロンプトが表示されたら、プロジェクトを選択します。
[Access Context Manager] ページでアクセス バインディングを選択し、[編集] をクリックして更新します。
Google Cloud コンソールで、ドライランのアクセスレベルまたはセッション管理を使用してアクセス バインディングを更新することはできません。
gcloud
YAML バインディング ファイルを作成します。
gcloud access-context-manager cloud-bindings update --binding ACCESS_BINDING --binding-file BINDING_FILE_PATH [ --level DEFAULT_ACCESS_LEVEL ] [ --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL ] [ --session-length=DEFAULT_SESSION_LENGTH ] [ --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD ]
以下を置き換えます。
-
ACCESS_BINDING
の形式はorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
です。 -
BINDING_FILE_PATH: アクセス バインディング スキームを含む YAML ファイルのパス。バインディング ファイルは
scopedAccessSettings
のみをサポートしています。 -
DEFAULT_ACCESS_LEVEL: 省略可能なアクセスレベル名(
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
の形式)。POLICY_ID
はアクセス ポリシー ID に、ACCESS_LEVEL_NAME
はアクセスレベル名に置き換えます。 - DEFAULT_DRY_RUN_ACCESS_LEVEL_2: 省略可能なアクセスレベル名(accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME の形式)。このフラグを指定すると、YAML で指定されていない場合、デフォルトで指定されたドライラン アクセスレベルがすべてのアプリケーションに適用されます。
-
DEFAULT_SESSION_LENGTH: ISO 8601 Duration 形式で指定するオプションのセッション継続時間(30 分の場合は
30m
、2 時間の場合は2h
など)。 -
DEFAULT_SESSION_REAUTH_METHOD: ユーザーに本人の再確認を求めるオプションのメソッド。次のいずれかである必要があります。
LOGIN
: 標準ログインを適用します。これには、MFA や Workspace で定義されたその他の要素を含めることができます。PASSWORD
: 他の要素が定義されている場合でも、パスワードのみを必須にします。パスワードが外部 IdP を使用して管理されている場合、ユーザーは IdP にリダイレクトされます。IdP セッションが公開されている場合、ユーザーは暗黙的に再認証されます。IdP が公開されていない場合、ユーザーは IdP 経由でログインする必要があります。SECURITY_KEY
: ハードウェア セキュリティ キーが必要。
--level
引数と--binding-file
引数の連携の仕組み--binding-file
のみを使用する場合、ファイル内のアプリケーションにのみポリシーが適用されます。--level
のみを使用する場合、アクセスレベルはすべてのアプリケーションに適用されます。- 両方を使用すると、ルールが結合されます。
--level
値はすべてのアプリケーションに適用されますが、--binding-file
で指定された YAML ファイル内のポリシーは、ファイルで定義されているアプリケーションにのみ適用されます。
セッション管理の操作
- すべてのアプリケーションにデフォルトのセッション管理を設定するには、
--session-length
と--session-reauth-method
を使用します。 - YAML ファイルでセッション管理も定義すると、それらのセッション管理によって、特定のアプリケーションのデフォルト設定がオーバーライドされます。
--session-length
と--session-reauth-method
は一緒に使用する必要があります。
デフォルトのアクセスレベルまたはデフォルトのドライランのアクセスレベルを削除するには、空の文字列(
--level=
や--dry-run-level=
など)を指定します。これらの引数を指定しない場合、update
コマンドを実行しても変更されません。セッション管理を削除するには、
--session-length=0
を設定します。-
API
JSON 本文を作成します。
{ "accessLevels": [ "DEFAULT_ACCESS_LEVEL" ], "scopedAccessSettings": [ { "scope": { "clientScope": { "restrictedClientApplication": { "clientId": "CLIENT_ID" } } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_A" ], "sessionSettings": [ { "sessionLength": "SESSION_LENGTH", "sessionReauthMethod": "SESSION_REAUTH_METHOD", "sessionLengthEnabled": true } ] } }, { "scope": { "clientScope": { "restrictedClientApplication": { "name": "CLIENT_NAME" } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_C" ] } } } ] }
以下を置き換えます。
-
DEFAULT_ACCESS_LEVEL: 省略可能なアクセスレベル名(
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
の形式)。POLICY_ID
はアクセス ポリシー ID に、ACCESS_LEVEL_NAME
はアクセスレベル名に置き換えます。 - CLIENT_ID: OAuth クライアント ID。アプリケーションに
sessionSettings
が含まれている場合は、clientId
を使用する必要があります。 - ACCESS_LEVEL_A: アクセスレベルの名前(
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
の形式)。 - SESSION_LENGTH: ISO 8601 Duration 形式で指定するオセッション継続時間(30 分の場合は
30m
、2 時間の場合は2h
など)。 SESSION_REAUTH_METHOD: ユーザーに本人の再確認を求めるオプションのメソッド。次のいずれかである必要があります。
LOGIN
: 標準ログインを適用します。これには、MFA や Workspace で定義されたその他の要素を含めることができます。PASSWORD
: 他の要素が定義されている場合でも、パスワードのみを必須にします。パスワードが外部 IdP を使用して管理されている場合、ユーザーは IdP にリダイレクトされます。IdP セッションが公開されている場合、ユーザーは暗黙的に再認証されます。IdP が公開されていない場合、ユーザーは IdP 経由でログインする必要があります。SECURITY_KEY
: ハードウェア セキュリティ キーが必要。
CLIENT_NAME: クライアント名。アプリケーションに
sessionSettings
が含まれている場合、クライアント名を使用できません。代わりに、OAuth クライアント ID を使用してください。ACCESS_LEVEL_C: アクセスレベルの名前(
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
の形式)。
-
DEFAULT_ACCESS_LEVEL: 省略可能なアクセスレベル名(
PATCH リクエストを送信します。
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK
以下を置き換えます。
-
ACCESS_BINDING
の形式はorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
です。 - FIELD_MASK: 更新するフィールドのカンマ区切りリスト(必須)。アクセス バインディングのどの部分を変更するかを API に指示します。
fieldMask
には、更新するリクエスト本文の最上位の JSON キーを含める必要があります。これには、accessLevels
、dryRunAccessLevels
、scopedAccessSettings
を含めることができます。成功すると、JSON オブジェクトの表現が返されます。問題がある場合は、エラー メッセージが表示されます。
-
アクセス バインディングを削除する
コンソール
Google Cloud コンソールで、[Access Context Manager] ページに移動します。
プロンプトが表示されたら、プロジェクトを選択します。
[Access Context Manager] ページでアクセス バインディングを選択し、[削除] をクリックします。
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)と空のレスポンスが返されます。