サービス境界の一括変更

Access Context Manager を使用すると、組織のアクセス ポリシーアクセスレベルサービス境界など)に属するリソースを一括更新できます。 リソースへの変更は、一括オペレーションのすべての部分が成功した場合にのみ適用されます。

このトピックでは、サービス境界の一括置換についてのみ説明します。アクセスレベルの一括置換の詳細については、Access Context Manager のドキュメントをご覧ください。

準備

一括オペレーションは組織のすべてのサービス境界に影響するため、境界の完全なリストを取得することをおすすめします。リストは YAML としてフォーマットできます。これにより、境界の一括変更を簡単に行うことができます。

アクセスレベルのフォーマット済みのリストを取得するには、サービス境界の一覧表示(フォーマット済み)をご覧ください。

サービス境界の一括置換

次のセクションでは、サービス境界を一括置換する方法について説明します。

gcloud

すべてのサービス境界を一括置換するには、replace-all コマンドを使用します。

gcloud beta access-context-manager perimeters replace-all \
  --source-file=FILE \
  --etag=ETAG \
  [--policy=POLICY_NAME]

ここで

  • FILE は、既存のサービス境界の新しい設定を定義する.yaml ファイルの名前です。

    例:

    - name: accessPolicies/11271009391/servicePerimeters/storage_perimeter
      title: Storage Perimeter
      description: Perimeter to protect Storage resources.
      perimeterType: PERIMETER_TYPE_REGULAR
      status:
        restrictedServices:
        - storage.googleapis.com
    - name: accessPolicies/11271009391/servicePerimeters/bigquery_perimeter
      title: BigQuery Perimeter
      description: Perimeter to protect BigQuery resources.
      perimeterType: PERIMETER_TYPE_REGULAR
      status:
        restrictedServices:
        - bigquery.googleapis.com
    

    YAML ファイルのフォーマット設定の詳細については、Access Context Manager の ServicePerimeterConfig オブジェクトの JSON 構造をご覧ください。

  • ETAG(省略可)は、組織のアクセス ポリシーのターゲット バージョンを表す文字列です。etag を含めない場合、一括オペレーションは組織のアクセス ポリシーの最新バージョンを対象とします。

    アクセス ポリシーの最新の etag を取得するには、listアクセス ポリシーをご覧ください。

  • POLICY_NAME は組織のアクセス ポリシーの名前です。 この値は、デフォルトのアクセス ポリシーを設定していない場合にのみ必要です。

API

すべてのサービス境界を一括置換するには、servicePerimeters.replaceAll を呼び出します。

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters.replaceAll?alt=json

ここで

  • POLICY_NAME は組織のアクセス ポリシーの名前です。

リクエストの本文

リクエストの本文には、行う変更を指定する ServicePerimeterConfig オブジェクトのリストを含める必要があります。

任意で、組織のアクセス ポリシーの特定のバージョンをターゲットにするために、etag を含めることができます。etag を含めない場合、一括オペレーションは組織のアクセス ポリシーの最新バージョンを対象とします。

例:

{
  "servicePerimeters": [
    object (ServicePerimeterConfig),
    object (ServicePerimeterConfig),
    ...
  ]
  "etag": string
}

レスポンス本文

成功した場合、呼び出しのレスポンス本文に POST オペレーションの詳細を説明する Operation リソースが含まれています。

レスポンスの例:

{
  "name": "operations/accessPolicies/11271009391/replacePerimeters/1583523447707087",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.ReplaceServicePerimetersResponse",
    "servicePerimeters": [
      {
        "name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
        "title": "Storage Perimeter",
        "description": "Perimeter to protect Storage resources.",
        "status": {
          "accessLevels": [
            "accessPolicies/11271009391/accessLevels/corpnet_access"
          ],
          "restrictedServices": [
            "bigtable.googleapis.com"
          ]
        }
      },
      {
        "name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
        "title": "BigQuery Perimeter",
        "description": "Perimeter to protect BigQuery resources.",
        "status": {
          "accessLevels": [
            "accessPolicies/11271009391/accessLevels/prodnet_access"
          ],
          "restrictedServices": [
            "bigtable.googleapis.com"
          ]
        }
      }
    ]
  }
}