Kontrol akses untuk project 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, yang memberikan peran tertentu yang berisi izin tertentu.

Halaman ini menjelaskan izin dan peran IAM yang dapat Anda gunakan untuk mengelola akses ke project. Untuk mengetahui deskripsi lengkap tentang IAM, baca dokumentasi IAM. Secara khusus, lihat artikel Memberikan, mengubah, dan mencabut akses.

Izin dan peran

Untuk mengontrol akses ke resource, Google Cloud mewajibkan akun yang membuat permintaan API memiliki peran IAM yang sesuai. Peran IAM menyertakan izin yang memungkinkan pengguna melakukan tindakan tertentu pada resource Google Cloud. Misalnya, izin resourcemanager.projects.delete memungkinkan pengguna menghapus project.

Anda tidak secara langsung memberikan izin kepada pengguna; tetapi, Anda memberikan peran kepada pengguna, yang memiliki satu atau beberapa izin yang dipaketkan di dalamnya. Anda memberikan peran ini pada resource tertentu, tetapi peran tersebut juga berlaku untuk semua turunan resource tersebut dalam hierarki resource.

Izin

Untuk mengelola project, pemanggil harus memiliki peran yang mencakup izin berikut. Peran diberikan pada resource atau folder organisasi yang berisi project:

Metode Izin yang diperlukan
resourcemanager.projects.create resourcemanager.projects.create
resourcemanager.projects.delete resourcemanager.projects.delete
resourcemanager.projects.get resourcemanager.projects.get
Memberikan izin ini juga akan memberikan akses untuk mendapatkan nama akun penagihan yang terkait dengan project melalui metode Billing API billing.projects.getBillingInfo .
resourcemanager.projects.getIamPolicy resourcemanager.projects.getIamPolicy
resourcemanager.projects.list resourcemanager.projects.list
resourcemanager.projects.search resourcemanager.projects.get
resourcemanager.projects.setIamPolicy resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions Tidak memerlukan izin apa pun.
resourcemanager.projects.undelete resourcemanager.projects.undelete
resourcemanager.projects.patch Untuk memperbarui metadata project, memerlukan izin resourcemanager.projects.update. Untuk memperbarui induk project dan memindahkan project ke resource organisasi, Anda memerlukan izin resourcemanager.projects.create di resource organisasi.
projects.move projects.move

Menggunakan peran bawaan

Peran bawaan IAM memungkinkan Anda mengelola kumpulan izin yang dapat diakses pengguna dengan cermat. Untuk mengetahui daftar lengkap peran yang dapat diberikan di tingkat project, lihat Memahami Peran.

Tabel berikut mencantumkan peran standar yang dapat Anda gunakan untuk memberikan akses ke project. Setiap peran menyertakan deskripsi tentang fungsi peran tersebut, dan izin yang disertakan dalam peran tersebut.

Peran Izin

(roles/resourcemanager.projectCreator)

Memberikan akses untuk membuat project baru. Setelah membuat project, pengguna akan otomatis diberi peran pemilik untuk project tersebut.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Folder

resourcemanager.organizations.get

resourcemanager.projects.create

(roles/resourcemanager.projectDeleter)

Memberikan akses untuk menghapus project Google Cloud.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Folder

resourcemanager.projects.delete

(roles/resourcemanager.projectMover)

Memberikan akses untuk mengupdate dan memindahkan project.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Project

resourcemanager.projects.get

resourcemanager.projects.move

resourcemanager.projects.update

(roles/resourcemanager.projectIamAdmin)

Memberikan izin untuk mengelola kebijakan izin di project.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Project

iam.policybindings.*

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

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/browser)

Akses baca untuk menjelajahi hierarki dalam suatu project, termasuk folder, organisasi, dan kebijakan izin. Peran ini tidak termasuk izin untuk melihat resource dalam project.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Project

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

Peran dasar

Hindari penggunaan peran dasar kecuali jika benar-benar diperlukan. Peran ini sangat penting, dan mencakup sejumlah besar izin di seluruh layanan Google Cloud. Untuk mengetahui detail selengkapnya tentang kapan Anda harus menggunakan peran dasar, lihat Peran dasar.

Peran Deskripsi Izin
roles/owner Akses penuh ke semua resource. Semua izin untuk semua resource.
roles/editor Akses edit ke sebagian besar resource. Membuat dan memperbarui akses untuk sebagian besar resource.
roles/viewer Akses baca ke sebagian besar resource. Mendapatkan dan mencantumkan akses untuk sebagian besar resource.

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.

Kontrol akses di tingkat project

Anda dapat memberikan peran kepada pengguna di tingkat project menggunakan konsol Google Cloud, Cloud Resource Manager API, dan Google Cloud CLI. Untuk mengetahui petunjuknya, lihat Memberikan, Mengubah, dan Mencabut Akses.

Peran default

Saat membuat project, Anda akan diberi peran roles/owner untuk project tersebut agar dapat memberi Anda kontrol penuh sebagai pembuat. Peran default ini dapat diubah seperti biasa dalam kebijakan IAM.

Kontrol Layanan VPC

Kontrol Layanan VPC dapat memberikan keamanan tambahan saat menggunakan Cloud Resource Manager API. Untuk mempelajari Kontrol Layanan VPC lebih lanjut, lihat ringkasan Kontrol Layanan VPC.

Untuk mempelajari batasan saat ini dalam menggunakan Resource Manager dengan Kontrol Layanan VPC, lihat halaman produk dan batasan yang didukung.