Melakukan perubahan massal pada perimeter layanan

Dengan Access Context Manager, Anda dapat melakukan pembaruan massal pada resource yang termasuk dalam kebijakan akses organisasi, seperti tingkat akses dan perimeter layanan. Perubahan pada resource Anda hanya diterapkan jika semua bagian operasi massal berhasil.

Topik ini hanya menjelaskan penggantian perimeter layanan secara massal. Untuk mengetahui informasi selengkapnya tentang penggantian massal tingkat akses, lihat dokumentasi Access Context Manager.

Mendapatkan daftar perimeter layanan

Karena operasi massal memengaruhi semua perimeter layanan untuk organisasi Anda, Anda dapat memperoleh daftar lengkap perimeter. Selain itu, Anda dapat memformat daftar ini sebagai YAML dan menggunakannya untuk membuat perubahan massal pada perimeter.

Untuk mendapatkan daftar perimeter layanan yang diformat, lihat Mencantumkan perimeter layanan (diformat).

Saat mengganti semua konfigurasi perimeter layanan dengan perintah replace-all, Anda tidak boleh menetapkan kolom etag dalam perimeter. Etag kemungkinan akan berubah antara pengambilan dan pembaruan perimeter, sehingga menyebabkan perintah replace-all menampilkan error ketidakcocokan etag. Namun, Anda dapat menetapkan etag untuk seluruh permintaan replace-all dengan parameter --etag tingkat teratas jika ingin menerapkan pemeriksaan etag.

Daripada menghapus setiap properti etag dalam perimeter secara manual, Anda dapat mengambil perimeter tanpa properti etag dengan menentukan --format dengan semua kolom kecuali etag.

gcloud access-context-manager perimeters list \
  --policy=POLICY_NAME \
  --format="json(name,title,description,perimeterType,status,spec,useExplicitDryRunSpec)"

Mengganti perimeter layanan secara massal

Bagian berikut menjelaskan cara mengganti perimeter layanan secara massal.

gcloud

Untuk mengganti semua perimeter layanan secara massal, gunakan perintah replace-all.

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

Dengan keterangan:

  • POLICY_NAME adalah nama kebijakan akses organisasi Anda. Nilai ini hanya diperlukan jika Anda belum menetapkan kebijakan akses default.

  • FILE adalah nama file .yaml yang menentukan setelan baru untuk perimeter layanan yang ada.

    Contoh:

    - 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
    

    Untuk informasi selengkapnya tentang cara memformat file YAML, lihat struktur JSON objek ServicePerimeterConfig Access Context Manager.

  • ETAG (opsional) adalah string yang mewakili versi target kebijakan akses organisasi Anda. Jika Anda tidak menyertakan tag, operasi massal akan menargetkan versi terbaru kebijakan akses organisasi Anda.

    Untuk mendapatkan etag terbaru kebijakan akses Anda, list kebijakan akses Anda.

API

Untuk mengganti semua perimeter layanan secara massal, panggil servicePerimeters.replaceAll.

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

Dengan keterangan:

  • POLICY_NAME adalah nama kebijakan akses organisasi Anda.

Isi permintaan

Isi permintaan harus menyertakan daftar objek ServicePerimeterConfig yang menentukan perubahan yang ingin Anda buat.

Secara opsional, untuk menargetkan versi kebijakan akses organisasi Anda tertentu, Anda dapat menyertakan etag. Jika Anda tidak menyertakan etag, operasi massal akan menargetkan versi terbaru kebijakan akses organisasi Anda.

Contoh:

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

Isi respons

Jika berhasil, isi respons untuk panggilan akan berisi resource Operation yang memberikan detail tentang operasi pasca.

Contoh respons:

{
  "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"
          ]
        }
      }
    ]
  }
}