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
Aktifkan Resource Manager API.
Pahami struktur kebijakan izin.
Memahami IAM Conditions.
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 fungsiapi.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 atributiam.googleapis.com/modifiedGrantsByRole
disertakan dalam daftar ini, fungsi akan menampilkantrue
. Jika tidak, fungsi menampilkanfalse
.Jika atribut
iam.googleapis.com/modifiedGrantsByRole
berisi nilai default ([]
), fungsi akan menampilkantrue
, 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.
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.
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
danresourcemanager.resource-type.getIamPolicy
, denganresource-type
adalahproject
,folder
, atauorganization
.- Project: Admin IAM Project (
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
Di konsol Google Cloud, buka halaman IAM.
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.
Dalam daftar utama, cari akun utama yang akan memberikan dan mencabut peran, lalu klik tombol
.Di panel Edit permissions, pilih peran yang Anda pilih sebelumnya. Kemudian, di bagian IAM condition (optional), klik Add IAM condition.
Di panel Edit kondisi, masukkan judul dan deskripsi opsional untuk kondisi.
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.
-
Peran dengan izin untuk memberikan dan mencabut peran IAM (yaitu,
peran dengan nama izin yang diakhiri dengan
Klik Simpan untuk menerapkan kondisi.
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
, atauorganizations
.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 referensiBinding
.role
: Peran yang Anda pilih pada langkah sebelumnya. Peran ini harus menyertakan izinsetIamPolicy
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.
-
Peran dengan izin untuk memberikan dan mencabut peran IAM (yaitu,
peran dengan nama izin yang diakhiri dengan
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
, atauorganizations
.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, gunakanv1
. Untuk folder, gunakanv2
.RESOURCE_TYPE
: Jenis resource yang ingin Anda kelola kebijakannya. Gunakan nilaiprojects
,folders
, atauorganizations
.RESOURCE_ID
: Project Google Cloud organisasi, atau ID folder Anda. ID project berupa string alfanumerik, sepertimy-project
. Folder dan ID organisasi berupa numerik, seperti123456789012
.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
menjadi3
:{ "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 referensiBinding
.ROLE
: Peran yang Anda pilih pada langkah sebelumnya. Peran ini harus menyertakan izinsetIamPolicy
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.
-
Peran dengan izin untuk memberikan dan mencabut peran IAM (yaitu,
peran dengan nama izin yang diakhiri dengan
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, gunakanv1
. Untuk folder, gunakanv2
.RESOURCE_TYPE
: Jenis resource yang ingin Anda kelola kebijakannya. Gunakan nilaiprojects
,folders
, atauorganizations
.RESOURCE_ID
: Project Google Cloud organisasi, atau ID folder Anda. ID project berupa string alfanumerik, sepertimy-project
. Folder dan ID organisasi berupa numerik, seperti123456789012
.-
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
- Terapkan prinsip hak istimewa terendah dengan rekomendasi peran.
- Pelajari cara menggunakan IAM Conditions untuk mengonfigurasi akses sementara dan mengonfigurasi akses berbasis resource.