Kontrol akses untuk folder dengan IAM

Google Cloud menawarkan Identity and Access Management (IAM), yang memungkinkan Anda memberikan akses yang lebih terperinci ke resource Google Cloud tertentu dan mencegah akses yang tidak diinginkan ke resource lain. Dengan IAM, Anda dapat menerapkan prinsip keamanan dengan hak istimewa terendah, jadi Anda hanya memberikan akses yang diperlukan ke resource Anda.

Dengan IAM, Anda dapat mengontrol siapa (pengguna) yang memiliki akses (peran) ke resource tertentu dengan menetapkan kebijakan IAM. Kebijakan IAM memberikan peran tertentu kepada pengguna yang memberikan izin tertentu kepada pengguna.

Halaman ini menjelaskan peran IAM yang tersedia di tingkat Folder, dan cara membuat serta mengelola kebijakan IAM untuk folder menggunakan Cloud Resource Manager API. Untuk mengetahui penjelasan lengkap tentang IAM, baca dokumentasi IAM. Secara khusus, lihat Memberikan, Mengubah, dan Mencabut Akses.

Ringkasan peran IAM untuk Folder

Untuk membantu Anda mengonfigurasi peran IAM, tabel berikut mencantumkan:

  • Jenis tindakan yang ingin Anda aktifkan
  • Peran yang diperlukan untuk melakukan tindakan tersebut
  • Tingkat resource tempat Anda perlu menerapkan peran tersebut
Jenis tindakan Peran yang diperlukan Tingkat resource
Mengelola folder di seluruh resource organisasi Folder Admin Resource organisasi
Mengelola folder dan semua project dan folder yang ada di dalamnya Folder Admin Folder tertentu
Mengakses dan mengelola kebijakan IAM folder Folder IAM Admin Folder tertentu
Membuat folder baru Pembuat Folder Resource induk untuk lokasi folder baru
Memindahkan folder dan project Pemindah Folder Resource induk untuk lokasi folder asli dan lokasi folder baru
Memindahkan project ke folder baru Editor Project atau Pemilik Project Resource induk untuk lokasi project asli dan lokasi project baru
Menghapus folder Folder Editor atau Folder Admin Folder tertentu

Praktik terbaik untuk menggunakan peran dan izin IAM dengan Folder

Saat menetapkan peran dan izin IAM untuk digunakan dengan Folder, perhatikan hal-hal berikut:

  • Gunakan grup jika memungkinkan untuk mengelola akun utama.
  • Minimalkan penggunaan peran dasar, seperti pemilik, editor, dan pelihat. Sebagai gantinya, coba gunakan peran yang telah ditentukan sebelumnya untuk prinsip hak istimewa terendah.
  • Untuk pengelolaan seluruh folder, tetapkan izin di tingkat folder dan izinkan project mewarisinya secara otomatis. Misalnya, Anda dapat menetapkan grup administrator departemen dengan peran Folder Admin di folder. Administrator jaringan yang perlu memiliki izin di seluruh departemen dapat memiliki peran Network Admin untuk folder tersebut.
  • Pertimbangkan dengan cermat izin yang mungkin berubah sebelum memindahkan resource dari folder. Jika tidak, Anda berisiko merusak aplikasi atau alur kerja yang ada yang memerlukan izin tersebut di resource tersebut.
  • Rencanakan dan uji hierarki resource Anda dengan cermat sebelum memindahkan project produksi di folder. Salah satu caranya adalah dengan membuat folder pengujian di bawah resource organisasi dan membuat prototipe hierarki yang diinginkan sebelumnya.
  • Memberikan peran kepada pengguna di tingkat folder juga akan memberi pengguna peran tersebut untuk setiap resource di bawah folder tersebut. Misalnya, jika Anda memberi pengguna peran Compute Admin (roles/compute.admin) di folder, pengguna tersebut akan memiliki kontrol penuh atas semua resource Compute Engine di setiap project dalam folder tersebut.

Memahami peran dan izin folder

Peran default

Saat membuat folder, Anda akan diberi peran Folder Admin dan Folder Editor untuk folder tersebut agar Anda memiliki kontrol penuh sebagai pencipta. Lihat di bawah untuk mengetahui izin yang diberikan oleh peran ini. Peran default ini dapat diubah seperti biasa dalam kebijakan IAM.

Menggunakan peran bawaan

Peran Izin

(roles/resourcemanager.folderAdmin)

Memberikan semua izin yang tersedia untuk menggunakan folder.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Folder

essentialcontacts.*

  • essentialcontacts.contacts.create
  • essentialcontacts.contacts.delete
  • essentialcontacts.contacts.get
  • essentialcontacts.contacts.list
  • essentialcontacts.contacts.send
  • essentialcontacts.contacts.update

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.folders.*

  • resourcemanager.folders.create
  • resourcemanager.folders.createPolicyBinding
  • resourcemanager.folders.delete
  • resourcemanager.folders.deletePolicyBinding
  • resourcemanager.folders.get
  • resourcemanager.folders.getIamPolicy
  • resourcemanager.folders.list
  • resourcemanager.folders.move
  • resourcemanager.folders.searchPolicyBindings
  • resourcemanager.folders.setIamPolicy
  • resourcemanager.folders.undelete
  • resourcemanager.folders.update
  • resourcemanager.folders.updatePolicyBinding

