Menetapkan batas pemberian peran

Di organisasi besar, akan sangat membantu jika tim mengelola kebijakan perizininan untuk resource mereka secara mandiri. Namun, memberikan izin atau mencabut semua peran IAM dapat meningkatkan risiko keamanan Anda secara signifikan.

Anda dapat menetapkan batas pada peran yang dapat memberikan izin dan mencabut Identity and Access Management (IAM) Conditions dan atribut API iam.googleapis.com/modifiedGrantsByRole. Batasan ini memungkinkan Anda membuat admin IAM terbatas yang dapat mengelola kebijakan izin tim mereka sendiri, tetapi hanya dalam batasan yang telah di tetapkan.

Sebelum memulai

Izin yang diperlukan

Guna mendapatkan izin yang diperlukan dalam membuat admin IAM terbatas untuk sebuah project, folder, atau organisasi, minta administrator untuk memberi Anda peran IAM berikut pada resource yang ingin Anda tetapkan membuat admin IAM terbatas untuk (project, folder, atau organisasi):

  • Untuk membuat admin IAM terbatas pada sebuah project: Admin IAM Project (roles/resourcemanager.projectIamAdmin)
  • Untuk membuat admin IAM terbatas untuk folder: Folder Admin (roles/resourcemanager.folderAdmin)
  • Untuk membuat admin IAM terbatas bagi project, folder, atau organisasi: Admin Organisasi (roles/resourcemanager.organizationAdmin)

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Peran bawaan ini berisi izin yang diperlukan untuk membuat admin IAM terbatas untuk sebuah project, folder, atau organisasi. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat admin IAM terbatas untuk sebuah project, folder, atau organisasi:

  • Untuk membuat admin IAM terbatas untuk sebuah project:
    • resourcemanager.projects.getIamPolicy
    • resourcemanager.projects.setIamPolicy
  • Untuk membuat admin IAM terbatas untuk folder:
    • resourcemanager.folders.getIamPolicy
    • resourcemanager.folders.setIamPolicy
  • Untuk membuat admin IAM terbatas bagi organisasi:
    • resourcemanager.organizations.getIamPolicy
    • resourcemanager.organizations.setIamPolicy

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Kasus penggunaan umum

Bagian berikut menjelaskan cara menggunakan pemberian peran terbatas untuk mengaktifkan pengelolaan mandiri atas kebijakan izin.

Membuat admin IAM terbatas

Pertimbangkan sebuah skenario saat Anda ingin mengizinkan pengguna, Finn (finn@example.com), bertindak sebagai admin IAM terbatas untuk project Anda. Anda ingin Finn hanya dapat memberikan dan mencabut peran App Engine Admin (roles/appengine.appAdmin) dan App Engine Viewer (roles/appengine.appViewer) untuk project Anda.

Anda memberi Finn peran Project IAM Admin (roles/resourcemanager.projectIamAdmin) dengan kemampuan terbatas secara bersyarat. Peran Admin IAM Project memungkinkan Finn memberikan dan mencabut peran IAM, dan batas kondisi yang dapat diberikan dan dicabut oleh Finn:

{
  "version": 3,
  "etag": "BwWKmjvelug=",
  "bindings": [
    {
      "members": [
        "user:owner@example.com"
      ],
      "role": "roles/owner"
    },
    {
      "members": [
        "finn@example.com"
      ],
      "role": "roles/resourcemanager.projectIamAdmin",
      "condition": {
        "title": "only_appengine_admin_viewer_roles",
        "description": "Only allows changes to role bindings with the App Engine Admin or Viewer roles",
        "expression":
          "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/appengine.appAdmin', 'roles/appengine.appViewer'])"
      }
    }
  ]
}

Melalui binding peran bersyarat ini, Finn dapat melakukan hal berikut:

  • Memberikan peran App Engine Admin dan App Engine Viewer untuk project tersebut.
  • Mencabut peran App Engine Admin dan App Engine Viewer untuk project.
  • Menambahkan, menghapus, atau mengubah kondisi untuk binding peran level project yang memberikan peran App Engine Admin dan App Engine Viewer.
  • Melakukan tindakan lain yang diizinkan oleh peran Admin IAM Project tanpa mengubah kebijakan izin project. Misalnya, Finn dapat menggunakan metode projects.getIamPolicy untuk mendapatkan kebijakan izin project.

