Halaman ini menjelaskan cara menolak akses akun utama dengan mencegah mereka dalam menggunakan izin Identity dan Access Management (IAM) tertentu.
Dalam IAM, Anda menolak akses dengan kebijakan penolakan. Setiap kebijakan penolakan dilampirkan ke organisasi, folder, atau project Google Cloud. Kebijakan penolakan berisi aturan penolakan, yang mengidentifikasi akun utama dan mencantumkan izin yang tidak dapat digunakan oleh akun utama.
Kebijakan penolakan terpisah dari kebijakan izin, yang juga dikenal sebagai kebijakan IAM . Kebijakan izinkan menyediakan akses ke resource dengan memberikan peran IAM ke akun utama.
Anda dapat mengelola kebijakan penolakan dengan Google Cloud CLI atau REST API
v2
IAM.
Sebelum memulai
Aktifkan IAM API.
Siapkan autentikasi.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
gcloud
Anda dapat menggunakan sampel gcloud CLI di halaman ini dari salah satu lingkungan pengembangan berikut:
-
Cloud Shell: Untuk menggunakan terminal online dengan gcloud CLI yang sudah disiapkan, aktifkan Cloud Shell.
Di bagian bawah halaman ini, sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Perlu waktu beberapa detik hingga sesi dimulai.
-
Shell lokal: Untuk menggunakan gcloud CLI di lingkungan pengembangan lokal, instal dan initialize gcloud CLI.
Terraform
Untuk menggunakan contoh Terraform di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Go
Untuk menggunakan contoh Go di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Java
Untuk menggunakan contoh Java di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Node.js
Untuk menggunakan contoh Node.js di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Python
Untuk menggunakan contoh Python di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengelola kebijakan penolakan, meminta administrator untuk memberi Anda peran IAM berikut pada organisasi:
-
Untuk melihat kebijakan penolakan:
Deny Reviewer (
roles/iam.denyReviewer
) -
Untuk melihat, membuat, memperbarui, dan menghapus kebijakan penolakan:
Deny Admin (
roles/iam.denyAdmin
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Peran yang telah ditetapkan berisi izin yang diperlukan untuk mengelola kebijakan penolakan. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengelola kebijakan penolakan:
-
Untuk melihat kebijakan penolakan:
-
iam.denypolicies.get
-
iam.denypolicies.list
-
-
Untuk membuat, memperbarui, dan menghapus kebijakan penolakan:
-
iam.denypolicies.create
-
iam.denypolicies.delete
-
iam.denypolicies.get
-
iam.denypolicies.update
-
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Mengidentifikasi izin yang akan ditolak
Sebelum membuat kebijakan penolakan, Anda harus memutuskan izin mana yang ingin ditolak, dan akun utama mana yang harus ditolak izinnya.
Hanya beberapa izin yang dapat ditolak. Untuk daftar izin yang dapat Anda tolak, lihat Izin yang didukung dalam kebijakan penolakan.
Dalam beberapa kasus, Anda juga dapat menggunakan grup perizinan untuk menolak kumpulan izin. Untuk mengetahui informasi selengkapnya, lihat Grup izin.
Anda mengelola kebijakan penolakan dengan REST API v2
, yang memerlukan format khusus
untuk nama izin. Misalnya, izin untuk membuat
peran khusus IAM diberi nama sebagai berikut:
v1
API:iam.roles.create
v2
API:iam.googleapis.com/roles.create
Mengidentifikasi titik lampiran
Setiap kebijakan penolakan dilampirkan ke organisasi, folder, atau project. Jika dilampirkan ke salah satu resource ini, kebijakan tolak diwarisi oleh semua resource level lebih rendah dalam project, folder, atau organisasi tersebut. Untuk menggunakan kebijakan tolak, Anda memerlukan ID untuk resource tempat kebijakan penolakan dilampirkan, yang disebut titik lampiran. ID ini menggunakan salah satu format dalam tabel berikut:
Format titik lampiran | |
---|---|
Organisasi |
Contoh untuk gcloud CLI:
Contoh untuk REST API: |
Folder |
Contoh untuk gcloud CLI:
Contoh untuk REST API: |
Project |
Contoh untuk gcloud CLI:
Contoh untuk REST API: |
Membuat kebijakan penolakan
Anda dapat menambahkan kebijakan penolakan ke organisasi, folder, dan project. Setiap resource dapat memiliki hingga 500 kebijakan penolakan.
Kebijakan penolakan berisi aturan penolakan, yang menentukan hal berikut:
- Izin untuk penolakan.
- Akun utama yang izinnya ditolak.
Opsional: Akun utama yang dikecualikan dari penolakan izin.
Misalnya, Anda dapat menolak izin ke suatu grup, tetapi mengecualikan pengguna tertentu yang termasuk dalam grup tersebut.
Opsional: Ekspresi kondisi yang menentukan kapan utama tidak dapat menggunakan izin. Dalam kebijakan penolakan, ekspresi kondisi hanya dapat digunakan fungsinya untuk tag resource—fungsi laninnya dan operator lain yang tidak mendukung.
Setiap resource dapat memiliki hingga 500 aturan penolakan di seluruh kebijakan penolakan yang terpasang.
Kebijakan penolakan diwariskan melalui hierarki resource. Misalnya, jika Anda menolak izin pada tingkat organisasi, yang izin tersebut juga akan ditolak pada folder dan project dalam organisasi tersebut, serta pada resource khusus layanan dalam setiap project.
Kebijakan penolakan akan menggantikan izin kebijakan. Jika akun utama diberi peran yang berisi izin tertentu, tetapi kebijakan penolakan mengatakan akun utama tidak dapat digunakan izinnya, maka akun utama tidak dapat izin penggunaannya.
gcloud
Untuk membuat kebijakan penolakan untuk resource, mulailah dengan membuat file JSON yang berisi kebijakan tersebut. Kebijakan penolakan menggunakan format berikut:
{ "displayName": "POLICY_NAME", "rules": [ { "denyRule": DENY_RULE_1 }, { "denyRule": DENY_RULE_2 }, { "denyRule": DENY_RULE_N } ] }
Berikan nilai berikut:
POLICY_NAME
: Nama tampilan untuk kebijakan penolakan.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: Aturan penolakan dalam kebijakan. Setiap aturan penolakan dapat berisi kolom berikut:-
deniedPermissions
: Daftar izin yang tidak dapat digunakan oleh akun utama yang ditentukan. Izin harus didukung dalam kebijakan penolakan.Dalam beberapa kasus, Anda juga dapat menggunakan grup perizinan untuk menolak kumpulan izin. Untuk mengetahui informasi selengkapnya, lihat Grup izin.
-
deniedPrincipals
: Daftar utama yang tidak dapat menggunakan izin yang ditentukan. Gunakanv2
format API untuk ID utama. -
exceptionPrincipals
: Opsional. Daftar utama yang dapat digunakan izin yang ditentukan, meskipun akun utama tersebut disertakan didalamnyadeniedPrincipals
. Misalnya, Anda dapat menggunakan kolom ini untuk membuat pengecualian bagi pengguna tertentu yang termasuk dalam grup yang ditolak. Gunakan format APIv2
untuk ID utama. -
denialCondition
: Opsional. Ekspresi kondisi yang menentukan kapan akun utama tidak dapat menggunakan izin. Berisi kolom berikut:-
expression
: Ekspresi kondisi yang menggunakan sintaksis Expression Language (CEL). Ekspresi tersebut harus menggunakan fungsi CEL untuk mengevaluasi tag resource. Fungsi dan operator lain tidak didukung. -
title
: Opsional. Rangkuman singkat dari tujuan terhadap kondisi. -
description
: Opsional. Deskripsi panjang dari kondisi.
-
Contoh aturan penolakan, lihat Kasus penggunaan umum.
-
Misalnya, kebijakan penolakan berikut berisi satu aturan penolakan, yang menolak satu
izin untuk pengguna lucian@example.com
:
{
"displayName": "My deny policy.",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principal://goog/subject/lucian@example.com"
],
"deniedPermissions": [
"iam.googleapis.com/roles.create"
]
}
}
]
}
Selanjutnya, jalankan perintah gcloud iam policies create
:
gcloud iam policies create POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
Berikan nilai berikut:
-
POLICY_ID
: ID untuk kebijakan penolakan. -
ATTACHMENT_POINT
: ID untuk resource yang t kebijakan penolakannya melekat. Untuk mempelajari cara memformat nilai ini, lihat Mengidentifikasi titik lampiran di halaman ini. -
POLICY_FILE
: Jalur file untuk file JSON yang berisi kebijakan penolakan.
Secara default, jika perintah ini berhasil dijalankan, output apa pun tidak akan dicetak. Untuk mencetak
respons mendetail, tambahkan flag --format=json
ke perintah.
Misalnya, perintah berikut akan membuat kebijakan penolakan bernama my-deny-policy
untuk project my-project
, menggunakan file bernama policy.json
:
gcloud iam policies create my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--policy-file=policy.json
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi penyedia Terraform.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Go IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Node.js IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
REST
Metode
policies.createPolicy
membuat kebijakan penolakan untuk resource.
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
-
ENCODED_ATTACHMENT_POINT
: ID yang dienkode URL-encodedunruk resource yang kebijakan penolakan yang dilampirkan. Untuk mempelajari cara untuk format nilai ini,lihat Mengidentifikasi titik lampiran di halaman ini. POLICY_ID
: ID untuk kebijakan penolakan.POLICY_NAME
: Nama tampilan untuk kebijakan tolak.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: Aturan penolakan dalam kebijakan. Setiap aturan penolakan dapat berisi kolom berikut:-
deniedPermissions
: Daftar izin yang tidak dapat digunakan oleh akun utama yang ditentukan. Izin harus didukung dalam kebijakan penolakan.Dalam beberapa kasus, Anda juga dapat menggunakan grup perizinan untuk menolak kumpulan izin. Untuk mengetahui informasi selengkapnya, lihat Grup izin.
-
deniedPrincipals
: Daftar utama yang tidak dapat menggunakan izin yang ditentukan. Gunakanv2
format API untuk ID utama. -
exceptionPrincipals
: Opsional. Daftar utama yang dapat digunakan izin yang ditentukan, meskipun akun utama tersebut disertakan didalamnyadeniedPrincipals
. Misalnya, Anda dapat menggunakan kolom ini untuk membuat pengecualian bagi pengguna tertentu yang termasuk dalam grup yang ditolak. Gunakan format APIv2
untuk ID utama. -
denialCondition
: Opsional. Ekspresi kondisi yang menentukan kapan akun utama tidak dapat menggunakan izin. Berisi kolom berikut:-
expression
: Ekspresi kondisi yang menggunakan sintaksis Expression Language (CEL). Ekspresi tersebut harus menggunakan fungsi CEL untuk mengevaluasi tag resource. Fungsi dan operator lain tidak didukung. -
title
: Opsional. Rangkuman singkat dari tujuan terhadap kondisi. -
description
: Opsional. Deskripsi panjang dari kondisi.
-
Contoh aturan penolakan, lihat Kasus penggunaan umum.
-
Metode HTTP dan URL:
POST https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies?policyId=POLICY_ID
Meminta isi JSON:
{ "displayName": "POLICY_NAME", "rules": [ { "denyRule": DENY_RULE_1 }, { "denyRule": DENY_RULE_2 }, { "denyRule": DENY_RULE_N } ] }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01", "metadata": { "@type": "type.googleapis.com/google.iam.v2.PolicyOperationMetadata", "createTime": "2022-06-28T19:06:12.455151Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-06-28T22:26:21.968687Z" "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] } }
Respons mengidentifikasi operasi yang berjalan lama. Anda dapat memantau status operasi yang berjalan lama untuk mengetahui kapan tersebut selesai. Untuk detailnya, lihat Periksa status operasi yang berjalan lama di halaman ini.
Mencantumkan kebijakan penolakan
Resource dapat memiliki beberapa kebijakan penolakan. Anda dapat mencantumkan semua kebijakan penolakan yang dilampirkan ke resource, lalu melihat setiap kebijakan penolakan untuk melihat aturan penolakan di setiap kebijakan.
gcloud
Untuk mencantumkan kebijakan penolakan resource, jalankan perintah gcloud iam policies list
:
gcloud iam policies list \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Berikan nilai berikut:
-
ATTACHMENT_POINT
: ID untuk resource yang t kebijakan penolakannya melekat. Untuk mempelajari cara memformat nilai ini, lihat Mengidentifikasi titik lampiran di halaman ini.
Misalnya, perintah berikut mencantumkan kebijakan penolakan yang melekat pada
organisasi yang ID numeriknya adalah 123456789012
:
gcloud iam policies list \
--attachment-point=cloudresourcemanager.googleapis.com/organizations/123456789012 \
--kind=denypolicies \
--format=json
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Go IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Node.js IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
REST
Metode
policies.listPolicies
mencantumkan kebijakan penolakan untuk resource.
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
-
ENCODED_ATTACHMENT_POINT
: ID yang dienkode URL-encodedunruk resource yang kebijakan penolakan yang dilampirkan. Untuk mempelajari cara untuk format nilai ini,lihat Mengidentifikasi titik lampiran di halaman ini.
Metode HTTP dan URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "policies": [ { "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "createTime": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-06-28T22:26:21.968687Z" }, { "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy-2", "uid": "8465d710-ea20-0a08-d92c-b2a3ebf766ab", "kind": "DenyPolicy", "displayName": "My second deny policy.", "createTime": "2022-06-05T19:21:53.595455Z", "updateTime": "2022-06-05T19:21:53.595455Z" }, { "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy-3", "uid": "ee9f7c2f-7e8c-b05c-d4e5-e03bfb2954e0", "kind": "DenyPolicy", "displayName": "My third deny policy.", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z" } ] }
Melihat kebijakan penolakan
Anda dapat menampilkan kebijakan penolakan untuk melihat aturan penolakan di dalamnya, termasuk izin yang ditolak dan akun utama yang tidak dapat menggunakan izin tersebut.
gcloud
Untuk mendapatkan kebijakan penolakan resource, jalankan perintah
gcloud iam policies get
:
gcloud iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Berikan nilai berikut:
-
POLICY_ID
: ID untuk kebijakan penolakan. -
ATTACHMENT_POINT
: ID untuk resource yang t kebijakan penolakannya melekat. Untuk mempelajari cara memformat nilai ini, lihat Mengidentifikasi titik lampiran di halaman ini.
Misalnya, perintah berikut mendapatkan kebijakan penolakan bernama my-deny-policy
untuk project my-project
dan menyimpannya dalam file bernama policy.json
:
gcloud iam policies get my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--format=json \
> ./policy.json
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Go IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Node.js IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
REST
Metode
policies.get
mendapatkan kebijakan penolakan untuk resource.
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
-
ENCODED_ATTACHMENT_POINT
: ID yang dienkode URL-encodedunruk resource yang kebijakan penolakan yang dilampirkan. Untuk mempelajari cara untuk format nilai ini,lihat Mengidentifikasi titik lampiran di halaman ini. POLICY_ID
: ID untuk kebijakan penolakan.
Metode HTTP dan URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Memperbarui kebijakan penolakan
Setelah membuat kebijakan penolakan, Anda dapat memperbarui aturan penolakan di dalamnya, serta nama tampilannya.
Untuk memperbarui kebijakan penolakan, gunakan pola read-modify-write:
- Baca versi kebijakan saat ini.
- Ubah informasi dalam kebijakan sesuai kebutuhan.
- Tulis kebijakan yang telah diperbarui.
Baca kebijakan penolakan
gcloud
Untuk mendapatkan kebijakan penolakan resource, jalankan perintah
gcloud iam policies get
:
gcloud iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Berikan nilai berikut:
-
POLICY_ID
: ID untuk kebijakan penolakan. -
ATTACHMENT_POINT
: ID untuk resource yang t kebijakan penolakannya melekat. Untuk mempelajari cara memformat nilai ini, lihat Mengidentifikasi titik lampiran di halaman ini.
Misalnya, perintah berikut mendapatkan kebijakan penolakan bernama my-deny-policy
untuk project my-project
dan menyimpannya dalam file bernama policy.json
:
gcloud iam policies get my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--format=json \
> ./policy.json
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Go IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Node.js IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
REST
Metode
policies.get
mendapatkan kebijakan penolakan untuk resource.
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
-
ENCODED_ATTACHMENT_POINT
: ID yang dienkode URL-encodedunruk resource yang kebijakan penolakan yang dilampirkan. Untuk mempelajari cara untuk format nilai ini,lihat Mengidentifikasi titik lampiran di halaman ini. POLICY_ID
: ID untuk kebijakan penolakan.
Metode HTTP dan URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Mengubah kebijakan penolakan
Untuk mengubah kebijakan penolakan, Anda harus mengubah salinan kebijakan yang sebelumnya Anda baca dari IAM. Anda dapat memperbarui nama tampilan, atau menambahkan, mengubah, atau menghapus aturan tolak. Perubahan tidak akan diterapkan hingga Anda menulis kebijakan yang diupdate.
Misalnya, Anda dapat menambahkan izin ke aturan penolakan yang ada:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2021-10-05T19:22:26.770543Z", "updateTime": "2021-10-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
Menulis kebijakan penolakan yang diperbarui
Setelah mengubah kebijakan penolakan secara lokal, Anda harus menulis kebijakan penolakan yang telah diperbarui ke IAM.
Setiap kebijakan penolakan berisi kolom etag
yang mengidentifikasi versi kebijakan.
etag
berubah setiap kali Anda memperbarui kebijakan. Saat Anda menulis kebijakan yang telah
diperbarui etag
dalam permintaan Anda yang harus cocok dengan etag
saat ini
yang tersimpan di IAM; Jika nilainya tidak sesuai, permintaan akan gagal. Fitur ini
membantu mencegah perubahan serentak agar tidak saling menimpa.
gcloud
Untuk memperbarui kebijakan penolakan resource, jalankan
gcloud iam policies update
perintah:
gcloud iam policies update POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
Berikan nilai berikut:
-
POLICY_ID
: ID untuk kebijakan penolakan. -
ATTACHMENT_POINT
: ID untuk resource yang t kebijakan penolakannya melekat. Untuk mempelajari cara memformat nilai ini, lihat Mengidentifikasi titik lampiran di halaman ini. -
POLICY_FILE
: Jalur file untuk file JSON yang berisi kebijakan penolakan.
Secara default, jika perintah ini berhasil dijalankan, output apa pun tidak akan dicetak. Untuk mencetak
respons mendetail, tambahkan flag --format=json
ke perintah.
Misalnya, perintah berikut akan memperbarui kebijakan penolakan bernama my-deny-policy
untuk project my-project
, menggunakan file bernama policy.json
:
gcloud iam policies update my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--policy-file=policy.json
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Go IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Node.js IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
REST
Metode
policies.update
memperbarui kebijakan penolakan.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
-
ENCODED_ATTACHMENT_POINT
: ID yang dienkode URL-encodedunruk resource yang kebijakan penolakan yang dilampirkan. Untuk mempelajari cara untuk format nilai ini,lihat Mengidentifikasi titik lampiran di halaman ini. POLICY_ID
: ID untuk kebijakan penolakan.-
POLICY
: Kebijakan penolakan yang diperbarui.Misalnya, untuk menambahkan izin ke kebijakan yang ditampilkan di langkah sebelumnya, ganti
POLICY
dengan kode berikut:{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
Metode HTTP dan URL:
PUT https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Meminta isi JSON:
POLICY
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/8b2d0ab2daf1ff01", "metadata": { "@type": "type.googleapis.com/google.iam.v2.PolicyOperationMetadata", "createTime": "2021-10-05T22:26:21.968687Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTgxNTIxNDE3NTYxNjQxODYxMTI=", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T22:26:21.968687Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] } }
Respons mengidentifikasi operasi yang berjalan lama. Anda dapat memantau status operasi yang berjalan lama untuk mengetahui kapan tersebut selesai. Untuk detailnya, lihat Periksa status operasi yang berjalan lama di halaman ini.
Menghapus kebijakan penolakan
Jika tidak ingin lagi menerapkan aturan dalam kebijakan penolakan, Anda dapat menghapus kebijakan penolakan.
Secara opsional, Anda dapat menentukan etag
untuk versi kebijakan yang
akan dihapus. Jika Anda menentukannya etag
, harus cocok dengan etag
saat ini yang disimpan oleh
IAM; jika nilainya tidak sesuai, permintaan akan gagal. Anda dapat menggunakan
fitur ini untuk memastikan bahwa Anda menghapus kebijakan yang dimaksud, bukan
versi terbaru kebijakan tersebut.
Jika Anda menghapus etag
dari permintaan, IAM akan menghapus kebijakan
tanpa syarat.
gcloud
Untuk menghapus kebijakan penolakan dari resource, jalankan perintah
gcloud iam policies delete
:
gcloud iam policies delete POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies
Berikan nilai berikut:
-
POLICY_ID
: ID untuk kebijakan penolakan. -
ATTACHMENT_POINT
: ID untuk resource yang t kebijakan penolakannya melekat. Untuk mempelajari cara memformat nilai ini, lihat Mengidentifikasi titik lampiran di halaman ini.
Secara opsional, Anda dapat menambahkan tanda --etag=ETAG
. Ganti
ETAG
dengan nilai etag
saat ini untuk kebijakan penolakan.
Secara default, jika perintah ini berhasil dijalankan, output apa pun tidak akan dicetak. Untuk mencetak
respons mendetail, tambahkan flag --format=json
ke perintah.
Misalnya, perintah berikut menghapus kebijakan penolakan bernama my-deny-policy
dari project my-project
:
gcloud iam policies delete my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Go IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Node.js IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
REST
Metode
policies.delete
menghapus kebijakan penolakan dari resource.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
-
ENCODED_ATTACHMENT_POINT
: ID yang dienkode URL-encodedunruk resource yang kebijakan penolakan yang dilampirkan. Untuk mempelajari cara untuk format nilai ini,lihat Mengidentifikasi titik lampiran di halaman ini. POLICY_ID
: ID untuk kebijakan penolakan.-
ETAG
: Opsional. ID untuk versi kebijakan. Jika ada, nilai ini harus cocok dengan nilaietag
saat ini untuk kebijakan.
Metode HTTP dan URL:
DELETE https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID?etag=ETAG
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/8223fe308bf1ff01", "metadata": { "@type": "type.googleapis.com/google.iam.v2.PolicyOperationMetadata", "createTime": "2021-10-05T19:45:00.133311Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-07-05T19:45:00.133311Z", "deleteTime": "2022-07-05T19:45:00.133311Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] } }
Respons mengidentifikasi operasi yang berjalan lama. Anda dapat memantau status operasi yang berjalan lama untuk mengetahui kapan tersebut selesai. Untuk detailnya, lihat Periksa status operasi yang berjalan lama di halaman ini.
Memeriksa status operasi yang berjalan lama
Saat Anda menggunakan REST API atau library klien, metode apa pun yang mengubah kebijakan penolakan yang menampilkan operasi yang berjalan lama atau LRO. Operasi yang berjalan lama akan melacak status permintaan dan menunjukkan apakah perubahan pada kebijakan sudah selesai.
Go
Kode sampel di halaman ini menunjukkan cara menunggu untuk operasi yang berjalan lama selesai, lalu mengakses hasilnya.
Java
Kode sampel di halaman ini menunjukkan cara menunggu untuk operasi yang berjalan lama selesai, lalu mengakses hasilnya.
Node.js
Kode sampel di halaman ini menunjukkan cara menunggu untuk operasi yang berjalan lama selesai, lalu mengakses hasilnya.
Python
Kode sampel di halaman ini menunjukkan cara menunggu untuk operasi yang berjalan lama selesai, lalu mengakses hasilnya.
REST
Metode
policies.operations.get
menampilkan status operasi yang berjalan lama.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
-
ENCODED_ATTACHMENT_POINT
: ID yang dienkode URL-encodedunruk resource yang kebijakan penolakan yang dilampirkan. Untuk mempelajari cara untuk format nilai ini,lihat Mengidentifikasi titik lampiran di halaman ini. -
OPERATION_ID
: ID untuk operasi. Anda menerima ID ini sebagai respons atas permintaan asli Anda, sebagai bagian dari nama operasi. Gunakan nilai heksadesimal di akhir nama operasi. Contoh,89cb3e508bf1ff01
.
Metode HTTP dan URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/operations/OPERATION_ID
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01", "done": true }
Jika kolom done
operasi tidak ada, terus pantau statusnya
dengan mendapatkan operasi tersebut berulang kali. Gunakan
backoff eksponensial terpotong untuk menambahkan penundaan di antara
setiap permintaan. Saat kolom done
ditetapkan true
, operasi akan selesai,
dan Anda dapat berhenti mendapatkan operasi tersebut.
Langkah selanjutnya
- Identifikasi izin yang didukung dalam kebijakan penolakan.
- Mendapatkan format ID utama dalam kebijakan penolakan.
- Cari tahu cara memecahkan masalah akses dengan kebijakan penolakan.
- Pelajari lebih lanjut cara menolak akses ke akun utama.