Dengan Policy Analyzer, Anda dapat mencari tahu akun utama mana (misalnya, pengguna, akun layanan, grup, dan domain) yang memiliki akses ke resource Google Cloud tertentu berdasarkan Kebijakan izin IAM Anda.
Penganalisis Kebijakan dapat membantu Anda menjawab pertanyaan seperti berikut:
- Siapa yang dapat mengakses akun layanan IAM ini?
- Siapa yang dapat membaca data dalam set data BigQuery yang berisi informasi identitas pribadi (PII) ini?
- Apa saja peran dan izin yang dimiliki grup
dev-testers
pada resource apa pun dalam project ini? - Instance mesin virtual (VM) Compute Engine apa yang dapat dihapus Tal di project A?
- Siapa yang dapat mengakses bucket Cloud Storage ini pada pukul 19?
Cara kerja Penganalisis Kebijakan
Untuk menggunakan Penganalisis Kebijakan, Anda membuat kueri analisis, menentukan cakupan untuk analisis, lalu menjalankan kueri.
Kueri analisis
Untuk menggunakan Penganalisis Kebijakan, Anda membuat kueri analisis yang menentukan satu atau beberapa kolom berikut:
- Akun utama: Identitas (misalnya, pengguna, akun layanan, grup, dan domain) yang aksesnya ingin Anda periksa
- Akses: Izin dan peran yang ingin Anda periksa
- Resource: Resource yang ingin Anda periksa aksesnya
- (Khusus API) Konteks kondisi: Konteks—misalnya, waktu, saat Anda ingin memeriksa akses
Biasanya, Anda menentukan satu atau dua kolom ini dalam kueri analisis, lalu menggunakan hasil kueri untuk mendapatkan informasi lebih lanjut tentang kolom yang tidak Anda tentukan. Misalnya, jika ingin mengetahui siapa yang memiliki izin tertentu di resource tertentu, Anda perlu menentukan akses dan resource dalam kueri analisis, tetapi jangan menentukan akun utamanya.
Untuk mengetahui contoh jenis kueri lainnya yang dapat Anda buat, lihat Jenis kueri umum.
Cakupan analisis
Untuk menjalankan kueri analisis, Anda perlu menentukan cakupan yang akan dianalisis. Ruang lingkup adalah organisasi, folder, atau project yang ingin Anda batasi analisisnya. Hanya IAM yang mengizinkan kebijakan yang terlampir pada resource yang digunakan sebagai cakupan dan ke turunannya yang akan dianalisis.
Di REST API dan gcloud CLI, Anda menentukan cakupan secara manual. Di konsol Google Cloud, cakupannya otomatis ditentukan berdasarkan project, folder, atau organisasi yang Anda kelola saat ini.
Setelah membuat kueri analisis dan menentukan cakupan, Anda dapat menjalankan kueri untuk menganalisis kebijakan dalam cakupan tersebut.
Hasil kueri
Saat Anda menjalankan kueri analisis, Penganalisis Kebijakan melaporkan semua binding peran yang berisi akun utama, akses, dan resource yang Anda tentukan dalam kueri. Untuk setiap binding peran, fungsi ini melaporkan akun utama dalam binding, akses (peran dan izin) yang diberikan binding, dan resource yang dapat diakses oleh binding tersebut.
Anda dapat meninjau hasil ini untuk lebih memahami akses di project, folder, atau organisasi Anda. Misalnya, jika Anda menjalankan kueri untuk mengetahui akun utama mana yang memiliki akses ke resource tertentu, Anda harus meninjau akun utama tersebut di hasil kueri.
Anda dapat menyesuaikan informasi dalam hasil kueri dengan mengaktifkan opsi kueri.
Jenis kebijakan yang didukung
Penganalisis Kebijakan IAM hanya mendukung kebijakan izin IAM.
Penganalisis Kebijakan tidak mendukung bentuk kontrol akses berikut:
- Kebijakan penolakan IAM
- Kontrol akses berbasis peran Google Kubernetes Engine
- Daftar kontrol akses Cloud Storage
- Pencegahan akses publik Cloud Storage
Hasil kueri Penganalisis Kebijakan tidak memperhitungkan jenis kebijakan yang tidak didukung. Misalnya, bayangkan bahwa pengguna memiliki izin iam.roles.get
di project
karena kebijakan izinkan, tetapi kebijakan penolakan mencegah mereka menggunakan
izin. Penganalisis Kebijakan akan melaporkan bahwa pengguna memiliki izin iam.roles.get
, meskipun terdapat kebijakan penolakan.
Pewarisan kebijakan
Untuk memperhitungkan pewarisan kebijakan, Penganalisis Kebijakan otomatis menganalisis semua kebijakan izin yang relevan dalam cakupan yang ditentukan, terlepas dari posisinya dalam hierarki resource.
Misalnya, bayangkan Anda mencoba mencari tahu siapa yang dapat mengakses akun layanan IAM:
- Jika Anda mencakup kueri ke suatu project, Penganalisis Kebijakan akan menganalisis kebijakan izinkan akun layanan dan kebijakan izin project.
- Jika Anda mencakup kueri ini ke organisasi, Penganalisis Kebijakan akan menganalisis kebijakan izin akun layanan, kebijakan izin project yang memiliki akun layanan, kebijakan izin folder yang berisi project, dan kebijakan izin organisasi.
Akses bersyarat
Jika binding peran memiliki kondisi, binding tersebut hanya memberikan akses utama jika kondisi tersebut terpenuhi. Penganalisis Kebijakan selalu melaporkan kondisi yang disertakan ke binding peran yang relevan. Binding peran yang relevan adalah binding peran yang berisi akun utama, akses, dan resource yang Anda tentukan dalam kueri analisis.
Pada beberapa kasus, Penganalisis Kebijakan juga dapat menganalisis kondisi, yang berarti alat ini dapat melaporkan apakah kondisi tersebut akan terpenuhi. Penganalisis Kebijakan dapat menganalisis jenis kondisi berikut:
- Kondisi berdasarkan atribut resource, untuk jenis resource yang menyediakan nama resource.
- Kondisi tanggal/waktu (khusus API dan gcloud CLI). Agar Penganalisis Kebijakan dapat menganalisis kondisi ini, Anda harus memberikan waktu akses (
accessTime
) dalam kueri analisis. Untuk mempelajari cara memberikan konteks ini, lihat Menentukan akses pada waktu tertentu.
Jika binding peran yang relevan berisi kondisi, Penganalisis Kebijakan akan melakukan salah satu tindakan berikut:
Jika Penganalisis Kebijakan dapat menganalisis kondisi, alat ini akan melakukan salah satu tindakan berikut:
- Jika kondisi bernilai benar (true), Penganalisis Kebijakan akan menyertakan binding
peran dalam hasil kueri dan menandai evaluasi kondisi sebagai
TRUE
. - Jika kondisi bernilai false, Penganalisis Kebijakan tidak akan menyertakan peran tersebut dalam hasil kueri.
- Jika kondisi bernilai benar (true), Penganalisis Kebijakan akan menyertakan binding
peran dalam hasil kueri dan menandai evaluasi kondisi sebagai
Jika tidak dapat menganalisis kondisi untuk binding peran yang relevan, Kebijakan akan menyertakan peran tersebut dalam hasil kueri dan menandai evaluasi kondisi sebagai
CONDITIONAL
.
Keaktualan data
Penganalisis Kebijakan menggunakan Cloud Asset API, yang menawarkan keaktualan data dengan upaya terbaik. Meskipun hampir semua pembaruan kebijakan muncul di Penganalisis Kebijakan dalam hitungan menit, mungkin Penganalisis Kebijakan tidak akan menyertakan pembaruan kebijakan terbaru.
Jenis kueri umum
Bagian ini menjelaskan cara menggunakan kueri analisis untuk menjawab pertanyaan umum terkait akses.
Akun utama mana yang dapat mengakses resource ini?
Untuk menentukan akun utama yang dapat mengakses resource, buat kueri analisis yang menentukan resource tersebut, serta peran dan izin yang ingin diperiksa.
Kueri ini dapat membantu Anda menjawab pertanyaan seperti berikut:
- Siapa yang memiliki akses ke akun layanan IAM ini?
- Siapa yang memiliki izin untuk meniru identitas akun layanan IAM ini?
- Siapa administrator penagihan di project A?
- (Khusus API dan gcloud CLI): Siapa yang dapat mengupdate project A dengan meniru akun layanan?
Untuk mempelajari cara membuat dan mengirim kueri ini, lihat Menentukan akun utama yang dapat mengakses resource.
Akun utama mana yang memiliki peran dan izin ini?
Untuk menentukan akun utama yang memiliki peran dan izin tertentu, buat kueri analisis yang menentukan akun utama dan kumpulan peran serta izin yang ingin Anda periksa.
Kueri ini dapat membantu Anda menjawab pertanyaan seperti berikut:
- Siapa yang memiliki izin untuk meniru identitas akun layanan di organisasi saya?
- Siapa administrator penagihan di organisasi saya?
- Siapa yang dapat membaca data dalam {i>dataset<i} BigQuery yang berisi informasi identitas pribadi (PII)?
- (Khusus API dan gcloud CLI): Siapa di organisasi saya yang dapat membaca set data BigQuery dengan meniru identitas akun layanan?
Untuk mempelajari cara membuat dan mengirim kueri ini, lihat Menentukan akun utama yang memiliki peran atau izin tertentu.
Peran dan izin apa yang dimiliki akun utama ini pada resource ini?
Untuk menentukan peran dan izin yang dimiliki akun utama pada resource tertentu, buat kueri analisis yang menentukan akun utama dan resource yang ingin Anda periksa izinnya.
Kueri ini dapat membantu Anda menjawab pertanyaan seperti berikut:
- Peran dan izin apa yang dimiliki pengguna Sasha pada set data BigQuery ini?
- Apa saja peran dan izin yang dimiliki grup
dev-testers
pada resource apa pun dalam project ini? - (Khusus API dan gcloud CLI): Peran dan izin apa yang dimiliki pengguna Dana pada set data BigQuery ini jika Dana meniru akun layanan?
Untuk mempelajari cara membuat dan mengirim kueri ini, lihat Menentukan akses yang dimiliki akun utama pada resource.
Resource mana yang dapat diakses oleh akun utama ini?
Untuk menentukan resource yang dapat diakses akun utama tertentu, buat kueri analisis yang menentukan akun utama serta peran dan izin yang ingin Anda periksa.
Kueri ini dapat membantu Anda menjawab pertanyaan seperti berikut:
- {i>Dataset <i}BigQuery mana yang boleh dibaca oleh pengguna Mahan?
- Set data BigQuery mana yang merupakan grup
dev-testers
sebagai pemilik data? - VM apa yang dapat dihapus Tal di project A?
- (Khusus API dan gcloud CLI): VM apa yang dapat dihapus oleh pengguna John dengan meniru identitas akun layanan?
Untuk mempelajari cara membuat dan mengirim kueri ini, lihat Menentukan resource yang dapat diakses oleh akun utama.
Kueri analisis tersimpan
Jika menggunakan REST API, Anda dapat menyimpan kueri analisis untuk digunakan kembali atau dibagikan kepada orang lain. Anda dapat menjalankan kueri tersimpan seperti halnya menjalankan kueri lainnya.
Untuk mempelajari lebih lanjut cara menyimpan kueri, lihat Mengelola kueri tersimpan.
Mengekspor hasil kueri
Anda dapat menjalankan kueri secara asinkron dan mengekspor hasil kueri ke BigQuery atau Cloud Storage menggunakan analyzeIamPolicyLongrunning
.
Untuk mempelajari cara mengekspor hasil kueri ke BigQuery, lihat Menulis analisis kebijakan ke BigQuery.
Untuk mempelajari cara mengekspor hasil kueri ke Cloud Storage, lihat Menulis analisis kebijakan ke Cloud Storage.
Opsi kueri
Penganalisis Kebijakan menawarkan beberapa opsi yang menambahkan detail lebih lanjut ke hasil kueri Anda.
Untuk mempelajari cara mengaktifkan opsi ini, lihat Mengaktifkan opsi.
Ekspansi grup
Jika Anda mengaktifkan perluasan grup, grup apa pun dalam hasil kueri akan diperluas menjadi anggota individual. Perluasan ini dibatasi hingga 1.000 anggota per grup. Jika Anda memiliki izin grup yang memadai, grup bertingkat juga akan diperluas. Opsi ini hanya efektif jika Anda tidak menentukan akun utama dalam kueri.
Misalnya, bayangkan Anda mengaktifkan ekspansi grup untuk kueri "Siapa yang memiliki
izin storage.buckets.delete
untuk project-1
?" Jika Penganalisis Kebijakan menemukan
grup yang memiliki izin storage.buckets.delete
, hasil kueri
tidak hanya akan mencantumkan ID grup, tetapi juga semua anggota individual dalam
grup tersebut.
Opsi ini memungkinkan Anda memahami akses setiap pengguna, meskipun akses tersebut adalah hasil dari keanggotaan mereka dalam grup.
Perluasan peran
Jika Anda mengaktifkan perluasan peran, hasil kueri akan mencantumkan semua izin dalam setiap peran selain peran itu sendiri. Opsi ini hanya tersedia jika Anda tidak menentukan izin atau peran apa pun dalam kueri.
Misalnya, bayangkan Anda mengaktifkan perluasan peran untuk kueri "Akses apa
yang dimiliki my-user@example.com
pada bucket bucket-1
?" Jika Penganalisis Kebijakan menemukan
peran apa pun yang memberi my-user@example.com
akses ke bucket-1
, hasil
kueri tidak hanya akan mencantumkan nama peran, tetapi juga semua izin yang disertakan
dalam peran tersebut.
Opsi ini memungkinkan Anda melihat izin yang dimiliki akun utama Anda.
Perluasan sumber daya
Jika Anda mengaktifkan perluasan resource untuk kueri Penganalisis Kebijakan, hasil kueri akan mencantumkan semua resource turunan yang relevan untuk setiap resource induk (project, folder, dan organisasi) dalam hasil kueri. Ekspansi ini dibatasi hingga 1.000 resource per resource induk untuk kueri Penganalisis Kebijakan dan 100.000 resource per resource induk untuk kueri Penganalisis Kebijakan yang berjalan lama.
Misalnya, pertimbangkan bagaimana perluasan resource akan memengaruhi kueri berikut:
Siapa yang memiliki izin
storage.buckets.delete
untukproject-1
?Jika Anda mengaktifkan ekspansi resource untuk kueri ini, bagian resource hasil kueri tidak hanya akan mencantumkan project, tetapi juga semua bucket penyimpanan di dalam project.
Resource mana yang
my-user@example.com
memilikicompute.instances.setIamPolicy
izin?Jika Anda mengaktifkan perluasan resource untuk kueri ini dan Penganalisis Kebijakan menemukan bahwa
my-user@example.com
memiliki peran level project yang berisi izin tersebut, bagian resource pada hasil kueri tidak hanya akan mencantumkan project, tetapi juga semua instance Compute Engine di dalam project tersebut.
Opsi ini memungkinkan Anda mendapatkan pemahaman mendetail tentang resource yang dapat diakses oleh akun utama.
Peniruan akun layanan
Jika menggunakan REST API atau gcloud CLI, Anda dapat mengaktifkan analisis peniruan identitas akun layanan.
Jika opsi ini diaktifkan, Penganalisis Kebijakan akan menjalankan kueri analisis tambahan untuk menentukan siapa yang dapat meniru identitas akun layanan yang memiliki akses tertentu ke resource yang ditentukan. Penganalisis Kebijakan menjalankan satu kueri untuk setiap akun layanan di hasil kueri. Kueri ini menganalisis siapa yang memiliki salah satu izin berikut di akun layanan:
iam.serviceAccounts.actAs
iam.serviceAccounts.getAccessToken
iam.serviceAccounts.getOpenIdToken
iam.serviceAccounts.implicitDelegation
iam.serviceAccounts.signBlob
iam.serviceAccounts.signJwt
Kuota dan batas
Inventaris Aset Cloud memberlakukan laju permintaan masuk, termasuk permintaan analisis kebijakan, berdasarkan project konsumen. Inventaris Aset Cloud juga membatasi ekspansi grup dalam keanggotaan grup dan ekspansi resource dalam hierarki resource.
Untuk melihat kuota dan batas default untuk Penganalisis Kebijakan, lihat Kuota dan batas dalam dokumentasi Inventaris Aset Cloud.
Langkah selanjutnya
- Pelajari cara menggunakan Penganalisis Kebijakan untuk menganalisis kebijakan izinkan.
- Lihat bagaimana Anda dapat menggunakan REST API untuk menyimpan kueri Analisis Kebijakan.