このページでは、既存のアクセスレベルを管理する方法について説明します。次のことが可能です。
始める前に
デフォルトのアクセス ポリシーを設定する(
gcloudコマンドライン ツールを使用する場合)。または
ポリシーの名前を入手する。ポリシー名は、
gcloudコマンドライン ツールを使用して API 呼び出しを行うコマンドに必要です。デフォルトのアクセス ポリシーを設定する場合は、gcloudコマンドライン ツールのポリシーを指定する必要はありません。アクセスレベルを管理できる、組織レベルの Identity and Access Management(IAM)の役割を持っていることを確認してください。管理者に、次のいずれかの役割の付与、または同じ権限を持つカスタム役割の割り当てを依頼します。
アクセスレベルを表示するには: Access Context Manager 読み取り(
roles/accesscontextmanager.policyReader)アクセスレベルを表示、変更するには:Access Context Manager 編集者(
roles/accesscontextmanager.policyEditor)またはAccess Context Manager 管理者(roles/accesscontextmanager.policyAdmin)
アクセスレベルを一覧表示する
コンソール
すべてのアクセスレベルを一覧表示するには、コンソールの [Access Context Manager] ページを開きプロンプトが表示されたら、 組織を選択します。 Google Cloud 組織のアクセスレベルは、各アクセスレベルの構成に関する詳細を含めて、ページ上のグリッドに表示されます。
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/v1alpha/accessPolicies/POLICY_NAME/accessLevels
次のように置き換えます。
POLICY_NAMEは組織のアクセス ポリシーの名前です。
リクエストの本文
リクエストの本文は空にする必要があります。
オプション パラメータ
必要に応じて、次のクエリ パラメータを 1 つ以上含めます。
| パラメータ | |
|---|---|
pageSize
|
デフォルトでは、 このパラメータを使用して、ページごとに返されるアクセスレベルの数を変更できます。 |
pageToken
|
呼び出しによって返されたアクセスレベルの数が ページサイズを超えた場合、レスポンスの本文にページトークンが含まれます。 このパラメータを後続の呼び出しで使用して、 結果の次のページを取得できます。 |
accessLevelFormat
|
通常、アクセスレベルは、
このパラメータに値 |
レスポンスの本文
成功した場合、呼び出しのレスポンス本文に、アクセスレベルを一覧表示する AccessLevels オブジェクトと nextPageToken 文字列が含まれています。nextPageToken は、返されるアクセスレベルの数がページサイズを超えた場合にのみ値を持ちます。それ以外の場合、nextPageToken は空の文字列として返されます。
アクセスレベルを一覧表示する(形式)
gcloud コマンドライン ツールを使用すると、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': ['8.8.0.0/24']}]} description: Level for corp access. name: accessPolicies/165717541651/accessLevels/corp_level title: Corp Level - basic: {'combiningFunction': 'OR', 'conditions': [{'ipSubnetworks': ['8.8.0.0/24']}]} description: Level for net access. name: accessPolicies/165717541651/accessLevels/net_level title: Net Level
JSON 出力は、以下のようになります。
[ { "basic": { "conditions": [ { "ipSubnetworks": [ "8.8.0.0/24" ] } ] }, "description": "Level for corp access.", "name": "accessPolicies/165717541651/accessLevels/corp_level", "title": "Corp Level" }, { "basic": { "combiningFunction": "OR", "conditions": [ { "ipSubnetworks": [ "8.8.0.0/24" ] } ] }, "description": "Level for net access.", "name": "accessPolicies/165717541651/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/330193482019/accessLevels/Device_Trust title: Device_Trust Extended
API
アクセスレベルの一覧表示では、レベルの名前、タイトル、種類のみが表示されます。
アクセスレベルに関する詳細情報を取得するには、
accessLevels.get を呼び出します。
GET https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME
次のように置き換えます。
POLICY_NAMEは組織のアクセス ポリシーの名前です。LEVEL_NAMEは、説明するアクセスレベルの名前です。
リクエストの本文
リクエストの本文は空にする必要があります。
オプション パラメータ
必要に応じて、accessLevelFormat クエリ パラメータを含めます。通常、アクセスレベルは、BasicLevel または CustomLevel として定義されているとおりに返されます。
このパラメータに値 CEL を指定して、Cloud Common Expression Language で BasicLevels を CustomLevels として返すことができます。
レスポンスの本文
成功した場合、呼び出しのレスポンス本文に、アクセスレベルで行われる内容、最後にレベルが更新されたのはいつかなどについての詳細を含めて AccessLevel リソースが含まれています。
アクセスレベルを更新する
このセクションでは、個々のアクセスレベルを更新する方法について説明します。1 つのオペレーションで組織のすべてのアクセスレベルを更新するには、アクセスレベルの一括変更をご覧ください。
コンソール
アクセスレベルを更新するには、次の手順を行います。
[Access Context Manager] ページを Google Cloud コンソールで開きます。
プロンプトが表示されたら、組織を選択します。
グリッドで、更新するアクセスレベルの名前をクリックします。
[アクセスレベルを編集] パネルで、アクセスレベルを変更します。
追加または変更できる属性の完全なリストについては、アクセスレベルの属性をお読みください。
[保存] をクリックします。
既存の条件の更新や削除だけでなく、新しい条件を追加したり、既存の条件に新しい属性を追加したりできます。
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=1034095178592
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 つのステップで行います。
アクセスレベルの依存関係を確認する
アクセスレベルを削除する前に、他のアクセスレベルから参照されていないことを確認してください。
削除するアクセスレベルを参照しているすべてのアクセスレベルを見つけるには、次の操作を行います。
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 or # Check custom levels: Does the expression string contain the target access level? (.custom.expr.expression // "") | contains("accessPolicies/POLICY_NAME/accessLevels/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を参照するアクセスレベルが、titleとnameとともに一覧表示されます。これには、ベーシック レベル(accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEがrequiredAccessLevelsにある場合)とカスタムレベル(accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEがcustom.expr.expression文字列に表示される場合)の両方が含まれます。コマンドで参照アクセスレベルが一覧表示された場合は、まずそれらのレベルを更新して依存関係を削除する必要があります。手順については、アクセスレベルを更新するをご覧ください。
すべての参照が削除されたら、個々のアクセスレベルの削除に進むことができます。
個々のアクセスレベルを削除する
コンソール
アクセスレベルを削除するには、次の手順を行います。
コンソールで [Access Context Manager] ページを開きます。 Google Cloud
プロンプトが表示されたら、組織を選択します。
グリッドで、削除するアクセスレベルの行のボタンをクリックします。
[削除] をクリックします。
表示されるダイアログ ボックスで、アクセスレベルを削除することを確認します。
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/330193482019/accessLevels/Device_Trust/delete/1531171874311645] to complete...done. Deleted level [Device_Trust].
API
アクセスレベルを削除するには、accessLevels.delete を呼び出します。
DELETE https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME
次のように置き換えます。
POLICY_NAMEは組織のアクセス ポリシーの名前です。LEVEL_NAMEは、説明するアクセスレベルの名前です。
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、呼び出しのレスポンス本文に
Operationリソースが含まれており、
削除オペレーションに関する詳細を説明します。