Topik ini menunjukkan cara melihat kebijakan Identity and Access Management (IAM) yang efektif pada resource tertentu.
Di IAM, kebijakan yang efektif menjelaskan cara semua kebijakan induk dan ancestor dalam hierarki resource diwariskan untuk resource.
Cakupan dan izin
Saat meminta kebijakan IAM yang efektif, Anda harus menentukan cakupan. Hal ini bisa berupa organisasi, folder, atau project. Semua kebijakan IAM yang ditetapkan pada atau dalam cakupan tersebut akan ditampilkan. Cakupan permintaan tidak harus sama dengan project yang diaktifkan untuk Cloud Asset API. Selain itu, cakupan project dan permintaan yang diaktifkan memerlukan izin yang berbeda.
Jenis kebijakan yang didukung
Kebijakan IAM yang efektif hanya mendukung kebijakan izin IAM. Metode ini tidak mendukung bentuk kontrol akses berikut:
Sebelum memulai
Sebelum memulai, selesaikan langkah-langkah berikut.
Aktifkan Cloud Asset Inventory API untuk project Anda.
Mengaktifkan Cloud Asset Inventory API
Project ini tidak harus sama dengan cakupan permintaan Anda. Pelajari lebih lanjut cara menetapkan project saat mengaktifkan layanan.
Menginstal Google Cloud SDK.
Opsional: Untuk memanggil Cloud Asset Inventory API secara langsung, pastikan Anda memiliki akses ke perintah
curl
.Tetapkan izin.
Konfigurasi izin untuk Cloud Asset API.
Aktifkan izin berikut untuk cakupan permintaan Anda.
cloudasset.assets.analyzeIamPolicy
cloudasset.assets.searchAllResources
cloudasset.assets.searchAllIamPolicies
Izin ini termasuk dalam peran yang telah ditetapkan berikut:
Pemilik Aset Cloud (
roles/cloudasset.owner
)Pelihat Aset Cloud (
roles/cloudasset.viewer
)
Untuk mengetahui informasi selengkapnya tentang izin dan peran Cloud Asset API, lihat Kontrol akses.
Mendapatkan kebijakan IAM yang efektif
gcloud
Untuk mendapatkan kebijakan IAM yang efektif pada resource, Anda dapat memanggil
BatchGetEffectiveIamPolicies
menggunakan perintah
gcloud asset get-effective-iam-policy
. Anda harus menjalankan Google Cloud CLI versi 399.0.0 atau yang lebih baru.
gcloud asset get-effective-iam-policy \
--scope=SCOPE \
--names=ASSET_NAME_1,ASSET_NAME_2,...
Berikan nilai berikut:
SCOPE
: Cakupan dapat berupa project, folder, atau organisasi.Nilai yang diizinkan adalah:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Cara menemukan nomor project Google Cloud
Konsol
Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:
-
Buka halaman Dasbor di Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Pilih organisasi dari kotak Pilih dari, lalu telusuri nama project Anda.
- Klik nama project untuk beralih ke project tersebut. Nomor project ditampilkan di kartu Project info.
gcloud CLI
Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Cara menemukan ID folder Google Cloud
Konsol
Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:
-
Buka Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Klik kotak Pilih dari, lalu pilih organisasi Anda.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
gcloud CLI
Anda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Dengan TOP_LEVEL_FOLDER_NAME dapat berupa pencocokan string penuh atau sebagian. Hapus opsi
--format
untuk melihat informasi selengkapnya tentang folder yang ditemukan.Untuk mendapatkan ID folder dalam folder lain, cantumkan subfoldernya:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Cara menemukan ID organisasi Google Cloud
Konsol
Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:
-
Buka Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Klik kotak Pilih dari, lalu pilih organisasi Anda.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
ASSET_NAME
: Daftar nama lengkap aset yang dipisahkan koma untuk mengambil kebijakan IAM yang efektif.Anda dapat mengambil kebijakan untuk maksimum 20 aset dalam satu batch.
Contoh kode berikut adalah contoh perintah CLI gcloud
:
Untuk ID organisasi
123456
:gcloud asset get-effective-iam-policy \ --scope=organizations/123456 \ --names=//cloudresourcemanager.googleapis.com/organizations/123456
Untuk ID folder
1234567
:gcloud asset get-effective-iam-policy \ --scope=folders/1234567 \ --names=//cloudresourcemanager.googleapis.com/folders/1234567
Untuk dua resource instance Cloud SQL dalam project bernama
my-project
:gcloud asset get-effective-iam-policy \ --scope=projects/my-project \ --names=//cloudsql.googleapis.com/projects/my-project/instances/instance1,//cloudsql.googleapis.com/projects/my-project/instances/instance2
REST
Untuk mendapatkan kebijakan IAM yang efektif pada resource menggunakan
Cloud Asset Inventory API, gunakan perintah curl
berikut:
curl -X POST \
-H "X-HTTP-Method-Override: GET" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"names": [
"ASSET_NAME_1",
"ASSET_NAME_2",
"..."
]
}' \
https://cloudasset.googleapis.com/v1/SCOPE/effectiveIamPolicies:batchGet
Berikan nilai berikut:
ASSET_NAME
: Daftar nama lengkap aset yang dipisahkan koma untuk mengambil kebijakan IAM yang efektif.Anda dapat mengambil kebijakan untuk maksimum 20 aset dalam satu batch.
SCOPE
: Cakupan dapat berupa project, folder, atau organisasi.Nilai yang diizinkan adalah:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Cara menemukan nomor project Google Cloud
Konsol
Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:
-
Buka halaman Dasbor di Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Pilih organisasi dari kotak Pilih dari, lalu telusuri nama project Anda.
- Klik nama project untuk beralih ke project tersebut. Nomor project ditampilkan di kartu Project info.
gcloud CLI
Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Cara menemukan ID folder Google Cloud
Konsol
Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:
-
Buka Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Klik kotak Pilih dari, lalu pilih organisasi Anda.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
gcloud CLI
Anda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Dengan TOP_LEVEL_FOLDER_NAME dapat berupa pencocokan string penuh atau sebagian. Hapus opsi
--format
untuk melihat informasi selengkapnya tentang folder yang ditemukan.Untuk mendapatkan ID folder dalam folder lain, cantumkan subfoldernya:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Cara menemukan ID organisasi Google Cloud
Konsol
Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:
-
Buka Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Klik kotak Pilih dari, lalu pilih organisasi Anda.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-