このページでは、既存のアクセスレベルを管理する方法について説明します。次のことが可能です。
始める前に
Google Cloud CLI を使用するためのデフォルトのアクセス ポリシーを設定する。
または
ポリシーの名前を入手する。ポリシー名は、gcloud CLI を使用して API 呼び出しを行うコマンドに必要です。デフォルトのアクセス ポリシーを設定する場合は、gcloud CLI のポリシーを指定する必要はありません。
アクセスレベルを管理できる、組織レベルの Identity and Access Management(IAM)の役割を持っていることを確認してください。管理者に、次のいずれかの役割の付与、または同じ権限を持つカスタム役割の割り当てを依頼します。
アクセスレベルを表示するには: Access Context Manager 読み取り(
roles/accesscontextmanager.policyReader)アクセスレベルを表示、変更するには:Access Context Manager 編集者(
roles/accesscontextmanager.policyEditor)またはAccess Context Manager 管理者(roles/accesscontextmanager.policyAdmin)
アクセスレベルを一覧表示する
コンソール
すべてのアクセスレベルを一覧表示するには、 Google Cloud コンソールの [Access Context Manager] ページを開き、プロンプトが表示されたら組織を選択します。このページには、各アクセスレベルの構成に関する詳細を含めて、組織のアクセスレベルがグリッドに表示されます。
gcloud
すべてのアクセスレベルを一覧表示するには、list コマンドを使用します。
gcloud access-context-manager levels list \ [--policy=POLICY_NAME]
次のように置き換えます。
POLICY_NAME: 組織のアクセス ポリシーの名前。この値は、デフォルトのアクセス ポリシーを設定していない場合にのみ必要です。
出力は次のようになります。
NAME TITLE LEVEL_TYPE Device_Trust Device_Trust Extended Basic Service_Group_A Service_Group_A Basic
API
ポリシーのすべてのアクセスレベルを一覧表示するには、accessLevels.list を呼び出します。
GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
次のように置き換えます。
POLICY_NAME: 組織のアクセス ポリシーの名前。
リクエストの本文
リクエストの本文は空にする必要があります。
オプション パラメータ
必要に応じて、次のクエリ パラメータを 1 つ以上含めます。
| パラメータ | |
|---|---|
pageSize
|
デフォルトでは、 このパラメータを使用して、ページごとに返されるアクセスレベルの数を変更できます。 |
pageToken
|
呼び出しによって返されたアクセスレベルの数がページサイズを超えた場合、レスポンスの本文にページトークンが含まれます。 このパラメータを後続の呼び出しで使用して、結果の次のページを取得できます。 |
accessLevelFormat
|
通常、アクセスレベルは、 このパラメータに値 |
レスポンスの本文
成功した場合、呼び出しのレスポンス本文に、アクセスレベルを一覧表示する AccessLevels オブジェクトと nextPageToken 文字列が含まれています。nextPageToken は、返されるアクセスレベルの数がページサイズを超えた場合にのみ値を持ちます。それ以外の場合、nextPageToken は空の文字列として返されます。
アクセスレベルを一覧表示する(形式)
gcloud CLI を使用すると、アクセスレベルのリストを YAML または JSON 形式で取得できます。
アクセスレベルの整形されたリストを取得するには、list コマンドを使用します。
gcloud access-context-manager levels list \ --format=FORMAT \ [--policy=POLICY_NAME]
次のように置き換えます。
FORMAT: 次のいずれかの値。list(YAML 形式)json(JSON 形式)
POLICY_NAME: 組織のアクセス ポリシーの名前。この値は、デフォルトのアクセス ポリシーを設定していない場合にのみ必要です。
YAML 出力は次のようになります。
- basic: {'conditions': [{'ipSubnetworks': ['192.0.2.0/24']}]} description: Level for corp access. name: accessPolicies/123456789012/accessLevels/corp_level title: Corp Level - basic: {'combiningFunction': 'OR', 'conditions': [{'ipSubnetworks': ['192.0.2.0/24']}]} description: Level for net access. name: accessPolicies/123456789012/accessLevels/net_level title: Net Level
JSON 出力は次のようになります。
[ { "basic": { "conditions": [ { "ipSubnetworks": [ "192.0.2.0/24" ] } ] }, "description": "Level for corp access.", "name": "accessPolicies/123456789012/accessLevels/corp_level", "title": "Corp Level" }, { "basic": { "combiningFunction": "OR", "conditions": [ { "ipSubnetworks": [ "192.0.2.0/24" ] } ] }, "description": "Level for net access.", "name": "accessPolicies/123456789012/accessLevels/net_level", "title": "Net Level" } ]
アクセスレベルを説明する
コンソール
Google Cloud コンソールを使用して、アクセスレベルを一覧表示する手順をご覧ください。アクセスレベルを一覧表示すると、表示されるグリッドに詳細が表示されます。
gcloud
アクセスレベルの一覧表示では、名前、タイトル、レベルの種類のみが表示されます。レベルの実際の動作に関する詳細情報を取得するには、describe コマンドを使用します。
gcloud access-context-manager levels describe LEVEL_NAME \ [--policy=POLICY_NAME]
次のように置き換えます。
LEVEL_NAME: 説明を取得するアクセスレベルの名前。POLICY_NAME: 組織のアクセス ポリシーの名前。この値は、デフォルトのアクセス ポリシーを設定していない場合にのみ必要です。
このコマンドでは、レベルに関する情報を YAML 形式で出力します。たとえば、レベルによって特定のオペレーティング システム バージョンへのアクセスが制限されている場合、出力は次のようになります。
basic: conditions: - devicePolicy: allowedEncryptionStatuses: - ENCRYPTED osConstraints: - minimumVersion: 10.13.6 osType: DESKTOP_MAC - minimumVersion: 10.0.18219 osType: DESKTOP_WINDOWS - minimumVersion: 68.0.3440 osType: DESKTOP_CHROME_OS requireScreenlock: true name: accessPolicies/123456789012/accessLevels/Device_Trust title: Device_Trust Extended
API
アクセスレベルの一覧表示では、レベルの名前、タイトル、種類のみが表示されます。
アクセスレベルに関する詳細情報を取得するには、accessLevels.get を呼び出します。
GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME
次のように置き換えます。
POLICY_NAME: 組織のアクセス ポリシーの名前。LEVEL_NAME: 説明を取得するアクセスレベルの名前。
リクエストの本文
リクエストの本文は空にする必要があります。
オプション パラメータ
必要に応じて、accessLevelFormat クエリ パラメータを含めます。通常、アクセスレベルは、BasicLevel または CustomLevel として定義されているとおりに返されます。
このパラメータに値 CEL を指定して、Cloud Common Expression Language で BasicLevels を CustomLevels として返すことができます。
レスポンスの本文
成功した場合、呼び出しのレスポンス本文に、アクセスレベルで行われる内容、最後にレベルが更新されたのはいつかなどについての詳細を含めて AccessLevel リソースが含まれています。
アクセスレベルを更新する
このセクションでは、個々のアクセスレベルを更新する方法について説明します。1 つのオペレーションで組織のすべてのアクセスレベルを更新するには、アクセスレベルの一括変更をご覧ください。
Console
アクセスレベルを更新するには、次の手順を行います。
Google Cloud コンソールで [Access Context Manager] ページを開きます。
プロンプトが表示されたら、組織を選択します。
グリッドで、更新するアクセスレベルの名前をクリックします。
[アクセスレベルの編集] ウィンドウで、アクセスレベルを変更します。
追加または変更できる属性の完全なリストについては、アクセスレベルの属性をお読みください。
[保存] をクリックします。
既存の条件の更新や削除だけでなく、新しい条件を追加したり、既存の条件に新しい属性を追加したりできます。
gcloud
アクセスレベルを更新するには、update コマンドを使用します。
ベーシック アクセスレベル:
gcloud access-context-manager levels update LEVEL_NAME \ --basic-level-spec=FILE \ [--policy=POLICY_NAME]
カスタム アクセスレベル:
gcloud access-context-manager levels update LEVEL_NAME \ --custom-level-spec=FILE \ [--policy=POLICY_NAME]
次のように置き換えます。
LEVEL_NAME: 更新するアクセスレベルの名前。FILE: アクセスレベルの条件(基本アクセスレベルの場合)または単一のブール値に解決される CEL 式(カスタム アクセスレベルの場合)を定義する YAML ファイルの名前。ベーシック アクセスレベル条件で使用できる属性の完全なリストについては、アクセスレベルの属性をお読みください。
POLICY_NAME: 組織のアクセス ポリシーの名前。この値は、デフォルトのアクセス ポリシーを設定していない場合にのみ必要です。以下のオプションを 1 つ以上指定できます。
オプション combine-functionこのオプションはベーシック アクセスレベルでのみ使用します。
条件を組み合わせる方法を決定します。
有効な値:
AND、ORdescriptionアクセスレベルの詳細な説明。
titleアクセスレベルの短いタイトル。アクセスレベルのタイトルは Google Cloud コンソールに表示されます。
gcloud 向けフラグを含めることが可能です。
コマンドの例
gcloud access-context-manager levels update Device_Trust \ --basic-level-spec=corpdevspec.yaml \ --combine-function=OR \ --description='Access level that conforms to updated corporate spec.' \ --title='Device_Trust Extended' \ --policy=123456789012
API
アクセスレベルを更新するには、accessLevels.patch を呼び出します。
PATCH https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME?updateMask=FIELDS
次のように置き換えます。
POLICY_NAME: 組織のアクセス ポリシーの名前。LEVEL_NAME: 更新するアクセスレベルの名前。FIELDS: 更新する完全修飾フィールド名のカンマ区切りのリスト。
リクエストの本文
リクエストの本文には、アクセスレベルに加える変更を指定する AccessLevel リソースを含める必要があります。
レスポンスの本文
成功した場合、呼び出しのレスポンス本文に PATCH 操作に関する詳細を提供する Operation リソースが含まれます。
アクセスレベルを削除する
このセクションでは、Access Context Manager のアクセスレベルを削除する方法について説明します。アクセスレベルの削除は、次の 2 段階のプロセスです。
アクセスレベルの依存関係を確認する
アクセスレベルを削除する前に、他のアクセスレベル、VPC Service Controls サービス境界、Google Workspace コンテキストアウェア アクセス ポリシー、Google Cloud アクセス バインディング、または IAM 条件で参照されていないことを確認してください。
削除するアクセスレベルを参照するすべてのアクセスレベルを見つけるには、次の操作を行います。
jqがインストールされていることを確認します。jqがインストールされていることを確認するには、jq --versionを実行します。必要に応じて、jqをインストールします。アクセスレベルの依存関係を確認します。このコマンドは、すべてのアクセスレベルを一覧表示し、
jqを使用して、ベーシック レベルまたはカスタムレベルの定義でLEVEL_NAMEを参照するアクセスレベルをフィルタします。echo "Searching for Access Levels referencing: accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME" echo "" gcloud access-context-manager levels list \ --policy="POLICY_NAME" \ --format=json | \ jq -r ' .[] | select( # Check basic levels: Is the target access level present as an element in any requiredAccessLevels array? ([(.basic.conditions // [])[] | (.requiredAccessLevels // []) | index("accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME") != null] | any) or # Check custom levels: Does the expression string contain the target access level? ((.custom.expr.expression // "") | (contains("accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME") or contains("levels.LEVEL_NAME"))) ) | " - \(.title) (Name: \(.name))" ' echo "" echo "If any levels are listed, they reference LEVEL_NAME. You must update these referencing levels before you delete LEVEL_NAME."
次のように置き換えます。
POLICY_NAME: 組織のアクセス ポリシーの名前。この値は、デフォルトのアクセス ポリシーを設定していない場合にのみ必要です。LEVEL_NAME: 削除するアクセスレベルの名前(例:my_level)。
出力には、
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEまたはlevels.LEVEL_NAMEを参照するアクセスレベルが、titleとnameとともに一覧表示されます。これらのアクセスレベルには、次のものがあります。基本レベル。
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEはrequiredAccessLevelsにリストされています。カスタムレベル。
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEまたはlevels.LEVEL_NAMEがcustom.expr.expression文字列にリストされます。
コマンドで参照アクセスレベルが一覧表示される場合は、まずそれらのレベルを更新して依存関係を削除する必要があります。手順については、アクセスレベルを更新するをご覧ください。
すべての参照が削除されたら、個々のアクセスレベルの削除に進むことができます。
個々のアクセスレベルを削除する
コンソール
アクセスレベルを削除するには、次の手順を行います。
Google Cloud コンソールで [Access Context Manager] ページを開きます。
プロンプトが表示されたら、組織を選択します。
グリッドで、削除するアクセスレベルの行のボタンをクリックします。
[削除] をクリックします。
表示されるダイアログで、アクセスレベルを削除することを確認します。
gcloud
アクセスレベルを削除するには、次の手順を行います。
アクセスレベルを削除するには、
deleteコマンドを使用します。gcloud access-context-manager levels delete LEVEL_NAME \ [--policy=POLICY_NAME]
次のように置き換えます。
LEVEL_NAME: 削除するアクセスレベルの名前。POLICY_NAME: 組織のアクセス ポリシーの名前。この値は、デフォルトのアクセス ポリシーを設定していない場合にのみ必要です。
アクセスレベルを削除することを確認します。
次に例を示します。
You are about to delete level Device_Trust Do you want to continue (Y/n)?
出力は次のようになります。
Waiting for operation [accessPolicies/123456789012/accessLevels/Device_Trust/delete/1531171874311645] to complete...done. Deleted level [Device_Trust].
API
アクセスレベルを削除するには、accessLevels.delete を呼び出します。
DELETE https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME
次のように置き換えます。
POLICY_NAME: 組織のアクセス ポリシーの名前。LEVEL_NAME: 削除するアクセスレベルの名前。
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、呼び出しのレスポンス本文に削除オペレーションに関する詳細を説明する Operation リソースが含まれています。