Menyetel kontrol akses dalam konfigurasi

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.

  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 ke akun layanan API:

    Konsol

    1. Saat masih berada di konsol Google Cloud, 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] 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:

  1. Tambahkan bagian accessControl ke konfigurasi tingkat teratas untuk setiap resource yang ingin Anda terapkan 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 selengkapnya tentang kebijakan IAM, baca dokumentasi IAM.