Penganalisis Kebijakan untuk kebijakan izin

Penganalisis Kebijakan untuk kebijakan izin memungkinkan Anda mengetahui akun utama mana (misalnya, pengguna, akun layanan, grup, dan domain) yang memiliki akses tertentu ke resource Google Cloud tertentu berdasarkan kebijakan izin IAM Anda.

Penganalisis Kebijakan untuk kebijakan izin 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.00?

Cara kerja Policy Analyzer untuk kebijakan izin

Untuk menggunakan Penganalisis Kebijakan untuk kebijakan izin, 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 aksesnya ingin Anda periksa
  • (Khusus API) Konteks kondisi: Konteks—misalnya, waktu hari—yang digunakan untuk memeriksa akses

Biasanya, Anda menentukan satu atau dua kolom ini dalam kueri analisis, lalu menggunakan hasil kueri untuk mendapatkan informasi selengkapnya tentang kolom yang tidak Anda tentukan. Misalnya, jika ingin mengetahui siapa yang memiliki izin tertentu pada resource tertentu, Anda akan menentukan akses dan resource dalam kueri analisis, tetapi tidak akan menentukan akun utama.

Untuk 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. Cakupannya adalah organisasi, folder, atau project yang ingin Anda batasi analisisnya. Hanya kebijakan izin IAM yang dilampirkan ke 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, cakupan ditentukan secara otomatis berdasarkan project, folder, atau organisasi yang Anda kelola.

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 akan melaporkan binding peran yang berisi akun utama, akses, dan resource yang Anda tentukan dalam kueri. Untuk setiap binding peran, laporan ini melaporkan akun utama dalam binding, akses (peran dan izin) yang diberikan binding, dan resource yang diberi akses oleh binding.

Anda dapat meninjau hasil ini untuk lebih memahami akses di project, folder, atau organisasi Anda. Misalnya, jika menjalankan kueri untuk mengetahui akun utama mana yang memiliki akses ke resource tertentu, Anda akan meninjau akun utama tersebut dalam hasil kueri.

Anda dapat menyesuaikan informasi dalam hasil kueri dengan mengaktifkan opsi kueri.

Jenis kebijakan yang didukung

Penganalisis Kebijakan untuk kebijakan izin hanya mendukung kebijakan izin IAM.

Penganalisis Kebijakan untuk kebijakan izin tidak mendukung bentuk kontrol akses berikut:

Hasil kueri Penganalisis Kebijakan tidak memperhitungkan jenis kebijakan yang tidak didukung. Misalnya, bayangkan pengguna memiliki izin iam.roles.get di project karena kebijakan izin, tetapi kebijakan penolakan mencegahnya menggunakan izin tersebut. Penganalisis Kebijakan akan melaporkan bahwa mereka memiliki izin iam.roles.get, meskipun kebijakannya adalah tolak.

Pewarisan kebijakan

Untuk memperhitungkan pewarisan kebijakan, Policy Analyzer secara otomatis menganalisis semua kebijakan izin yang relevan dalam cakupan yang ditentukan, terlepas dari lokasinya dalam hierarki resource.

Misalnya, bayangkan Anda mencoba mencari tahu siapa yang dapat mengakses akun layanan IAM:

  • Jika Anda menentukan cakupan kueri ke project, Policy Analyzer akan menganalisis kebijakan izin akun layanan dan kebijakan izin project.
  • Jika Anda menentukan cakupan kueri ke organisasi, Policy Analyzer akan menganalisis kebijakan izin akun layanan, kebijakan izin project yang memiliki akun layanan, kebijakan izin folder apa pun yang berisi project, dan kebijakan izin organisasi.

Akses bersyarat

Jika memiliki kondisi, binding peran hanya akan memberikan akses kepada akun utama saat kondisi tersebut terpenuhi. Policy Analyzer selalu melaporkan kondisi yang dilampirkan 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.

Dalam beberapa kasus, Policy Analyzer juga dapat menganalisis kondisi, yang berarti alat ini dapat melaporkan apakah kondisi akan terpenuhi. Policy Analyzer dapat menganalisis jenis kondisi berikut:

Jika binding peran yang relevan berisi kondisi, Policy Analyzer akan melakukan salah satu hal berikut:

  • Jika dapat menganalisis kondisi, Penganalisis Kebijakan akan melakukan salah satu hal berikut:

    • Jika kondisi bernilai benar, Policy Analyzer akan menyertakan binding peran dalam hasil kueri dan menandai evaluasi kondisi sebagai TRUE.
    • Jika kondisi bernilai salah (false), Policy Analyzer tidak akan menyertakan peran dalam hasil kueri.
  • Jika tidak dapat menganalisis kondisi untuk binding peran yang relevan, Policy Analyzer akan menyertakan peran dalam hasil kueri dan menandai evaluasi kondisi sebagai CONDITIONAL.

Keaktualan data

