Membuat perubahan massal pada tingkat akses

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. Misalnya, jika operasi massal Anda mencoba menghapus tingkat akses yang digunakan oleh perimeter layanan, error akan muncul. Karena terjadi error, seluruh operasi akan gagal dan tidak ada resource yang diperbarui.

Topik ini hanya menjelaskan penggantian tingkat akses secara massal. Untuk mengetahui informasi selengkapnya tentang penggantian massal perimeter layanan, lihat dokumentasi Kontrol Layanan VPC.

Sebelum memulai

Karena operasi massal memengaruhi semua tingkat akses untuk organisasi Anda, sebaiknya Anda mendapatkan daftar lengkap tingkat akses. Daftar ini dapat diformat sebagai YAML, yang juga dapat mempermudah perubahan massal pada tingkat akses Anda.

Untuk mendapatkan daftar tingkat akses yang diformat, lihat Daftar tingkat akses (diformat).

Mengganti tingkat akses secara massal

Bagian berikut menjelaskan cara mengganti tingkat akses secara massal.

gcloud

Untuk mengganti semua tingkat akses secara massal, gunakan perintah replace-all.

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

Dengan keterangan:

  • FILE adalah nama file .yaml yang menentukan kondisi baru untuk tingkat akses yang ada.

    Contoh:

    - name: accessPolicies/11271009391/accessLevels/corpnet_access
      title: Corpnet Access
      description: Permit access to corpnet.
      basic:
        combiningFunction: AND
        conditions:
          - ipSubnetworks:
            - 252.0.2.0/24
            - 2001:db8::/32
    - name: accessPolicies/11271009391/accessLevels/prodnet_access
      title: Prodnet Access
      description: Permit access to prodnet.
      basic:
        combiningFunction: OR
        conditions:
          - members:
            - user:exampleuser@example.com
            - serviceAccount:exampleaccount@example.iam.gserviceaccount.com
          - ipSubnetworks:
            - 176.0.2.0/24
    

    Untuk contoh lebih lanjut tentang struktur kondisi YAML, lihat contoh file YAML.

  • 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.

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

API

Untuk mengganti semua tingkat akses secara massal, panggil accessLevels.replaceAll.

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

Dengan keterangan:

  • POLICY_NAME adalah nama kebijakan akses organisasi Anda.

Isi permintaan

Isi permintaan harus menyertakan daftar objek AccessLevel 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:

{
  "accessLevels": [
    object (AccessLevel),
    object (AccessLevel),
    ...
  ]
  "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/replaceLevels/1583523446234255",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.ReplaceAccessLevelsResponse",
    "accessLevels": [
      {
        "name": "accessPolicies/11271009391/accessLevels/corpnet_access",
        "title": "Corpnet access",
        "description": "Permit access to corpnet.",
        "basic": {
          "conditions": [
            {
              "ipSubnetworks": [
                "252.0.2.0/24"
              ]
            }
          ]
        }
      },
      {
        "name": "accessPolicies/11271009391/accessLevels/prodnet_access",
        "title": "Prodnet access",
        "description": "Permit access to prodnet.",
        "basic": {
          "conditions": [
            {
              "ipSubnetworks": [
                "176.0.2.0/24"
              ]
            }
          ]
        }
      }
    ]
  }
}