resourcemanager.hierarchyNodes.*

  • resourcemanager.hierarchyNodes.createTagBinding
  • resourcemanager.hierarchyNodes.deleteTagBinding
  • resourcemanager.hierarchyNodes.listEffectiveTags
  • resourcemanager.hierarchyNodes.listTagBindings

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

resourcemanager.projects.move

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/resourcemanager.folderIamAdmin)

Memberikan izin untuk mengelola kebijakan izin di folder.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Folder

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

resourcemanager.folders.createPolicyBinding

resourcemanager.folders.deletePolicyBinding

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.setIamPolicy

resourcemanager.folders.updatePolicyBinding

(roles/resourcemanager.folderCreator)

Memberikan izin yang diperlukan untuk menjelajahi hierarki dan membuat folder.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Folder

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.folders.create

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderEditor)

Memberikan izin untuk mengubah folder serta melihat kebijakan izin folder.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Folder

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.folders.delete

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.list

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.undelete

resourcemanager.folders.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderMover)

Memberikan izin untuk memindahkan project dan folder ke dalam dan ke luar organisasi atau folder induk.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Folder

resourcemanager.folders.move

resourcemanager.projects.move

(roles/resourcemanager.folderViewer)

Memberikan izin untuk mendapatkan folder dan mencantumkan folder dan project di bawah resource.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Folder

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

Membuat peran khusus

Selain peran bawaan yang dijelaskan dalam topik ini, Anda juga dapat membuat peran khusus yang merupakan kumpulan izin yang disesuaikan dengan kebutuhan Anda. Saat membuat peran kustom untuk digunakan dengan Resource Manager, perhatikan poin-poin berikut:
  • Izin daftar dan dapatkan, seperti resourcemanager.projects.get/list, harus selalu diberikan sebagai pasangan.
  • Jika peran kustom Anda menyertakan izin folders.list dan folders.get, peran tersebut juga harus menyertakan projects.list dan projects.get.
  • Perhatikan bahwa izin setIamPolicy untuk resource organisasi, folder, dan project memungkinkan pengguna memberikan semua izin lainnya, sehingga harus ditetapkan dengan hati-hati.

Memberikan peran untuk mengaktifkan penjelajahan folder

Izin daftar memungkinkan penjelajahan folder. Dua jenis izin daftar yang biasanya perlu diberikan adalah resourcemanager.folders.list, yang memungkinkan pengguna membuat daftar folder di bagian resource, dan resourcemanager.projects.list, yang memungkinkan pengguna menjelajahi project di bagian resource atau folder organisasi. Administrator Organisasi diinisialisasi dengan kedua izin ini. Untuk pengguna yang belum diberi peran Administrator Organisasi:

  • resourcemanager.folders.list dapat diberikan melalui peran Folder Viewer dan Folder Editor.
  • resourcemanager.projects.list dapat diberikan melalui peran Viewer atau Browser.

Agar akun utama resource organisasi dapat menjelajahi seluruh hierarki resource organisasi, izin daftar harus diberikan di tingkat resource organisasi.

Memberikan peran untuk mengaktifkan pembuatan folder

Pengguna yang perlu membuat folder harus diberi peran Folder Creator pada resource dalam hierarki di atas level tempat folder akan dibuat. Sebaiknya berikan izin penjelajahan beserta izin pembuatan folder agar pengguna dapat menavigasi secara efektif ke tempat folder akan dibuat dalam hierarki. Lihat bagian di atas untuk mengetahui informasi selengkapnya tentang izin penjelajahan.

Pembuat Folder tidak memberikan izin kepada pengguna untuk menghapus folder. Namun, saat seseorang membuat folder, orang tersebut akan otomatis diberi peran Editor Folder. Peran Editor Folder memungkinkan penghapusan folder.

Memberikan peran untuk mengaktifkan pemindahan folder

Untuk memindahkan folder dari satu resource induk ke resource induk lainnya, pengguna harus memiliki peran Folder Mover di resource induk lama dan baru, atau di ancestor umum.

Memberikan peran untuk memungkinkan pemindahan project

Untuk memindahkan project ke folder, pengguna harus memiliki peran Project Editor atau Project Owner di project dan Project Mover di resource induk sumber dan tujuan.

Hal ini sedikit berbeda dengan persyaratan untuk memindahkan project milik non-organisasi ke dalam resource organisasi, dengan pengguna harus memiliki peran Project Editor atau Project Owner pada project dan peran Project Creator pada resource organisasi.

Memberikan peran khusus folder untuk mengaktifkan pembuatan project

Untuk membuat project, pengguna harus memiliki peran Project Creator. Namun, daripada memberikan izin pembuatan project di seluruh organisasi, sebaiknya batasi pengguna untuk melihat dan membuat project hanya dalam folder tertentu.

Untuk memberikan izin khusus folder:

  1. Berikan peran Organization Viewer kepada pengguna di tingkat node organisasi (misalnya, domain.com).
  2. Buat folder baru.
  3. Tambahkan pengguna ke IAM di tingkat folder dan berikan peran Folder Viewer dan Project Creator.

Hal ini memungkinkan pengguna membuat project di folder mereka tanpa memberi mereka visibilitas ke setiap project di resource organisasi yang lebih besar.