Ringkasan rekomendasi peran

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 izin iam.roles.list. Saat memanggil metode roles.list, Anda menggunakan izin iam.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:

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