Binding peran bersyarat ini tidak memungkinkan Finn melakukan hal berikut:

  • Mengubah kebijakan izin untuk resource selain project.
  • Memberikan peran selain App Engine Admin atau App Engine Viewer.
  • Mencabut peran selain Admin App Engine atau Viewer App Engine.
  • Menambahkan, menghapus, atau mengubah kondisi untuk binding peran tanpa memberikan peran App Engine Admin atau App Engine Viewer.

Mengizinkan pengguna mengelola admin IAM terbatas

Pertimbangkan sebuah skenario saat Anda ingin menjadikan pengguna, Lila, sebagai admin IAM terbatas untuk timnya. Anda ingin Lila hanya dapat memberikan dan mencabut peran Compute Admin (roles/compute.admin) untuk project-nya. Namun, Anda juga ingin mengizinkan Lila memilih pengguna lain untuk bertindak sebagai admin IAM terbatas. Dengan kata lain, Anda ingin mengizinkan Lila untuk mengizinkan pengguna lain memberikan dan mencabut peran Compute Admin saja.

Anda mungkin berpikir solusinya adalah memberi Lila peran Project IAM Admin (roles/resourcemanager.projectIamAdmin), lalu memberinya kemampuan untuk memberikan atau mencabut peran tersebut untuk orang lain. Namun, jika Anda memberi Lila peran Admin IAM Project, Lila dapat menghapus kondisi dari perannya sendiri dan memberi dirinya kemampuan untuk memberikan atau mencabut peran IAM apa pun.

Untuk membantu mencegah eskalasi hak istimewa ini, Anda dapat membuat Google Grup, iam-compute-admins@example.com, untuk admin terbatas IAM project. Kemudian, Anda menambahkan Lila ke grup dan menjadikannya pengelola grup.

Setelah membuat grup, Anda dapat memberikan peran Admin IAM Project (roles/resourcemanager.projectIamAdmin) kepada grup tersebut secara bersyarat. Peran Admin IAM Project memungkinkan anggota grup memberikan dan mencabut peran IAM, dan kondisi membatasi peran yang dapat mereka berikan dan cabut:

{
  "version": 3,
  "etag": "BwWKmjvelug=",
  "bindings": [
    {
      "members": [
        "user:owner@example.com"
      ],
      "role": "roles/owner"
    },
    {
      "members": [
        "iam-compute-admins@example.com"
      ],
      "role": "roles/resourcemanager.projectIamAdmin",
      "condition": {
        "title": "only_compute_admin_role",
        "description": "Only allows changes to role bindings for the Compute Admin role",
        "expression":
          "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/compute.admin'])"
      }
    }
  ]
}

Sebagai anggota grup iam-compute-admins@example.com, Lila dapat melakukan hal berikut:

  • Berikan peran Compute Admin untuk project dengan menambahkan binding baru untuk peran tersebut, atau dengan menambahkan akun utama ke binding yang sudah ada untuk peran tersebut.
  • Cabut peran Compute Admin dengan menghapus binding yang ada untuk peran tersebut, atau dengan menghapus akun utama dari binding yang ada untuk peran tersebut.
  • Mengubah pemberian untuk peran Compute Admin dengan menambahkan, menghapus, atau mengubah kondisi yang terkait dengan binding untuk peran tersebut.
  • Melakukan tindakan lain yang diizinkan oleh peran Admin IAM Project tanpa mengubah kebijakan izin project. Misalnya, dia dapat menggunakan metode projects.getIamPolicy untuk mendapatkan kebijakan izin project.

Sebagai pengelola grup iam-compute-admins@example.com, Lila dapat mengizinkan pengguna lain untuk memberikan atau mencabut peran Compute Admin dengan menambahkannya ke grup iam-compute-admins@example.com.

Lila tidak dapat melakukan hal berikut:

  • Memberikan dirinya kemampuan untuk memberikan atau mencabut peran lain.
  • Mengubah kebijakan izin untuk resource selain project.
  • Memberikan peran selain peran Compute Admin.
  • Cabut peran selain peran Admin Compute.
  • Menambahkan, menghapus, atau mengubah kondisi untuk binding peran tanpa memberikan peran Compute Admin.

Membatasi pemberian peran

