Untuk mengontrol akses ke resource Anda di Google Cloud, gunakan Identity and Access Management (IAM). Dengan IAM, Anda menetapkan izin yang menentukan siapa yang memiliki apa 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 preemtif dalam konfigurasi. Misalnya, jika berencana membuat Topik Pub/Sub yang dapat dikelola oleh pengguna tertentu, Anda dapat menyatakannya ke Deployment Manager dengan menentukan kebijakan IAM dalam konfigurasi. 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 merupakan kumpulan pengguna dan peran mereka. Anda dapat menetapkan kebijakan IAM pada level project, baik menggunakan peran dasar maupun peran bawaan. Beberapa layanan, seperti Cloud Pub/Sub, juga mendukung penetapan kebijakan IAM di level resource.
Jika layanan tidak mendukung penetapan kebijakan IAM pada level resource, Deployment Manager akan menampilkan error NO_METHOD_TO_UPDATE_ACCESS_CONTROL
.
Untuk mengetahui daftar peran dan resource yang dapat Anda terapkan, baca artikel Memahami Peran.
Memberikan izin Deployment Manager untuk menetapkan kebijakan IAM
Deployment Manager menggunakan Akun Layanan Google API untuk memanggil Google API lain dan mengelola resource Google Cloud atas nama Anda. Anda harus memberi akun layanan Google API project peran roles/owner
dasar agar akun layanan tersebut 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
kepada akun layanan API:Konsol
- Saat berada di Google Cloud Console, 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]
sebagai 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 level teratas untuk setiap resource tempat Anda ingin menerapkan 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 lebih lanjut tentang kebijakan IAM, baca dokumentasi IAM.