Kontrol akses untuk folder dengan IAM

Anda dapat menggunakan peran Identity and Access Management (IAM) level folder untuk mengelola akses di seluruh grup project dan resource. Peran level folder membantu Anda menerapkan prinsip hak istimewa terendah di seluruh hierarki resource saat Anda mengikat peran ke akun utama dalam kebijakan izin.

Gunakan Cloud Resource Manager API untuk membuat dan mengelola kebijakan izin, atau menerapkan kebijakan penolakan untuk memblokir izin tertentu secara eksplisit. Untuk menyiapkan lingkungan baru dan memberikan akses awal, ikuti checklist penyiapanGoogle Cloud . Untuk mengelola akses berkelanjutan, lihat Mengelola akses ke project, folder, dan organisasi.

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.
  • Level 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 serta semua project dan folder yang ada di dalamnya Folder Admin Folder tertentu
Mengakses dan mengelola kebijakan izin 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 Project Editor atau Project Owner 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 bawaan untuk prinsip hak istimewa terendah.
  • Untuk pengelolaan di seluruh folder, tetapkan izin di tingkat folder dan buat project mewarisinya secara otomatis. Misalnya, Anda dapat menetapkan peran Folder Admin pada folder ke grup administrator departemen. Administrator jaringan yang perlu memiliki izin di seluruh departemen dapat memiliki peran Network Admin untuk folder tersebut.
  • Pertimbangkan dengan cermat izin apa yang mungkin berubah sebelum memindahkan resource keluar dari folder. Jika tidak, Anda berisiko merusak aplikasi atau alur kerja yang ada yang memerlukan izin tersebut pada resource tersebut.
  • Rencanakan dan uji hierarki resource Anda dengan cermat sebelum memindahkan project produksi ke dalam folder. Salah satu cara untuk melakukannya adalah dengan membuat folder pengujian di bawah resource organisasi Anda dan membuat prototipe hierarki yang Anda inginkan sebelumnya.
  • Memberikan peran kepada pengguna di level folder juga akan memberikan peran tersebut kepada pengguna untuk setiap resource di bawah folder tersebut. Misalnya, jika Anda memberi pengguna peran Compute Admin (roles/compute.admin) pada sebuah folder, pengguna tersebut akan memiliki kontrol penuh atas semua resource Compute Engine di setiap project dalam folder tersebut.

Memahami peran dan izin folder

Folder berfungsi sebagai batasan administratif dalam organisasi, sehingga Anda dapat mengelompokkan project dan menerapkan kebijakan dalam skala besar. Akses ke folder ini dikelola melalui kombinasi izin yang diwarisi dari organisasi dan peran yang diberikan langsung di level folder.

Peran default

Membuat folder akan memberi Anda peran Folder Admin dan Folder Editor, yang memberikan kontrol penuh. Lihat tabel berikut untuk mengetahui izin yang diberikan oleh peran ini. Anda dapat mengubah peran default ini dalam kebijakan izin.

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.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

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.capabilities.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.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

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.capabilities.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 Anda sesuaikan dengan kebutuhan Anda. Saat membuat peran khusus untuk digunakan dengan Resource Manager, perhatikan poin-poin berikut:
  • Izin list dan get, seperti resourcemanager.projects.get/list, harus selalu diberikan sebagai pasangan.
  • Jika peran khusus Anda menyertakan izin folders.list dan folders.get, peran tersebut juga harus menyertakan projects.list dan projects.get.
  • Perlu diketahui 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 bawah resource, dan resourcemanager.projects.list, yang memungkinkan pengguna menjelajahi project di bawah resource atau folder organisasi. Organization Administrator diinisialisasi dengan kedua izin ini. Untuk pengguna yang belum diberi peran Organization Administrator:

  • resourcemanager.folders.list dapat diberikan menggunakan peran Folder Viewer dan Folder Editor.
  • resourcemanager.projects.list dapat diberikan menggunakan 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 bersama dengan izin pembuatan folder agar pengguna dapat secara efektif membuka lokasi dalam hierarki tempat folder akan dibuat. Lihat bagian di atas untuk mengetahui informasi selengkapnya tentang izin penjelajahan.

Folder Creator tidak memberikan izin 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 mengaktifkan pemindahan project

Untuk memindahkan project ke dalam 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 yang tidak dimiliki organisasi ke dalam resource organisasi, di mana 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 agar hanya dapat melihat dan membuat project dalam folder tertentu.

Untuk memberikan izin khusus folder:

  1. Berikan peran Organization Viewer kepada pengguna di level resource organisasi (misalnya, domain.com). Di konsol Google Cloud , pilih resource organisasi Anda dari pemilih project dan organisasi di bagian atas halaman, atau klik domain Anda di kolom Inheritance di halaman IAM.
  2. Buat folder baru.
  3. Tambahkan pengguna ke IAM di level folder dan beri mereka peran Folder Viewer dan Project Creator.

Hal ini memungkinkan pengguna membuat project di foldernya tanpa memberinya visibilitas ke setiap project di resource organisasi yang lebih besar.