Policy Analyzer menggunakan Cloud Asset API, yang menawarkan keaktualan data terbaik. Meskipun hampir semua pembaruan kebijakan muncul di Policy Analyzer dalam hitungan menit, mungkin saja Policy Analyzer tidak akan menyertakan pembaruan kebijakan terbaru.

Jenis kueri umum

Bagian ini menjelaskan cara menggunakan kueri analisis untuk menjawab pertanyaan umum terkait akses.

Prinsipal mana yang dapat mengakses resource ini?

Untuk menentukan akun utama yang dapat mengakses resource, buat kueri analisis yang menentukan resource dan, secara opsional, peran dan izin yang ingin Anda periksa.

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 memperbarui 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 mana yang memiliki peran dan izin tertentu, buat kueri analisis yang menentukan akun utama dan serangkaian 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 set data BigQuery yang berisi informasi identitas pribadi (PII) ini?
  • (Khusus API dan gcloud CLI): Siapa di organisasi saya yang dapat membaca set data BigQuery dengan meniru akun layanan?

Untuk mempelajari cara membuat dan mengirim kueri ini, lihat Menentukan akun utama yang memiliki peran atau izin tertentu.

Apa saja peran dan izin 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:

  • Apa saja peran dan izin 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 identitas akun layanan?

Untuk mempelajari cara membuat dan mengirim kueri ini, lihat Menentukan akses yang dimiliki akun utama ke resource.

Resource mana yang dapat diakses 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:

  • Set data BigQuery mana yang memiliki izin untuk dibaca oleh pengguna Mahan?
  • Set data BigQuery manakah yang merupakan pemilik data grup dev-testers?
  • 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 mana 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 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.

Perluasan grup

Jika Anda mengaktifkan perluasan grup, setiap grup dalam hasil kueri akan diperluas menjadi setiap anggota. 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 perluasan grup untuk kueri "Siapa yang memiliki izin storage.buckets.delete untuk project-1?" Jika Policy Analyzer menemukan grup yang memiliki izin storage.buckets.delete, hasil kueri tidak hanya akan mencantumkan ID grup, tetapi juga semua anggota individu dalam grup.

Opsi ini memungkinkan Anda memahami akses setiap pengguna, meskipun akses tersebut merupakan hasil dari keanggotaan mereka dalam grup.

Perluasan peran

Jika Anda mengaktifkan perluasan peran, hasil kueri akan mencantumkan semua izin di 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 di bucket bucket-1?" Jika Pemindai Kebijakan menemukan peran 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 secara tepat.

Perluasan resource

Jika Anda mengaktifkan perluasan resource untuk kueri Policy Analyzer, hasil kueri akan mencantumkan semua resource turunan yang relevan untuk resource induk (project, folder, dan organisasi) dalam hasil kueri. Perluasan ini dibatasi hingga 1.000 resource per resource induk untuk kueri Policy Analyzer dan 100.000 resource per resource induk untuk kueri Policy Analyzer yang berjalan lama.

Misalnya, pertimbangkan pengaruh perluasan resource terhadap kueri berikut:

  • Siapa yang memiliki izin storage.buckets.delete untuk project-1?

    Jika Anda mengaktifkan perluasan resource untuk kueri ini, bagian resource dari hasil kueri tidak hanya akan mencantumkan project, tetapi juga semua bucket penyimpanan di dalam project.

  • Resource mana yang memiliki izin compute.instances.setIamPolicy untuk my-user@example.com?

    Jika Anda mengaktifkan perluasan resource untuk kueri ini dan Policy Analyzer menemukan bahwa my-user@example.com memiliki peran tingkat project yang berisi izin tersebut, bagian resource dalam hasil kueri tidak hanya akan mencantumkan project, tetapi juga semua instance Compute Engine di dalam project.

Opsi ini memungkinkan Anda mendapatkan pemahaman mendetail tentang resource yang dapat diakses oleh prinsipal Anda.

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 akun layanan yang memiliki akses yang ditentukan ke resource yang ditentukan. Penganalisis Kebijakan menjalankan satu kueri untuk setiap akun layanan dalam 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

Cloud Asset Inventory menerapkan kapasitas permintaan masuk, termasuk permintaan analisis kebijakan, berdasarkan project konsumen. Cloud Asset Inventory juga membatasi perluasan grup dalam keanggotaan grup dan perluasan resource dalam hierarki resource.

Untuk melihat kuota dan batas default untuk Policy Analyzer, lihat Kuota dan batas dalam dokumentasi Inventaris Aset Cloud.

Harga

Setiap organisasi dapat menjalankan hingga 20 kueri analisis per hari tanpa biaya. Batas ini mencakup analisis kebijakan izin dan analisis kebijakan organisasi.

Jika ingin menjalankan lebih dari 20 kueri analisis per hari, Anda harus memiliki aktivasi level organisasi untuk paket premium Security Command Center. Untuk informasi selengkapnya, lihat Pertanyaan penagihan.

Langkah selanjutnya