Membuat perubahan massal pada tingkat akses

Dengan Access Context Manager, Anda dapat melakukan update massal pada resource yang termasuk dalam kebijakan akses organisasi Anda, 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 error terjadi, seluruh operasi akan gagal dan tidak ada resource yang diupdate.

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

Sebelum memulai

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

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

Mengganti tingkat akses secara massal

Bagian berikut menjelaskan cara mengganti tingkat akses Anda 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:

  • 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 YAML kondisi, lihat contoh file YAML.

  • ETAG (opsional) adalah string yang merepresentasikan target versi kebijakan akses organisasi Anda. Jika Anda tidak menyertakan etag, 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:

  • POLICY_NAME adalah nama kebijakan akses organisasi Anda.

Isi permintaan

Isi permintaan harus menyertakan daftar AccessLevel objek yang menentukan perubahan yang ingin Anda lakukan.

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

Contoh:

{
  "accessLevels": [
    object (AccessLevel),
    object (AccessLevel),
    ...
  ]
  "etag": string
}

Isi respons

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

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