Bagian berikut menjelaskan cara mengizinkan akun utama hanya memberikan atau mencabut peran tertentu.

Menulis ekspresi kondisi untuk membatasi pemberian peran

Untuk membatasi kemampuan akun utama dalam memberikan peran, tulis ekspresi kondisi yang menentukan peran yang dapat diberikan atau dicabut oleh akun utama.

Gunakan format berikut untuk ekspresi kondisi Anda:

api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(roles)

Ekspresi ini melakukan hal berikut:

  • Dapatkan atribut API iam.googleapis.com/modifiedGrantsByRole menggunakan fungsi api.getAttribute().

    Agar permintaan untuk menetapkan kebijakan izin resource, atribut ini berisi nama peran dari binding yang diubah permintaan tersebut. Untuk jenis permintaan lainnya, atribut tidak ditentukan. Dalam kasus ini, fungsi tersebut akan menampilkan nilai default ([]).

  • Menggunakan fungsi hasOnly() Common Expression Language (CEL) untuk menentukan dan menerapkan peran yang dapat diberikan atau dicabut oleh akun utama.

    Input untuk fungsi hasOnly() adalah daftar peran yang dapat diberikan atau dicabut oleh akun utama. Jika peran dalam atribut iam.googleapis.com/modifiedGrantsByRole disertakan dalam daftar ini, fungsi akan menampilkan true. Jika tidak, fungsi menampilkan false.

    Jika atribut iam.googleapis.com/modifiedGrantsByRole berisi nilai default ([]), fungsi akan menampilkan true, karena [] tidak berisi peran yang tidak disertakan dalam daftar.

Untuk menyesuaikan ekspresi ini, ganti roles dengan daftar peran yang dapat diberikan atau dicabut oleh akun utama. Misalnya, untuk mengizinkan akun utama hanya memberikan atau mencabut Editor Pub/Sub (roles/pubsub.editor ) dan Penerbit Pub/Sub (roles/pubsub.publisher ), gunakan nilai['roles/pubsub.editor', 'roles/pubsub.publisher'].

Anda dapat menyertakan hingga 10 nilai dalam daftar peran yang diizinkan. Semua nilai ini harus berupa konstanta string.

Operator logika untuk pernyataan hasOnly()

Jangan gunakan operator && atau || untuk menggabungkan beberapa pernyataan hasOnly() dalam satu kondisi. Jika Anda melakukannya, permintaan yang memberikan atau mencabut beberapa peran mungkin akan gagal, meskipun akun utama dapat memberikan atau mencabut peran tersebut satu per satu.

Misalnya, pertimbangkan kondisi berikut:

api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', [])
    .hasOnly(['roles/pubsub.editor']) ||
api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', [])
    .hasOnly(['roles/pubsub.publisher'])

Kondisi ini bernilai true jika permintaan memberikan peran roles/pubsub.editor atau peran roles/pubsub.publisher, tetapi mengevaluasi ke false jika permintaan memberikan kedua peran roles/pubsub.editor dan peran roles/pubsub.publisher.

Membatasi pemberian peran dengan binding peran bersyarat

