Menyetel kontrol akses dalam konfigurasi

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.

  1. Buka halaman IAM di konsol Google Cloud project Anda.

    Buka halaman IAM

  2. Jika diminta, pilih project Anda dari daftar.
  3. Cari akun layanan Google API, yang memiliki alamat email dalam format berikut:

    [PROJECT_NUMBER]@cloudservices.gserviceaccount.com
    
  4. Berikan peran roles/owner kepada akun layanan API:

    Konsol

    1. Saat berada di Google Cloud Console, luaskan dropdown Roles untuk akun layanan Google API, lalu pilih Project > Owner.
    2. 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:

  1. Tambahkan bagian accessControl ke konfigurasi level teratas untuk setiap resource tempat Anda ingin menerapkan kebijakan kontrol aksesnya.

  2. 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
  • my-other-app@appspot.gserviceaccount.com
  • jane@example.com
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.