Menyetel kontrol akses dalam konfigurasi

Untuk mengontrol akses ke resource Anda di Google Cloud, Anda menggunakan Identity and Access Management (IAM). Dengan IAM, Anda dapat menetapkan izin yang menentukan siapa yang memiliki jenis akses apa ke resource mana di 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 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 peran 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 yang dapat Anda terapkan, lihat Memahami Peran.

Memberikan izin Deployment Manager untuk menetapkan kebijakan IAM

Deployment Manager menggunakan Akun Layanan Google API untuk memanggil Google API lain dan mengelola Google Cloud resource atas nama Anda. Anda harus memberikan peran roles/owner dasar kepada akun layanan Google API project Anda agar akun tersebut dapat menerapkan kebijakan IAM yang Anda tentukan dalam konfigurasi.

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

    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. Beri akun layanan API peran roles/owner:

    Konsol

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