Rekomendasi peran membantu Anda mengidentifikasi dan menghapus izin berlebih dari akun utama, sehingga meningkatkan konfigurasi keamanan resource.
Ringkasan rekomendasi peran
Rekomendasi peran dibuat oleh pemberi rekomendasi IAM. Pemberi rekomendasi IAM adalah salah satu pemberi rekomendasi yang ditawarkan oleh Recommender.
Setiap rekomendasi peran menyarankan agar Anda menghapus atau mengganti peran yang memberikan izin berlebih kepada akun utama Anda. Dalam skala besar, rekomendasi ini membantu Anda menerapkan prinsip hak istimewa terendah dengan memastikan bahwa akun utama hanya memiliki izin yang benar-benar dibutuhkan.
Pemberi rekomendasi IAM mengidentifikasi izin berlebih menggunakan insight kebijakan. Insight kebijakan adalah temuan berbasis ML tentang penggunaan izin akun utama.
Beberapa rekomendasi juga dikaitkan dengan analisis pergerakan lateral. Insight ini mengidentifikasi peran yang memungkinkan akun layanan dalam satu project untuk meniru akun layanan di project lain. Untuk informasi selengkapnya, lihat Cara insight pergerakan lateral dihasilkan.
Cara insight kebijakan dibuat
Insight kebijakan menyoroti izin dalam peran akun utama yang tidak digunakan oleh akun utama.
Pemberi rekomendasi IAM menghasilkan insight kebijakan dengan membandingkan jumlah total izin akun utama dengan izin yang digunakan akun utama dalam 90 hari terakhir. Jika peran diberikan kurang dari 90 hari yang lalu, pemberi rekomendasi IAM akan melihat penggunaan izin akun utama dalam waktu sejak akun utama diberi peran.
Ada beberapa cara yang dapat digunakan akun utama untuk menggunakan izin:
Secara langsung, dengan memanggil API yang memerlukan izin
Misalnya, metode
roles.list
di IAM REST API memerlukan iziniam.roles.list
. Saat memanggil metoderoles.list
, Anda menggunakan iziniam.roles.list
.Demikian pula, saat memanggil metode
testIamPermissions
untuk resource, Anda secara efektif menggunakan semua izin yang sedang diuji.Secara tidak langsung, dengan menggunakan konsol Google Cloud untuk menggunakan resource Google Cloud
Misalnya, di konsol Google Cloud, Anda dapat mengedit instance virtual machine (VM) Compute Engine, yang memerlukan izin yang berbeda berdasarkan setelan yang Anda ubah. Namun, konsol Google Cloud juga menampilkan setelan yang ada, yang memerlukan izin
compute.instances.get
.Akibatnya, saat mengedit instance VM di konsol Google Cloud, Anda akan menggunakan izin
compute.instances.get
.
Untuk menentukan izin yang digunakan akun utama, pembuat rekomendasi IAM menggunakan data akses IAM gabungan. Untuk mempelajari cara mengekspor data yang digunakan perekomendasikan IAM untuk insight ini, lihat Mengekspor data untuk rekomendasi peran.
Pemberi rekomendasi IAM juga menggunakan machine learning untuk mengidentifikasi izin dalam peran akun utama saat ini yang kemungkinan akan diperlukan akun utama di masa mendatang, meskipun akun utama tidak menggunakan izin tersebut baru-baru ini. Untuk informasi selengkapnya, lihat Machine learning untuk insight kebijakan di halaman ini.
Insight kebijakan tidak dibuat untuk semua peran IAM yang diberikan kepada akun utama. Untuk mengetahui informasi selengkapnya tentang alasan peran mungkin tidak memiliki insight kebijakan, lihat Ketersediaan di halaman ini.
Untuk mempelajari cara mengelola insight kebijakan, lihat Mengelola insight kebijakan untuk project, folder, dan organisasi atau Mengelola insight kebijakan untuk bucket Cloud Storage.
Machine learning untuk insight kebijakan
Dalam beberapa kasus, akun utama mungkin memerlukan izin tertentu yang disertakan dalam peran saat ini, tetapi belum digunakan baru-baru ini. Untuk mengidentifikasi izin ini, pemberi rekomendasi IAM menggunakan model machine learning (ML) saat membuat insight kebijakan.
Model machine learning ini dilatih dengan beberapa kumpulan sinyal:
Pola kemunculan bersama yang umum dalam histori yang diamati: Fakta bahwa pengguna menggunakan izin A, B, dan C sebelumnya memberikan petunjuk bahwa A, B, dan C mungkin terkait dengan cara tertentu dan bahwa izin tersebut diperlukan bersama untuk melakukan tugas di Google Cloud. Jika model ML cukup sering mengamati pola ini, saat pengguna lain menggunakan izin A dan B lagi, model akan menyarankan bahwa pengguna mungkin juga memerlukan izin C.
Pengetahuan domain seperti yang dienkode dalam definisi peran: IAM menyediakan ratusan peran bawaan yang berbeda dan khusus layanan. Jika peran bawaan berisi sekumpulan izin, ini adalah sinyal yang kuat bahwa izin tersebut harus diberikan bersama.
Selain sinyal ini, model juga menggunakan
word embedding untuk menghitung
kemiripan izin secara semantik. Izin yang mirip secara semantik akan "dekat" satu sama lain setelah penyematan, dan lebih cenderung diberikan
bersama. Misalnya, bigquery.datasets.get
dan bigquery.tables.list
akan sangat berdekatan satu sama lain setelah penyematan.
Semua data yang digunakan dalam pipeline machine learning perekomendasikan IAM memiliki k-anonimitas, yang berarti bahwa individu dalam set data anonim tidak dapat diidentifikasi ulang. Untuk mencapai tingkat anonimitas ini, kami menghapus semua informasi identitas pribadi (PII) seperti ID pengguna yang terkait dengan setiap pola penggunaan izin. Kemudian, kami menghapus semua pola penggunaan yang tidak muncul cukup sering di Google Cloud. Model global dilatih dengan data anonim ini.
Model global dapat disesuaikan lebih lanjut untuk setiap organisasi menggunakan federated learning, proses machine learning yang melatih model machine learning tanpa mengekspor data.
Cara rekomendasi peran dibuat
Jika insight kebijakan menunjukkan bahwa akun utama tidak memerlukan semua izin dalam perannya, perekomendasikan IAM akan menilai peran tersebut untuk menentukan apakah izin dapat dicabut, atau apakah ada peran lain yang lebih cocok. Jika peran dapat dicabut, pemberi rekomendasi IAM akan membuat rekomendasi peran untuk mencabut peran tersebut. Jika ada peran lain yang lebih sesuai, pembuat rekomendasi IAM akan membuat rekomendasi peran untuk mengganti peran tersebut dengan peran yang disarankan. Peran yang disarankan ini dapat berupa peran khusus baru, peran khusus yang ada, atau satu atau beberapa peran bawaan. Kecuali dalam kasus rekomendasi untuk agen layanan, rekomendasi peran tidak pernah menyarankan perubahan yang meningkatkan tingkat akses akun utama.
Rekomendasi peran dibuat hanya berdasarkan kontrol akses IAM. Keduanya tidak memperhitungkan jenis kontrol akses lainnya, seperti daftar kontrol akses (ACL) dan kontrol akses berbasis peran (RBAC) Kubernetes. Jika Anda menggunakan jenis kontrol akses lainnya, berhati-hatilah lebih saat meninjau rekomendasi, dan pertimbangkan hubungan kontrol akses tersebut dengan kebijakan izin Anda.
Selain itu, rekomendasi peran tidak dibuat untuk semua peran IAM yang diberikan kepada akun utama. Untuk mengetahui informasi selengkapnya tentang alasan peran mungkin tidak memiliki rekomendasi peran, lihat Ketersediaan di halaman ini.
Periode observasi
Periode pengamatan rekomendasi peran adalah jumlah hari data penggunaan izin yang menjadi dasar rekomendasi.
Periode observasi maksimum untuk rekomendasi peran adalah 90 hari. Artinya, pemberi rekomendasi IAM menggunakan, paling banyak, data penggunaan izin 90 hari terakhir untuk membuat rekomendasi peran.
Pemberi rekomendasi IAM juga tidak akan mulai membuat rekomendasi peran hingga memiliki data penggunaan izin selama sejumlah hari tertentu. Durasi ini disebut periode pengamatan minimum. Secara default, periode pengamatan minimum adalah 90 hari, tetapi untuk rekomendasi peran tingkat project, Anda dapat menetapkannya secara manual ke 30 hari atau 60 hari. Untuk mengetahui detailnya, lihat Mengonfigurasi pembuatan rekomendasi peran. Jika menetapkan periode pengamatan minimum kurang dari 90 hari, Anda akan mendapatkan rekomendasi lebih cepat, tetapi akurasi rekomendasi mungkin terpengaruh.
Jika sudah lebih dari periode pengamatan minimum, tetapi kurang dari 90 hari sejak peran diberikan, periode pengamatan adalah durasi waktu sejak peran diberikan.
Peran kustom baru dalam rekomendasi peran
Saat merekomendasikan penggantian peran, pembuat rekomendasi IAM selalu menyarankan peran khusus yang ada, atau satu atau beberapa peran bawaan, yang tampaknya lebih sesuai dengan kebutuhan akun utama.
Jika perekomendasikan IAM mengidentifikasi pola penggunaan izin umum di organisasi Anda yang tidak dipetakan ke peran standar atau khusus yang ada, perekomendasikan IAM juga dapat merekomendasikan agar Anda membuat peran khusus level project baru. Peran khusus ini hanya mencakup izin yang direkomendasikan. Anda dapat mengubah rekomendasi peran kustom dengan menambahkan atau menghapus izin.
Jika Anda ingin menerapkan prinsip hak istimewa terendah seketat mungkin, pilih peran khusus baru. Rekomendasi IAM membuat peran kustom di level project. Anda bertanggung jawab untuk mempertahankan dan memperbarui peran kustom untuk project Anda.
Jika Anda lebih suka menggunakan peran yang dikelola untuk Anda, pilih peran bawaan. Google Cloud memperbarui peran ini secara berkala dengan menambahkan atau menghapus izin. Untuk mendapatkan notifikasi tentang update ini, berlangganan feed berita untuk log perubahan izin. Saat Anda memilih peran yang telah ditetapkan, akun utama akan terus memiliki setidaknya beberapa izin, dan berpotensi sejumlah besar izin, yang belum digunakan.
Pemberi rekomendasi IAM merekomendasikan peran khusus baru hanya untuk peran yang diberikan pada project. Peran khusus baru tidak direkomendasikan untuk peran yang diberikan pada resource lain, seperti folder atau organisasi.
Selain itu, pemberi rekomendasi IAM tidak merekomendasikan peran khusus baru dalam kasus berikut:
- Organisasi Anda sudah memiliki 100 peran kustom atau lebih.
- Project Anda sudah memiliki 25 peran kustom atau lebih.
Pemberi rekomendasi IAM merekomendasikan tidak lebih dari 5 peran khusus baru per hari di setiap project, dan tidak lebih dari 15 peran khusus baru di seluruh organisasi.
Cara insight gerakan lateral dihasilkan
Pergerakan lateral adalah ketika akun layanan dalam satu project memiliki izin untuk meniru akun layanan di project lain. Misalnya, akun layanan mungkin telah dibuat di project A, tetapi memiliki izin untuk meniru akun layanan di project B.
Izin ini dapat menyebabkan rantai peniruan identitas di seluruh project yang memberi akun utama akses yang tidak diinginkan ke resource. Misalnya, jika akun utama meniru akun layanan di project A, akun utama tersebut dapat menggunakan akun layanan tersebut untuk meniru akun layanan di project B. Jika akun layanan di project B memiliki izin untuk meniru identitas akun layanan lain dalam project lain di organisasi Anda, akun layanan utama dapat terus menggunakan peniruan akun layanan untuk berpindah dari satu project ke project lain, dan mendapatkan izin saat akun tersebut digunakan mulai.
Pemberi rekomendasi IAM menghasilkan insight pergerakan lateral dengan mengidentifikasi peran yang sesuai dengan kriteria berikut:
- Akun utama yang diberi peran adalah akun layanan yang tidak dibuat dalam project.
Peran ini mencakup salah satu izin berikut, yang memungkinkan akun utama untuk meniru identitas akun layanan:
iam.serviceAccounts.actAs
iam.serviceAccounts.getAccessToken
iam.serviceAccounts.getOpenIdToken
iam.serviceAccounts.implicitDelegation
iam.serviceAccounts.signBlob
iam.serviceAccounts.signJwt
Jika peran sesuai dengan kriteria ini, perekomendasikan IAM akan menghasilkan insight gerakan lateral untuk peran tersebut. Insight ini berisi informasi tentang kemampuan peniruan identitas akun layanan, termasuk akun layanan yang dapat ditiru identitasnya dan apakah akun tersebut menggunakan izin peniruan identitas dalam 90 hari terakhir.
Pemberi rekomendasi IAM tidak menggunakan insight pergerakan lateral secara mandiri untuk membuat rekomendasi peran baru. Hal ini karena, jika akun layanan menggunakan izin peniruan identitasnya, perekomendasikan IAM tidak dapat menyarankan penghapusannya dengan aman. Namun, jika rekomendasi peran menyarankan penghapusan izin ini karena tidak digunakan, perekomendasikan IAM akan menautkan insight pergerakan lateral ke rekomendasi tersebut. Penautan ini membantu Anda memprioritaskan rekomendasi peran untuk akun layanan yang memiliki izin peniruan identitas yang kuat dan tidak digunakan di seluruh project.
Untuk mempelajari cara mengelola insight gerakan lateral, lihat Mengelola insight gerakan lateral.
Ketersediaan
Insight kebijakan, insight pergerakan lateral, dan rekomendasi peran tidak dibuat untuk semua peran yang diberikan kepada akun utama. Baca bagian berikut untuk memahami peran yang menjadi tujuan pembuatan insight kebijakan, insight pergerakan lateral, dan rekomendasi.
Ketersediaan insight kebijakan
Agar perekomendasikan IAM dapat menghasilkan insight kebijakan untuk peran, hal berikut harus benar:
Kebijakan izin IAM yang memberikan peran harus disertakan ke salah satu resource berikut:
- Bucket Cloud Storage
- Set data BigQuery
- Project
- Folder
- Organisasi
Pemberi rekomendasi IAM hanya menghasilkan insight kebijakan untuk peran yang diberikan pada resource ini.
Binding peran yang memberikan peran tersebut tidak boleh memiliki kondisi. Pemberi rekomendasi IAM tidak menghasilkan insight kebijakan untuk binding peran bersyarat.
Akun utama yang diberi peran harus berupa salah satu jenis akun utama berikut:
- Pengguna
- Akun layanan
- Grup
allUsers
allAuthenticatedUsers
- Nilai kemudahan Cloud Storage
- Keanggotaan grup khusus BigQuery
Salah satu jenis identitas gabungan berikut:
- Semua identitas dalam workload identity pool
- Identitas tunggal dalam workload identity pool
- Semua identitas dalam workforce identity pool
- Identitas tunggal dalam workforce identity pool
Semua Pod Google Kubernetes Engine yang menggunakan akun layanan Kubernetes tertentu
Untuk mengetahui detail tentang format ID untuk setiap jenis akun utama, lihat ID utama.
Perlu waktu hingga 10 hari bagi perekomendasikan IAM untuk membuat insight kebijakan untuk peran yang baru diberikan.
Insight kebijakan yang ada diperbarui setiap hari berdasarkan penggunaan izin terbaru Anda. Namun, data yang menjadi dasar insight kebijakan biasanya tertinggal hingga dua hari dari penggunaan Anda yang sebenarnya.
Ketersediaan insight gerakan lateral
Insight pergerakan lateral dihasilkan untuk peran yang diberikan pada resource berikut:
- Organisasi
- Folder
- Project
- Akun layanan
Ketersediaan rekomendasi peran
Agar pemberi rekomendasi IAM dapat membuat rekomendasi peran untuk peran, hal berikut harus terpenuhi:
- Peran tersebut harus memiliki insight kebijakan yang terkait. Insight kebijakan ini berfungsi sebagai dasar rekomendasi.
- Periode ini harus lebih lama dari periode pengamatan minimum sejak peran diberikan. Hal ini memastikan bahwa pembuat rekomendasi IAM memiliki data penggunaan yang cukup untuk membuat rekomendasi. Secara default, periode pengamatan minimum adalah 90 hari, tetapi Anda dapat menetapkannya secara manual ke 30 hari atau 60 hari. Untuk mengetahui detailnya, lihat Mengonfigurasi pembuatan rekomendasi peran.
- Jika akun utama yang diberi peran adalah agen layanan, peran tersebut harus berupa Pemilik, Editor, atau Pelihat. Pemberi rekomendasi IAM tidak membuat rekomendasi peran untuk agen layanan dengan peran lain. Untuk mengetahui detail selengkapnya, lihat Rekomendasi peran untuk agen layanan.
Jika peran baru saja diberikan atau tidak memiliki insight, kolom Analyzed permissions di konsol Google Cloud akan menampilkan ikon
.Ada beberapa kasus saat perekomendasikan IAM tidak membuat rekomendasi peran untuk suatu peran, meskipun sudah cukup waktu berlalu dan peran tersebut memiliki insight yang terkait dengannya. Hal ini dapat terjadi karena alasan berikut:
Tidak ada peran IAM bawaan yang lebih sesuai daripada peran saat ini. Jika akun utama sudah memiliki peran yang telah ditetapkan sebelumnya yang meminimalkan izinnya, atau yang menyertakan lebih sedikit izin daripada peran yang telah ditetapkan sebelumnya, perekomendasikan IAM tidak dapat merekomendasikan peran yang telah ditetapkan sebelumnya yang berbeda.
Anda mungkin dapat mengurangi izin akun utama dengan membuat peran kustom untuk akun utama.
Akun utama adalah agen layanan, dan peran tersebut bukan peran dasar. Rekomendasi IAM hanya menghasilkan rekomendasi peran untuk agen layanan yang memiliki peran dasar (Pemilik, Editor, atau Viewer). Untuk mengetahui detail selengkapnya, lihat Rekomendasi peran untuk agen layanan.
Tidak ada akun utama lain yang memiliki peran dasar Pemilik untuk project tersebut. Setidaknya satu akun utama harus memiliki peran Pemilik (
roles/owner
) untuk setiap project. Jika hanya satu akun utama yang memiliki peran ini, perekomendasikan IAM tidak akan menyarankan agar Anda mencabut atau mengganti peran tersebut.
Dalam kasus ini, kolom Analyzed permissions di konsol Google Cloud menampilkan penggunaan izin akun utama, tetapi tidak memiliki ikon Recommendation available.
Rekomendasi peran yang ada diperbarui setiap hari berdasarkan penggunaan izin terbaru Anda. Namun, data yang menjadi dasar rekomendasi peran biasanya tertinggal hingga dua hari dari penggunaan Anda yang sebenarnya.
Prioritas dan tingkat keparahan
Prioritas rekomendasi dan tingkat keparahan insight membantu Anda memahami urgensi rekomendasi atau insight dan menetapkan prioritas yang sesuai.
Prioritas rekomendasi peran
Rekomendasi diberi tingkat prioritas berdasarkan anggapan urgensinya.
Tingkat prioritas berkisar dari P1
(prioritas tertinggi) hingga P4
(prioritas terendah).
Prioritas rekomendasi peran bergantung pada peran yang menjadi tujuan rekomendasi:
Detail rekomendasi | Prioritas | Penjelasan |
---|---|---|
Rekomendasi untuk peran yang memberikan akses publik ke bucket Cloud Storage | P1 |
Bucket yang dapat diakses secara publik dapat diakses oleh siapa saja di internet. Menghapus akses publik akan memberi Anda kontrol lebih besar atas data Anda. |
Rekomendasi untuk peran yang memberikan akses publik ke set data BigQuery | P1 |
Set data yang dapat diakses secara publik dapat diakses oleh siapa saja di internet. Menghapus akses publik akan memberi Anda kontrol lebih besar atas data Anda. |
Rekomendasi untuk peran dasar (Pemilik, Editor, dan Pelihat) yang diberikan di project, folder, atau organisasi | P2 |
Peran dasar sangat permisif, dan menerapkan rekomendasi untuk peran ini dapat sangat mengurangi izin berlebih. |
Rekomendasi yang tidak memberikan akses publik atau peran dasar | P4 |
Meskipun rekomendasi ini membantu Anda mengurangi izin berlebih, rekomendasi ini tidak menghapus akses publik atau peran dasar yang sangat permisif, sehingga memiliki prioritas yang lebih rendah. |
Tingkat keparahan insight
Insight diberi tingkat keparahan berdasarkan prioritasnya. Tingkat keparahan
dapat berupa LOW
, MEDIUM
, HIGH
, atau CRITICAL
.
Tingkat keparahan insight kebijakan bergantung pada peran yang menjadi tujuan insight:
Detail insight | Keparahan | Penjelasan |
---|---|---|
Insight untuk peran yang memberikan akses publik ke bucket Cloud Storage | CRITICAL |
Bucket yang dapat diakses secara publik dapat diakses oleh siapa saja di internet. Menghapus akses publik akan memberi Anda kontrol lebih besar atas data Anda. |
Insight untuk peran yang memberikan akses publik ke set data BigQuery | CRITICAL |
Set data yang dapat diakses secara publik dapat diakses oleh siapa saja di internet. Menghapus akses publik akan memberi Anda kontrol lebih besar atas data Anda. |
Insight untuk peran dasar (Pemilik, Editor, dan Pelihat) yang diberikan di project, folder, atau organisasi | HIGH |
Peran dasar sangat permisif, dan menangani insight untuk peran ini dapat sangat mengurangi izin yang berlebihan. |
Insight yang tidak memberikan akses publik atau peran dasar | LOW |
Meskipun insight ini menyoroti izin yang berlebihan, insight ini tidak melibatkan akses publik atau peran dasar yang sangat permisif, sehingga memiliki prioritas yang lebih rendah. |
Semua insight gerakan lateral memiliki tingkat keparahan LOW
.
Cara penerapan rekomendasi peran
Pemberi rekomendasi IAM tidak menerapkan rekomendasi secara otomatis. Sebagai gantinya, Anda harus meninjau rekomendasi dan memutuskan apakah akan menerapkan atau menutupnya. Untuk mempelajari cara meninjau, menerapkan, dan menolak rekomendasi peran, lihat salah satu panduan berikut:
- Meninjau dan menerapkan rekomendasi peran untuk project, folder, dan organisasi
- Meninjau dan menerapkan rekomendasi peran untuk bucket Cloud Storage
- Meninjau dan menerapkan rekomendasi peran untuk set data BigQuery
Logging audit
Saat Anda menerapkan atau menolak rekomendasi, pemberi rekomendasi IAM akan membuat entri log. Anda dapat melihat entri ini di histori rekomendasi, atau dapat melihatnya di log audit Google Cloud.
Subjenis rekomendasi peran
Rekomendasi peran dibagi menjadi beberapa subjenis yang berbeda berdasarkan tindakan yang direkomendasikan. Jika menggunakan gcloud CLI atau REST API, Anda dapat menggunakan subjenis ini untuk memfilter rekomendasi.
Subjenis | Deskripsi |
---|---|
REMOVE_ROLE |
Rekomendasi untuk menghapus peran akun utama di tingkat project, tingkat folder, atau tingkat organisasi. |
REMOVE_ROLE_BIGQUERY_DATASET |
Rekomendasi untuk menghapus peran tingkat set data akun utama. |
REMOVE_ROLE_STORAGE_BUCKET |
Rekomendasi untuk menghapus peran tingkat bucket akun utama. |
REPLACE_ROLE |
Rekomendasi untuk mengganti peran akun utama di tingkat project, tingkat folder, atau tingkat organisasi dengan peran yang kurang permisif. Penggantian yang direkomendasikan dapat berupa peran kustom yang ada atau satu atau beberapa peran bawaan. |
REPLACE_ROLE_CUSTOMIZABLE |
Rekomendasi untuk mengganti peran akun utama dengan peran kustom baru yang kurang permisif daripada peran saat ini. |
REPLACE_ROLE_BIGQUERY_DATASET |
Rekomendasi untuk mengganti peran tingkat set data akun utama dengan peran yang kurang permisif. Penggantian yang direkomendasikan dapat berupa peran khusus yang ada atau satu atau beberapa peran bawaan. |
REPLACE_ROLE_STORAGE_BUCKET |
Rekomendasi untuk mengganti peran tingkat bucket akun utama dengan peran yang kurang permisif. Penggantian yang direkomendasikan dapat berupa peran khusus yang ada atau satu atau beberapa peran bawaan. |
SERVICE_AGENT_WITH_DEFAULT_ROLE |
Rekomendasi untuk mengganti peran Pemilik, Editor, atau Viewer agen layanan dengan peran yang otomatis diberikan ke akun layanan saat dibuat. Untuk informasi selengkapnya, lihat Rekomendasi peran untuk agen layanan. |
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE |
Rekomendasi untuk mengganti peran Pemilik, Editor, atau Viewer agen layanan dengan peran yang kurang permisif. Untuk informasi selengkapnya, lihat Rekomendasi peran untuk agen layanan. |
Rekomendasi peran untuk agen layanan
Untuk agen layanan, rekomendasi IAM hanya memberikan rekomendasi untuk peran dasar (Pemilik, Editor, atau Pelihat).
Rekomendasi untuk agen layanan dibagi menjadi dua subjenis rekomendasi.
SERVICE_AGENT_WITH_DEFAULT_ROLE
Saat dibuat, beberapa agen layanan otomatis diberi peran agen layanan untuk memastikan layanan Google Cloud Anda berfungsi dengan benar. Jika Anda mengganti peran ini dengan peran dasar (Pemilik, Editor, atau Pelihat), rekomendasi peran mungkin menyarankan agar Anda memulihkan peran agen layanan asli untuk menghapus izin yang berlebihan, meskipun peran agen layanan memiliki izin yang tidak ada dalam peran dasar. Rekomendasi ini memiliki
subjenis SERVICE_AGENT_WITH_DEFAULT_ROLE
. Alat ini membantu Anda menghapus izin yang berlebih dengan aman sekaligus memastikan bahwa semua layanan Google Cloud berfungsi dengan baik.
Rekomendasi SERVICE_AGENT_WITH_DEFAULT_ROLE
adalah satu-satunya jenis rekomendasi yang mungkin menyarankan peran dengan izin yang tidak ada dalam peran saat ini.
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE
Jika agen layanan tidak otomatis diberi peran saat pembuatan, rekomendasi untuk agen layanan hanya didasarkan pada izin yang digunakan agen layanan. Rekomendasi ini memiliki subjenis
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE
.
Rekomendasi peran di Security Command Center
Jika memiliki paket Premium Security Command Center, Anda dapat melihat beberapa subjenis rekomendasi peran sebagai temuan di Security Command Center. Setiap subjenis dikaitkan dengan detector:
Subjenis rekomendasi | Menemukan kategori |
---|---|
REMOVE_ROLE |
Unused IAM role |
REPLACE_ROLE |
IAM role has excessive permissions |
SERVICE_AGENT_WITH_DEFAULT_ROLE |
Service agent role replaced with basic role |
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE |
Service agent granted basic role |
Untuk informasi selengkapnya tentang cara melihat rekomendasi peran di Security Command Center, lihat Pemberi rekomendasi IAM dalam dokumentasi Security Command Center.
Harga
Rekomendasi peran level project, level folder, dan level organisasi untuk peran dasar tersedia tanpa biaya.
Fitur perekomendasikan IAM lanjutan berikut memerlukan aktivasi paket premium Security Command Center di tingkat organisasi:
- Rekomendasi untuk peran non-dasar
- Rekomendasi untuk peran yang diberikan pada resource selain organisasi, folder, dan project—misalnya, rekomendasi untuk peran yang diberikan pada bucket Cloud Storage
- Rekomendasi yang menyarankan peran kustom
- Insight kebijakan
- Insight gerakan lateral
Untuk informasi selengkapnya, lihat Pertanyaan terkait penagihan.
Contoh rekomendasi peran
Contoh berikut menunjukkan jenis rekomendasi yang dapat Anda terima.
Mencabut peran yang ada
Pengguna my-user@example.com
diberi peran Browser di project.
Peran Browser mencakup enam izin yang memungkinkan pengguna melihat resource
dalam project. Namun, selama 90 hari terakhir,
my-user@example.com
belum melihat resource apa pun.
Oleh karena itu, pemberi rekomendasi IAM akan membuat rekomendasi peran
yang menyarankan agar Anda mencabut peran Browser dari my-user@example.com
:
Konsol
gcloud
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
}
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/browser"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"member": "user:my-user@example.com",
"removedRole": "roles/browser",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
}
},
"description": "This role has not been used during the observation window.",
"etag": "\"9fc3241da8bfab51\"",
"lastRefreshTime": "2022-05-20T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 6
}
}
},
"priority": "P4",
"recommenderSubtype": "REMOVE_ROLE",
"stateInfo": {
"state": "ACTIVE"
}
}
REST
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2022-05-20T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 6
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/browser"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"member": "user:my-user@example.com",
"removedRole": "roles/browser"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"9fc3241da8bfab51\"",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
}
],
"priority": "P4"
}
Mengganti peran yang ada
Akun layanan diberi peran Editor (roles/editor
) pada project.
Peran dasar ini mencakup lebih dari 3.000 izin dan memberikan akses yang luas
ke project. Namun, selama 90 hari terakhir, akun layanan hanya menggunakan beberapa izin tersebut.
Oleh karena itu, pemberi rekomendasi IAM akan membuat rekomendasi peran yang menyarankan agar Anda mencabut peran Editor dan menggantinya dengan kombinasi dua peran lainnya, yang akan menghapus ribuan izin berlebih:
Konsol
gcloud
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/3d4ef3d6-bdf0-4330-975d-c65cb929c44d"
}
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"path": "/iamPolicy/bindings/*/members/-",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/iam.serviceAccountUser"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"value": "user:my-user@example.com"
},
{
"action": "add",
"path": "/iamPolicy/bindings/*/members/-",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"value": "user:my-user@example.com"
},
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/editor"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"addedRoles": [
"roles/iam.serviceAccountUser",
"roles/storage.objectAdmin"
],
"member": "user:my-user@example.com",
"minimumObservationPeriodInDays": "0",
"removedRole": "roles/editor",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
}
},
"description": "Replace the current role with smaller predefined roles to cover the permissions needed.",
"etag": "\"0da9a354c2a83d96\"",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/4637db3d-dba5-45eb-95ac-b4ee4b4cd14e",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 2998
}
}
},
"priority": "P2",
"recommenderSubtype": "REPLACE_ROLE",
"stateInfo": {
"state": "ACTIVE"
}
}
REST
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/4637db3d-dba5-45eb-95ac-b4ee4b4cd14e",
"description": "Replace the current role with smaller predefined roles to cover the permissions needed.",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 2998
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:my-user@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/iam.serviceAccountOwner"
}
},
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:my-user@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/editor"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"member": "user:my-user@example.com",
"removedRole": "roles/editor",
"addedRoles": [
"roles/iam.serviceAccountUser",
"roles/storage.objectAdmin"
],
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"0da9a354c2a83d96\"",
"recommenderSubtype": "REPLACE_ROLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/3d4ef3d6-bdf0-4330-975d-c65cb929c44d"
}
],
"priority": "P2"
}
Membuat peran khusus
Pengguna my-user@example.com
diberi peran Cloud Trace Admin (roles/cloudtrace.admin
) di project. Peran ini mencakup lebih dari 10 izin, tetapi insight kebijakan menunjukkan bahwa, selama 90 hari terakhir, my-user@example.com
hanya menggunakan 4 izin tersebut.
Oleh karena itu, perekomendasikan IAM menghasilkan rekomendasi peran
yang menyarankan agar Anda membuat peran kustom yang hanya menyertakan izin yang
sebenarnya digunakan my-user@example.com
:
Konsol
gcloud
Subjenis REPLACE_ROLE_CUSTOMIZABLE
menunjukkan bahwa
rekomendasi IAM merekomendasikan pembuatan peran kustom dengan izin
yang digunakan. Untuk melihat izin yang digunakan, dapatkan insight kebijakan
terkait.
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
}
],
"associatedResourceNames": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"path": "/iamPolicy/bindings/*/members/-",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"value": "user:my-user@example.com"
},
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"minimumObservationPeriodInDays": "0"
}
},
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"etag": "\"c7f57a4725d32d66\"",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
"originalContent": {},
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {},
"revokedIamPermissionsCount": 1
}
},
"priority": "P4",
"recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
"stateInfo": {
"state": "ACTIVE"
},
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
]
}
REST
Subjenis REPLACE_ROLE_CUSTOMIZABLE
menunjukkan bahwa
rekomendasi IAM merekomendasikan pembuatan peran kustom dengan izin
yang digunakan. Untuk melihat izin yang digunakan, dapatkan insight kebijakan
terkait.
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 1
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:my-user@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
}
}
]
}
],
"overview": {
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"c7f57a4725d32d66\"",
"recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
}
],
"priority": "P4"
}
Rekomendasi peran juga menyarankan opsi lain, yaitu mengganti peran yang ada dengan peran Pengguna Cloud Trace (roles/cloudtrace.user
). Peran standar ini mencakup izin yang sedikit lebih sedikit daripada peran Admin Cloud Trace.
Penggantian peran dengan izin yang disarankan oleh machine learning
Akun layanan diberi peran Editor (roles/editor
) pada project.
Peran dasar ini mencakup lebih dari 3.000 izin dan memberikan akses yang luas
ke project. Namun, insight kebijakan menunjukkan bahwa, selama 90 hari
terakhir, akun layanan telah menggunakan kurang dari 10
izin.
Insight kebijakan juga menyoroti beberapa izin yang mungkin diperlukan akun layanan di masa mendatang. Pemberi rekomendasi IAM mengidentifikasi izin ini menggunakan machine learning.
Rekomendator IAM menghasilkan rekomendasi peran yang menyarankan agar Anda mencabut peran Editor dan menggantinya dengan peran Storage Object Admin (roles/storage.objectAdmin
), yang memberikan kontrol penuh atas objek di bucket Cloud Storage. Perubahan ini menghapus ribuan izin yang berlebihan, sekaligus
masih menyertakan izin yang digunakan akun layanan dan
izin yang kemungkinan diperlukan akun layanan di masa mendatang:
Konsol
Pemberi rekomendasi IAM menggunakan ikon Machine learning
untuk mengidentifikasi izin yang ditambahkan berdasarkan
machine learning pemberi rekomendasi IAM, bukan berdasarkan penggunaan izin.
Dalam contoh ini, izin resourcemanager.projects.get
direkomendasikan
berdasarkan machine learning:
gcloud
Izin yang ditambahkan berdasarkan machine learning rekomendasi IAM, bukan berdasarkan penggunaan izin, tidak tercantum dalam rekomendasi itu sendiri. Sebagai gantinya, kebijakan tersebut tercantum dalam insight kebijakan yang terkait dengan rekomendasi. Semua izin berbasis ML tercantum di kolom inferredPermissions
insight. Dalam contoh ini, izin resourcemanager.projects.get
direkomendasikan berdasarkan machine learning:
associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f
category: SECURITY
content:
condition:
description: ''
expression: ''
location: ''
title: ''
currentTotalPermissionsCount: '5069'
exercisedPermissions:
- permission: storage.objects.create
- permission: storage.objects.delete
- permission: storage.objects.get
- permission: storage.objects.list
inferredPermissions:
- permission: resourcemanager.projects.get
member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com
role: roles/editor
description: 4 of the permissions in this role binding were used in the past 90 days.
etag: '"d3cdec23cc712bd0"'
insightSubtype: PERMISSIONS_USAGE
lastRefreshTime: '2020-07-11T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040
observationPeriod: 7776000s
stateInfo:
state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012
severity: HIGH
Untuk mempelajari cara mendapatkan insight kebijakan, lihat salah satu hal berikut:
REST
Izin yang ditambahkan berdasarkan machine learning rekomendasi IAM, bukan berdasarkan penggunaan izin, tidak tercantum dalam rekomendasi itu sendiri. Sebagai gantinya, kebijakan tersebut tercantum dalam insight kebijakan yang terkait dengan rekomendasi. Semua izin berbasis ML tercantum di kolom inferredPermissions
insight. Dalam contoh ini, izin resourcemanager.projects.get
direkomendasikan berdasarkan machine learning:
{
"name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568",
"description": "4 of the permissions in this role binding were used in the past 90 days.",
"content": {
"role": "roles/editor",
"member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com",
"condition": {
"expression": "",
"title": "",
"description": "",
"location": ""
},
"exercisedPermissions": [
{
"permission": "storage.objects.create"
},
{
"permission": "storage.objects.delete"
},
{
"permission": "storage.objects.get"
},
{
"permission": "storage.objects.list"
}
],
"inferredPermissions": [
{
"permission": "resourcemanager.projects.get"
}
],
"currentTotalPermissionsCount": "5069"
},
"lastRefreshTime": "2020-07-12T07:00:00Z",
"observationPeriod": "7776000s",
"stateInfo": {
"state": "ACTIVE"
},
"category": "SECURITY",
"associatedRecommendations": [
{
"recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656"
}
],
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
],
"insightSubtype": "PERMISSIONS_USAGE",
"etag": "\"d3cdec23cc712bd0\"",
"severity": "HIGH"
}
Untuk mempelajari cara mendapatkan insight kebijakan, lihat salah satu hal berikut:
Langkah selanjutnya
- Pahami praktik terbaik untuk menggunakan rekomendasi peran.
- Meninjau dan menerapkan rekomendasi peran untuk project, folder, dan organisasi.
- Meninjau dan menerapkan rekomendasi peran untuk bucket Cloud Storage
- Meninjau dan menerapkan rekomendasi peran untuk set data BigQuery
- Pelajari Pemberi Rekomendasi lebih lanjut.
- Pahami peran bawaan dan peran khusus di IAM.