Rekomendasi peran membantu Anda mengidentifikasi dan menghapus izin berlebih dari akun utama Anda, sehingga meningkatkan konfigurasi keamanan resource.
Ringkasan rekomendasi peran
Rekomendasi peran dihasilkan 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 meniru akun layanan di project lain. Untuk mengetahui informasi selengkapnya, lihat Cara insight pergerakan lateral dibuat.
Cara insight kebijakan dibuat
Insight kebijakan menyoroti izin dalam peran akun utama yang tidak digunakan oleh akun utama.
Pemberi rekomendasi IAM membuat 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 jangka waktu sejak akun utama diberi peran.
Ada beberapa cara agar prinsipal dapat 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 Anda memanggil metode
testIamPermissions
untuk resource, Anda secara efektif menggunakan semua izin yang Anda uji.Secara tidak langsung, dengan menggunakan konsol Google Cloud untuk menggunakan Google Cloud resource
Misalnya, di konsol Google Cloud , Anda dapat mengedit instance virtual machine (VM) Compute Engine, yang memerlukan izin 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 menggunakan izin
compute.instances.get
.
Untuk menentukan izin yang digunakan akun utama, pemberi rekomendasi IAM menggunakan data akses IAM gabungan. Untuk mempelajari cara mengekspor data yang digunakan oleh recommender IAM untuk insight ini, lihat Mengekspor data untuk rekomendasi peran.
Pemberi rekomendasi IAM juga menggunakan machine learning untuk mengidentifikasi izin dalam peran saat ini akun utama yang kemungkinan akan dibutuhkan akun utama di masa mendatang, meskipun akun utama tidak menggunakan izin tersebut baru-baru ini. Untuk mengetahui 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 tercakup 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 set sinyal:
Pola ko-okurrensi umum dalam histori yang diamati: Fakta bahwa pengguna menggunakan izin A, B, dan C di masa lalu memberikan petunjuk bahwa A, B, dan C mungkin terkait dengan cara tertentu dan bahwa izin tersebut diperlukan bersama-sama untuk menjalankan tugas di Google Cloud. Jika model ML mengamati pola ini cukup sering, lain kali saat pengguna lain menggunakan izin A dan B, model akan menyarankan bahwa pengguna tersebut mungkin juga memerlukan izin C.
Pengetahuan domain sebagaimana dienkode dalam definisi peran: IAM menyediakan ratusan peran bawaan berbeda yang khusus untuk layanan. Jika peran bawaan berisi sekumpulan izin, hal ini merupakan sinyal kuat bahwa izin tersebut harus diberikan bersama-sama.
Selain sinyal ini, model juga menggunakan
word embedding untuk menghitung seberapa
mirip izin secara semantik. Izin yang mirip secara semantik akan "berdekatan" satu sama lain setelah penyematan, dan lebih mungkin diberikan bersama-sama. Misalnya, bigquery.datasets.get
dan bigquery.tables.list
akan sangat berdekatan satu sama lain setelah penyematan.
Semua data yang digunakan dalam pipeline machine learning pemberi rekomendasi IAM memiliki k-anonimitas, yang berarti bahwa individu dalam set data yang dianonimkan 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 menghilangkan semua pola penggunaan yang tidak cukup sering muncul di seluruh Google Cloud. Model global dilatih dengan data anonim ini.
Model global dapat disesuaikan lebih lanjut untuk setiap organisasi menggunakan federated learning, yaitu 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, pemberi rekomendasi IAM akan menilai peran tersebut untuk menentukan apakah peran tersebut dapat dicabut, atau apakah ada peran lain yang lebih sesuai. Jika peran dapat dicabut, pemberi rekomendasi IAM akan membuat rekomendasi peran untuk mencabut peran tersebut. Jika ada peran lain yang lebih sesuai, pemberi rekomendasi IAM akan membuat rekomendasi peran untuk mengganti peran 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. Kebijakan ini tidak mempertimbangkan 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 saat meninjau rekomendasi Anda, dan pertimbangkan bagaimana kontrol akses tersebut terkait 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 data penggunaan izin selama maksimal 90 hari terakhir untuk membuat rekomendasi peran.
Pemberi rekomendasi IAM juga tidak mulai membuat rekomendasi peran hingga memiliki data penggunaan izin selama beberapa hari. Durasi ini disebut periode pengamatan minimum. Secara default, periode pengamatan minimum adalah 90 hari, tetapi untuk rekomendasi peran tingkat project, Anda dapat menyetelnya secara manual ke 30 hari atau 60 hari. Untuk mengetahui detailnya, lihat Mengonfigurasi pembuatan rekomendasi peran. Jika Anda menetapkan periode pengamatan minimum kurang dari 90 hari, Anda akan mendapatkan rekomendasi lebih cepat, tetapi akurasi rekomendasi mungkin terpengaruh.
Jika sudah lebih lama dari periode pengamatan minimum, tetapi kurang dari 90 hari sejak peran diberikan, periode pengamatan adalah durasi waktu sejak peran diberikan.
Peran khusus baru dalam rekomendasi peran
Saat pemberi rekomendasi IAM menyarankan penggantian peran, pemberi rekomendasi selalu menyarankan peran khusus yang ada, atau satu atau beberapa peran bawaan, yang tampaknya lebih sesuai dengan kebutuhan akun utama.
Jika pemberi rekomendasi IAM mengidentifikasi pola penggunaan izin umum di organisasi Anda yang tidak dipetakan ke peran standar atau khusus yang ada, pemberi rekomendasi IAM juga dapat merekomendasikan agar Anda membuat peran khusus tingkat project baru. Peran khusus ini hanya mencakup izin yang direkomendasikan. Anda dapat mengubah rekomendasi peran khusus dengan menambahkan atau menghapus izin.
Jika Anda ingin menerapkan prinsip hak istimewa terendah seketat mungkin, pilih peran khusus baru. IAM Recommender membuat peran kustom di level project. Anda bertanggung jawab untuk mempertahankan dan memperbarui peran khusus untuk project Anda.
Jika Anda lebih suka menggunakan peran yang dikelola untuk Anda, pilih peran yang telah ditentukan. Google Cloud memperbarui peran ini secara rutin dengan menambahkan atau menghapus izin. Untuk mendapatkan notifikasi tentang pembaruan 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 hanya merekomendasikan peran khusus baru untuk peran yang diberikan di project. Fitur ini tidak merekomendasikan peran khusus baru 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 atau lebih peran kustom.
- Project Anda sudah memiliki 25 peran khusus atau lebih.
Pemberi rekomendasi IAM merekomendasikan tidak lebih dari 5 peran kustom baru per hari di setiap project, dan tidak lebih dari 15 peran kustom baru di seluruh organisasi.
Cara insight gerakan lateral dibuat
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 identitas akun layanan di project A, akun utama tersebut dapat menggunakan akun layanan tersebut untuk meniru identitas 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 utama dapat terus menggunakan peniruan identitas 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 entity utama meniru identitas akun layanan:
iam.serviceAccounts.actAs
iam.serviceAccounts.getAccessToken
iam.serviceAccounts.getOpenIdToken
iam.serviceAccounts.implicitDelegation
iam.serviceAccounts.signBlob
iam.serviceAccounts.signJwt
Jika peran memenuhi kriteria ini, pemberi rekomendasi IAM akan menghasilkan insight pergerakan lateral untuk peran tersebut. Insight ini berisi informasi tentang kemampuan peniruan identitas akun layanan, termasuk akun layanan yang dapat ditirunya dan apakah akun tersebut menggunakan izin peniruan identitas dalam 90 hari terakhir.
Pemberi rekomendasi IAM tidak menggunakan insight pergerakan lateral sendiri untuk membuat rekomendasi peran baru. Hal ini karena, jika akun layanan menggunakan izin peniruan identitasnya, pemberi rekomendasi IAM tidak dapat menyarankan penghapusannya dengan aman. Namun, jika rekomendasi peran menyarankan untuk menghapus izin ini karena tidak digunakan, pemberi rekomendasi 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
Analisis kebijakan, analisis pergerakan lateral, dan rekomendasi peran tidak dibuat untuk semua peran yang diberikan kepada akun utama. Baca bagian berikut untuk memahami peran yang digunakan untuk membuat insight kebijakan, insight pergerakan lateral, dan rekomendasi.
Ketersediaan insight kebijakan
Agar IAM Recommender dapat membuat insight kebijakan untuk suatu peran, kondisi berikut harus terpenuhi:
Kebijakan izinkan IAM yang memberikan peran harus dilampirkan 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 membuat 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 utama, lihat ID utama.
Diperlukan waktu hingga 10 hari agar pemberi rekomendasi IAM dapat 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 sebenarnya.
Ketersediaan insight gerakan lateral
Analisis pergerakan lateral dibuat untuk peran yang diberikan pada resource berikut:
- Organisasi
- Folder
- Project
- Akun layanan
Ketersediaan rekomendasi peran
Agar pemberi rekomendasi IAM membuat rekomendasi peran untuk suatu peran, hal berikut harus benar:
- Peran harus memiliki insight kebijakan yang terkait dengannya. Insight kebijakan ini menjadi dasar rekomendasi.
- Durasinya harus lebih lama dari periode observasi minimum sejak peran diberikan. Tindakan ini memastikan bahwa pemberi rekomendasi IAM memiliki cukup data penggunaan untuk membuat rekomendasi. Secara default, periode observasi minimum adalah 90 hari, tetapi Anda dapat menyetelnya secara manual menjadi 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 Viewer. Pemberi rekomendasi IAM tidak membuat rekomendasi peran untuk agen layanan dengan peran lain. Untuk detail selengkapnya, lihat Rekomendasi peran untuk agen layanan.
Jika peran diberikan baru-baru ini atau tidak memiliki insight, kolom Izin yang dianalisis di konsol Google Cloud akan menampilkan ikon
.Ada beberapa kasus saat IAM Recommender tidak membuat rekomendasi peran untuk suatu peran, meskipun sudah cukup waktu 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 yang meminimalkan izinnya, atau yang mencakup lebih sedikit izin daripada peran yang telah ditetapkan lainnya, maka pemberi rekomendasi IAM tidak dapat merekomendasikan peran yang telah ditetapkan lainnya.
Anda mungkin dapat mengurangi izin akun utama dengan membuat peran khusus untuk akun utama.
Akun utama adalah agen layanan, dan perannya bukan peran dasar. Pemberi rekomendasi IAM hanya membuat 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. Setidaknya satu akun utama harus memiliki peran Pemilik (
roles/owner
) untuk setiap project. Jika hanya satu akun utama yang memiliki peran ini, pemberi rekomendasi IAM tidak akan merekomendasikan agar Anda mencabut atau mengganti peran tersebut.
Dalam kasus ini, kolom Izin yang dianalisis di konsolGoogle Cloud menampilkan penggunaan izin pokok, tetapi tidak memiliki ikon Rekomendasi tersedia
.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 memprioritaskannya dengan tepat.
Prioritas rekomendasi peran
Rekomendasi diberi tingkat prioritas berdasarkan urgensinya yang dirasakan.
Tingkat prioritas berkisar dari P1
(prioritas tertinggi) hingga P4
(prioritas terendah).
Prioritas rekomendasi peran bergantung pada peran yang direkomendasikan:
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 memberi Anda lebih banyak kontrol 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 memberi Anda lebih banyak kontrol atas data Anda. |
Rekomendasi untuk peran dasar (Pemilik, Editor, dan Viewer) yang diberikan di project, folder, atau organisasi | P2 |
Peran dasar sangat permisif, dan menerapkan rekomendasi untuk peran ini dapat mengurangi izin berlebih secara signifikan. |
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 menjadikannya prioritas yang lebih rendah. |
Tingkat keparahan insight
Insight diberi tingkat keparahan berdasarkan urgensinya yang dirasakan. Tingkat keparahan
dapat berupa LOW
, MEDIUM
, HIGH
, atau CRITICAL
.
Tingkat keparahan insight kebijakan bergantung pada peran yang dituju oleh insight tersebut:
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 memberi Anda lebih banyak kontrol 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 memberi Anda lebih banyak kontrol atas data Anda. |
Insight untuk peran dasar (Pemilik, Editor, dan Viewer) yang diberikan di project, folder, atau organisasi | HIGH |
Peran dasar sangat permisif, dan menangani insight untuk peran ini dapat mengurangi izin berlebih secara signifikan. |
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 Anda, atau Anda dapat melihatnya di Google Cloud log audit.
Subjenis rekomendasi peran
Rekomendasi peran dibagi menjadi beberapa subtipe 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 tingkat project, tingkat folder, atau tingkat organisasi akun utama. |
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 tingkat project, tingkat folder, atau tingkat organisasi akun utama dengan peran yang kurang permisif. Penggantian yang direkomendasikan dapat berupa peran khusus 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 akun tersebut dibuat. Untuk mengetahui 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 mengetahui informasi selengkapnya, lihat Rekomendasi peran untuk agen layanan. |
Rekomendasi peran untuk agen layanan
Untuk agen layanan, pemberi rekomendasi IAM hanya memberikan rekomendasi untuk peran dasar (Pemilik, Editor, atau Viewer).
Rekomendasi untuk agen layanan dibagi menjadi dua subjenis rekomendasi.
SERVICE_AGENT_WITH_DEFAULT_ROLE
Saat dibuat, beberapa agen layanan secara otomatis diberi peran agen layanan untuk memastikan Google Cloud layanan 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
. Fitur ini membantu Anda menghapus izin berlebih dengan aman sekaligus memastikan semua layanan berfungsi dengan baik. Google Cloud
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 dibuat, rekomendasi untuk agen layanan didasarkan secara eksklusif 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 atau Enterprise Security Command Center, Anda dapat melihat beberapa subjenis rekomendasi peran sebagai temuan di Security Command Center. Setiap subjenis dikaitkan dengan detektor:
Subjenis rekomendasi | Kategori temuan |
---|---|
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 mengetahui 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, folder, dan organisasi untuk peran dasar tersedia tanpa biaya.
Fitur lanjutan pemberi rekomendasi IAM berikut tersedia dengan aktivasi level project atau level organisasi paket Premium atau Enterprise Security Command Center:
- 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 mengetahui 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 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 luas
ke project. Namun, selama 90 hari terakhir, akun layanan hanya menggunakan beberapa izin tersebut.
Oleh karena itu, pemberi rekomendasi IAM membuat rekomendasi peran yang menyarankan agar Anda mencabut peran Editor dan menggantinya dengan kombinasi dua peran lainnya, yang 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 sebuah 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, pemberi rekomendasi IAM membuat rekomendasi peran yang menyarankan Anda membuat peran kustom yang hanya menyertakan izin yang benar-benar digunakan oleh my-user@example.com
:
Konsol
gcloud
Subtipe REPLACE_ROLE_CUSTOMIZABLE
menunjukkan bahwa
pemberi 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
Subtipe REPLACE_ROLE_CUSTOMIZABLE
menunjukkan bahwa
pemberi 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 yang telah ditentukan sebelumnya ini mencakup sedikit lebih sedikit izin 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 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 kemungkinan akan diperlukan akun layanan di masa mendatang. Pemberi rekomendasi IAM mengidentifikasi izin ini menggunakan machine learning.
IAM Recommender membuat 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 berlebih, sekaligus tetap menyertakan izin yang digunakan akun layanan dan izin yang kemungkinan akan diperlukan akun layanan di masa mendatang:
Konsol
Pemberi rekomendasi IAM menggunakan ikon Machine learning
resourcemanager.projects.get
direkomendasikan
berdasarkan machine learning:
gcloud
Izin yang ditambahkan berdasarkan machine learning IAM recommender, bukan berdasarkan penggunaan izin, tidak tercantum dalam rekomendasi itu sendiri. Sebagai gantinya, pelanggaran tersebut tercantum dalam insight kebijakan yang terkait dengan rekomendasi. Semua izin berbasis ML tercantum dalam 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 artikel berikut:
REST
Izin yang ditambahkan berdasarkan machine learning IAM recommender, bukan berdasarkan penggunaan izin, tidak tercantum dalam rekomendasi itu sendiri. Sebagai gantinya, pelanggaran tersebut tercantum dalam insight kebijakan yang terkait dengan rekomendasi. Semua izin berbasis ML tercantum dalam 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 artikel berikut:
Langkah berikutnya
- Pahami praktik terbaik untuk menggunakan rekomendasi peran.
- Tinjau dan terapkan 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.