Penganalisis Kebijakan untuk kebijakan IAM

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:

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:

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 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 untuk project-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 memiliki compute.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