Untuk mengizinkan akun utama memberikan atau mencabut peran tertentu saja, gunakan ekspresi kondisi dari bagian sebelumnya untuk membuat binding peran bersyarat. Kemudian, tambahkan binding peran kondisional ke kebijakan izinkan resource.

  1. Pilih resource yang mewakili cakupan yang ingin akun utama Anda izinkan untuk memberikan dan mencabut peran:

    • Jika Anda ingin mengizinkan akun utama memberikan dan mencabut peran tertentu untuk semua resource dalam organisasi, pilih organisasi.
    • Jika Anda ingin mengizinkan akun utama memberikan dan mencabut peran tertentu untuk semua resource dalam folder, pilih folder.
    • Jika Anda ingin mengizinkan akun utama memberikan dan mencabut peran tertentu untuk semua resource dalam suatu project, pilih project.
  2. Pilih peran yang memungkinkan akun utama menetapkan kebijakan izinkan untuk jenis resource yang Anda pilih (project, folder, atau organisasi). Untuk mengikuti prinsip hak istimewa terendah, pilih salah satu peran yang telah ditetapkan berikut:

    • Project: Admin IAM Project (roles/resourcemanager.projectIamAdmin)
    • Folder: Admin IAM Folder (roles/resourcemanager.folderIamAdmin)
    • Organisasi: Admin Organisasi (roles/resourcemanager.organizationAdmin).

    Atau, pilih peran kustom yang menyertakan izin resourcemanager.resource-type.setIamPolicy dan resourcemanager.resource-type.getIamPolicy, dengan resource-type adalah project, folder, atau organization.

  3. Berikan peran utama yang Anda pilih secara bersyarat pada project, folder, atau organisasi yang Anda pilih.

    Kebijakan izinkan yang baru akan diterapkan, dan akun utama Anda dapat mengubah binding hanya untuk peran yang telah Anda izinkan.

    Konsol

    1. Di konsol Google Cloud, buka halaman IAM.

      Buka halaman IAM

    2. Pastikan nama project, folder, atau organisasi Anda muncul di pemilih resource di bagian atas halaman. Pemilih resource memberi tahu Anda project, folder, atau organisasi tempat Anda bekerja saat ini.

      Jika tidak melihat nama resource, klik pemilih resource, lalu pilih resource Anda.

    3. Dalam daftar utama, cari akun utama yang akan memberikan dan mencabut peran, lalu klik tombol .

    4. Di panel Edit permissions, pilih peran yang Anda pilih sebelumnya. Kemudian, di bagian IAM condition (optional), klik Add IAM condition.

    5. Di panel Edit kondisi, masukkan judul dan deskripsi opsional untuk kondisi.

    6. Klik tab Condition Editor dan masukkan ekspresi yang Anda tulis di Menulis ekspresi kondisi untuk membatasi pemberian peran. Ekspresi ini membatasi peran yang dapat diberikan atau dicabut oleh akun utama.

      Misalnya, ekspresi kondisi berikut membatasi akun utama untuk memberikan dan mencabut peran Pub/Sub Editor (roles/pubsub.editor) dan Pub/Sub Publisher (roles/pubsub.publisher):

      api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])

      Peringatan: Jangan sertakan jenis peran berikut dalam daftar peran yang diizinkan:

      • Peran dengan izin untuk memberikan dan mencabut peran IAM (yaitu, peran dengan nama izin yang diakhiri dengan setIamPolicy).
      • Peran khusus yang dapat diubah oleh admin IAM terbatas. Misalnya, jika admin IAM terbatas juga memiliki peran Administrator Peran (roles/iam.roleAdmin) di suatu project, jangan izinkan mereka untuk memberikan atau mencabut peran khusus level project.

      Admin IAM terbatas yang dapat memberikan dan mencabut jenis peran ini dapat memberi dirinya sendiri izin untuk memberikan dan mencabut semua peran IAM. Lihat Menulis ekspresi kondisi untuk membatasi pemberian peran untuk informasi selengkapnya.

    7. Klik Simpan untuk menerapkan kondisi.

    8. Setelah panel Edit kondisi ditutup, klik Simpan di panel Izin edit untuk memperbarui kebijakan izin.

    gcloud

    Kebijakan izin ditetapkan menggunakan pola baca-ubah-tulis.

    Pertama, baca kebijakan izinkan untuk resource:

    Jalankan perintah get-iam-policy. Perintah ini mengambil kebijakan izinkan terkini untuk resource.

    Perintah:

    gcloud resource-type get-iam-policy resource-id --format=json > path

    Ganti nilai berikut:

    • resource-type: Jenis resource yang Anda ingin akun utama berikan atau cabut perannya. Gunakan salah satu opsi berikut: projects, resource-manager folders, atau organizations.
    • resource-id: Project, folder, atau ID organisasi Google Cloud Anda.
    • path: Jalur file untuk mendownload kebijakan perizinan.

    Kebijakan izinkan disimpan dalam format JSON, misalnya:

    {
      "bindings": [
        {
          "members": [
            "user:project-owner@example.com"
          ],
          "role": "roles/owner"
        }
      ],
      "etag": "BwWKmjvelug=",
      "version": 1
    }
    

    Selanjutnya, ubah kebijakan izin.

    Agar akun utama hanya mengubah binding untuk peran tertentu, tambahkan binding peran bersyarat yang ditandai:

    {
      "bindings": [
        {
          "members": [
            "user:owner@example.com"
          ],
          "role": "roles/owner"
        },
        {
          "members": [
            "principal"
          ],
          "role": "role",
          "condition": {
            "title": "title",
            "description": "description",
            "expression":
              "expression"
          }
        }
      ],
      "etag": "BwWKmjvelug=",
      "version": 3
    }

    Ganti nilai berikut:

    • principal: Akun utama yang akan memberikan atau mencabut peran tertentu. Contoh, user:my-user@example.com. Untuk melihat format setiap jenis utama, lihat referensi Binding.
    • role: Peran yang Anda pilih pada langkah sebelumnya. Peran ini harus menyertakan izin setIamPolicy untuk jenis resource yang Anda pilih.
    • title: String yang menjelaskan kondisi secara singkat. Contoh, only_pubsub_roles.
    • description: Opsional. Deskripsi tambahan untuk kondisi tersebut. Contoh, Only allows granting/revoking the Pub/Sub editor and publisher roles.
    • expression: Ekspresi yang Anda tulis dalam Menulis ekspresi kondisi untuk membatasi pemberian peran. Ekspresi ini membatasi peran yang dapat diberikan atau dicabut oleh akun utama.

      Misalnya, ekspresi kondisi berikut membatasi akun utama untuk memberikan dan mencabut peran Pub/Sub Editor (roles/pubsub.editor) dan Pub/Sub Publisher (roles/pubsub.publisher):

      api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])

      Peringatan: Jangan sertakan jenis peran berikut dalam daftar peran yang diizinkan:

      • Peran dengan izin untuk memberikan dan mencabut peran IAM (yaitu, peran dengan nama izin yang diakhiri dengan setIamPolicy).
      • Peran khusus yang dapat diubah oleh admin IAM terbatas. Misalnya, jika admin IAM terbatas juga memiliki peran Administrator Peran (roles/iam.roleAdmin) di suatu project, jangan izinkan mereka untuk memberikan atau mencabut peran khusus level project.

      Admin IAM terbatas yang dapat memberikan dan mencabut jenis peran ini dapat memberi dirinya sendiri izin untuk memberikan dan mencabut semua peran IAM. Lihat Menulis ekspresi kondisi untuk membatasi pemberian peran untuk informasi selengkapnya.

    Terakhir, tulis kebijakan izinkan yang telah diperbarui:

    Tetapkan kebijakan izinkan baru dengan menjalankan perintah set-iam-policy untuk resource:

    gcloud resource-type set-iam-policy resource-id path

    Ganti nilai berikut:

    • resource-type: Jenis resource yang Anda ingin akun utama berikan atau cabut perannya. Gunakan salah satu opsi berikut: projects, resource-manager folders, atau organizations.
    • resource-id: Project, folder, atau ID organisasi Google Cloud Anda.
    • path: Jalur ke file yang berisi kebijakan izin yang telah diperbarui.

    Kebijakan izin yang baru akan diterapkan, dan akun utama akan dapat mengubah binding hanya untuk peran yang telah Anda izinkan.

    REST

    Kebijakan izin ditetapkan menggunakan pola baca-ubah-tulis.

    Pertama, baca kebijakan izinkan untuk resource:

    Metode getIamPolicy Resource Manager API mendapatkan kebijakan izin project, folder, atau organisasi.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • API_VERSION: Versi API yang akan digunakan. Untuk project dan organisasi, gunakan v1. Untuk folder, gunakan v2.
    • RESOURCE_TYPE: Jenis resource yang ingin Anda kelola kebijakannya. Gunakan nilai projects, folders, atau organizations.
    • RESOURCE_ID: Project Google Cloud organisasi, atau ID folder Anda. ID project berupa string alfanumerik, seperti my-project. Folder dan ID organisasi berupa numerik, seperti 123456789012.
    • POLICY_VERSION: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.

    Metode HTTP dan URL:

    POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy

    Meminta isi JSON:

    {
      "options": {
        "requestedPolicyVersion": POLICY_VERSION
      }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Responsnya berisi kebijakan izin resource. Contoh:

    {
      "version": 1,
      "etag": "BwWKmjvelug=",
      "bindings": [
        {
          "role": "roles/owner",
          "members": [
            "user:owner@example.com"
          ]
        }
      ]
    }
    

    Selanjutnya, ubah kebijakan izin.

    Tambahkan binding peran bersyarat yang memungkinkan akun utama memberikan dan mencabut hanya peran tertentu. Pastikan untuk mengubah kolom version menjadi 3:

    {
      "version": 3,
      "etag": "BwWKmjvelug=",
      "bindings": [
        {
          "members": [
            "user:owner@example.com"
          ],
          "role": "roles/owner"
        },
        {
          "members": [
            "PRINCIPAL"
          ],
          "role": "ROLE",
          "condition": {
            "title": "TITLE",
            "description": "DESCRIPTION",
            "expression":
              "EXPRESSION"
          }
        }
      ]
    }
    • PRINCIPAL: Akun utama yang akan memberikan atau mencabut peran tertentu. Contoh, user:my-user@example.com. Untuk melihat format setiap jenis utama, lihat referensi Binding.
    • ROLE: Peran yang Anda pilih pada langkah sebelumnya. Peran ini harus menyertakan izin setIamPolicy untuk jenis resource yang Anda pilih.
    • TITLE: String yang menjelaskan kondisi secara singkat. Contoh, only_pubsub_roles.
    • DESCRIPTION: Opsional. Deskripsi tambahan untuk kondisi tersebut. Contoh, Only allows granting/revoking the Pub/Sub editor and publisher roles.
    • EXPRESSION: Ekspresi yang Anda tulis dalam Menulis ekspresi kondisi untuk membatasi pemberian peran. Ekspresi ini membatasi peran yang dapat diberikan atau dicabut oleh akun utama.

      Misalnya, ekspresi kondisi berikut membatasi akun utama untuk memberikan dan mencabut peran Pub/Sub Editor (roles/pubsub.editor) dan Pub/Sub Publisher (roles/pubsub.publisher):

      api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])

      Peringatan: Jangan sertakan jenis peran berikut dalam daftar peran yang diizinkan:

      • Peran dengan izin untuk memberikan dan mencabut peran IAM (yaitu, peran dengan nama izin yang diakhiri dengan setIamPolicy).
      • Peran khusus yang dapat diubah oleh admin IAM terbatas. Misalnya, jika admin IAM terbatas juga memiliki peran Administrator Peran (roles/iam.roleAdmin) di suatu project, jangan izinkan mereka untuk memberikan atau mencabut peran khusus level project.

      Admin IAM terbatas yang dapat memberikan dan mencabut jenis peran ini dapat memberi dirinya sendiri izin untuk memberikan dan mencabut semua peran IAM. Lihat Menulis ekspresi kondisi untuk membatasi pemberian peran untuk informasi selengkapnya.

    Terakhir, tulis kebijakan izin yang telah diperbarui:

    Metode setIamPolicy Resource Manager API menetapkan kebijakan izinkan dalam permintaan sebagai kebijakan izinkan baru untuk project, folder, atau organisasi.

    Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:

    • API_VERSION: Versi API yang akan digunakan. Untuk project dan organisasi, gunakan v1. Untuk folder, gunakan v2.
    • RESOURCE_TYPE: Jenis resource yang ingin Anda kelola kebijakannya. Gunakan nilai projects, folders, atau organizations.
    • RESOURCE_ID: Project Google Cloud organisasi, atau ID folder Anda. ID project berupa string alfanumerik, seperti my-project. Folder dan ID organisasi berupa numerik, seperti 123456789012.
    • POLICY: Representasi JSON dari kebijakan yang ingin Anda tetapkan. Untuk informasi selengkapnya mengenai format kebijakan, lihat Referensi kebijakan.

      Misalnya, untuk menetapkan kebijakan yang ditunjukkan di langkah sebelumnya, ganti POLICY dengan kode berikut:

      {
        "version": 3,
        "etag": "BwWKmjvelug=",
        "bindings": [
          {
            "members": [
              "user:owner@example.com"
            ],
            "role": "roles/owner"
          },
          {
            "members": [
              "principal"
            ],
            "role": "role",
            "condition": {
              "title": "title",
              "description": "description",
              "expression":
                "expression"
            }
          }
        ]
      }

    Metode HTTP dan URL:

    POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy

    Meminta isi JSON:

    {
      "policy": POLICY
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Respons berisi kebijakan izin yang telah diperbarui.

Langkah selanjutnya