Untuk mengontrol akses ke resource di Google Cloud, Anda menggunakan Identity and Access Management (IAM). Dengan IAM, Anda menetapkan izin yang menentukan siapa yang memiliki jenis akses ke resource mana dalam project Anda. Untuk pengantar IAM, lihat Ringkasan IAM.
Saat men-deploy resource, Anda juga dapat mengontrol siapa yang memiliki akses ke resource ini dengan menetapkan kebijakan IAM secara preventif dalam konfigurasi Anda. Misalnya, jika Anda berencana membuat Topik Pub/Sub yang dapat dikelola oleh pengguna tertentu, Anda dapat menyatakannya ke Deployment Manager dengan menentukan kebijakan IAM dalam konfigurasi Anda. Saat Anda membuat atau mengupdate deployment, Deployment Manager akan memanggil IAM API untuk menetapkan izin yang sesuai pada resource.
Sebelum memulai
- Jika Anda ingin menggunakan contoh command line dalam panduan ini, instal alat command line`gcloud`.
- Jika Anda ingin menggunakan contoh API dalam panduan ini, siapkan akses API.
Menggunakan kebijakan IAM di Deployment Manager
Kebijakan IAM adalah kumpulan pengguna dan perannya. Anda menetapkan kebijakan IAM di level project, menggunakan peran dasar atau yang telah ditetapkan. Beberapa layanan, seperti Cloud Pub/Sub, juga mendukung penetapan kebijakan IAM di tingkat resource.
Jika layanan tidak mendukung penetapan kebijakan IAM di tingkat resource, Deployment Manager akan menampilkan error NO_METHOD_TO_UPDATE_ACCESS_CONTROL
.
Untuk mengetahui daftar peran dan resource tempat Anda dapat menerapkannya, lihat Memahami Peran.
Memberikan izin Deployment Manager untuk menetapkan kebijakan IAM
Deployment Manager menggunakan
Akun Layanan Google API
untuk memanggil Google API lainnya dan mengelola resource Google Cloud atas nama
Anda. Anda harus memberikan peran roles/owner
dasar kepada akun layanan Google API project agar dapat menerapkan kebijakan IAM yang Anda tentukan dalam konfigurasi.
- Buka halaman IAM di konsol Google Cloud project Anda.
- Jika diminta, pilih project Anda dari daftar.
Cari akun layanan Google API, yang memiliki alamat email dalam format berikut:
[PROJECT_NUMBER]@cloudservices.gserviceaccount.com
Berikan peran
roles/owner
ke akun layanan API:Konsol
- Saat masih berada di konsol Google Cloud, luaskan dropdown Roles untuk akun layanan Google API, lalu pilih Project > Owner.
- Klik Simpan untuk menyimpan perubahan.
gcloud
Dengan Google Cloud CLI, tambahkan binding ke kebijakan IAM untuk project:
gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/owner
dengan:
[PROJECT_ID]
adalah ID project.[SERVICE_ACCOUNT_EMAIL]
adalah email akun layanan.
Contoh:
gcloud projects add-iam-policy-binding database-images \ --member serviceAccount:123456789012@cloudservices.gserviceaccount.com \ --role roles/owner
API
Di API, buat permintaan
POST
ke URL berikut, dengan[PROJECT_ID]
adalah ID project:POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
Isi permintaan harus berisi daftar binding yang ingin Anda terapkan ke project ini. Peran
roles/owner
harus menjadi bagian dari binding. Contoh:{ "policy": { "version": "0", "bindings": [ { "role": "roles/owner", "members": [ "user:example@gmail.com", "serviceAccount:123456789012@cloudservices.gserviceaccount.com" ] } ] } }
Menetapkan kebijakan IAM dalam konfigurasi Anda
Selanjutnya, dalam konfigurasi atau template, Anda dapat menetapkan kebijakan IAM dengan mengikuti petunjuk berikut:
Tambahkan bagian
accessControl
ke konfigurasi tingkat teratas untuk setiap resource yang ingin Anda terapkan kebijakan kontrol aksesnya.Tentukan
gcpIamPolicy
yang diinginkan untuk resource. Setiap kebijakan IAM dapat berisi daftar binding. Setiap binding mengikat daftar anggota ke peran.Jika Anda menggunakan
accessControl
untuk mengelola akun layanan, pelajari lebih lanjut cara mengelola akun layanan.
Misalnya, bagian accessControl
berikut menambahkan binding yang memberikan
peran ini kepada pengguna:
Pengguna | Peran |
---|---|
alice@example.com |
roles/pubsub.editor |
|
roles/pubsub.publisher |
resources:
- name: a-new-pubsub-topic
type: pubsub.v1.topic
properties:
...
accessControl:
gcpIamPolicy:
bindings:
- role: roles/pubsub.editor
members:
- "user:alice@example.com"
- role: roles/pubsub.publisher
members:
- "user:jane@example.com"
- "serviceAccount:my-other-app@appspot.gserviceaccount.com"
Untuk mengetahui informasi selengkapnya tentang kebijakan IAM, baca dokumentasi IAM.