Peran dan izin untuk target Google Kubernetes Engine (GKE)

Dokumen ini menunjukkan cara memberikan peran dan izin Identity and Access Management (IAM) untuk mendukung peristiwa pemilihan rute menggunakan Eventarc dariGoogle Cloud dan sumber lainnya ke tujuan GKE, termasuk endpoint publik layanan pribadi dan publik yang berjalan di cluster GKE.

  1. Berikan izin di seluruh project kepada akun utama yang memanggil Eventarc API (misalnya, pembuat pemicu Eventarc):

    1. Peran Eventarc Admin memungkinkan Anda memiliki kontrol penuh atas semua resource Eventarc, termasuk menentukan akun layanan untuk pemicu saat Anda membuatnya.
    2. Peran Service Account User memungkinkan akun utama meniru identitas dan menggunakan akun layanan. Akun layanan dikaitkan dengan pemicu Eventarc dan mewakili identitas pemicu.
  2. Berikan izin pemicu Eventarc ke akun layanan pemicu:

    1. Peran Eventarc Event Receiver memungkinkan pemicu Eventarc Anda menerima peristiwa dari penyedia peristiwa. Anda tidak perlu memberikan peran tersebut jika merutekan peristiwa langsung dari Cloud Pub/Sub.
    2. Peran Pub/Sub Subscriber memungkinkan pemicu Eventarc Anda menggunakan pesan dari Pub/Sub dan melampirkan langganan ke topik.
    3. Peran Monitoring Metric Writer memungkinkan forwarder peristiwa Eventarc menulis metrik menggunakan Cloud Monitoring dan sistem lain yang menyediakan metrik.
  3. Berikan izin ke agen layanan Google:

    1. Jika Anda membuat pemicu untuk peristiwa langsung dari Cloud Storage, berikan peran Pub/Sub Publisher.
    2. Jika Anda mengaktifkan agen layanan Cloud Pub/Sub pada atau sebelum 8 April 2021, berikan peran Service Account Token Creator.

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran IAM, lihat Mengelola akses. Anda mungkin juga dapat mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Memberikan izin di seluruh project

Jika Anda adalah project creator, Anda diberi peran Pemilik dasar (roles/owner). Secara default, peran ini mencakup izin yang diperlukan untuk akses penuh ke sebagian besar resourceGoogle Cloud . Jika tidak, peran yang diperlukan harus diberikan oleh administrator pada resource yang sesuai kepada akun utama yang sesuai (juga dikenal sebagai anggota).

Misalnya, akun utama dapat berupa Akun Google (untuk pengguna akhir) atau akun layanan (untuk aplikasi dan workload komputasi). Setiap akun utama memiliki ID-nya sendiri, yang biasanya berupa alamat email.

  1. Peran Admin Eventarc (roles/eventarc.admin) memungkinkan Anda memiliki kontrol penuh atas semua resource Eventarc.

    Berikan peran tersebut pada project:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=PRINCIPAL \
        --role=roles/eventarc.admin

    Ganti kode berikut:

    • PROJECT_ID: Google Cloud Project ID Anda.
    • PRINCIPAL: ID untuk pembuat pemicu yang biasanya memiliki bentuk berikut: PRINCIPAL_TYPE:ID. Contohnya, user:my-user@example.com. Untuk daftar lengkap kemungkinan nilai PRINCIPAL_TYPE, lihat Referensi Binding Kebijakan.
  2. Peran Pengguna Akun Layanan (roles/iam.serviceAccountUser) memungkinkan akun utama menjalankan operasi sebagai akun layanan.

    Saat membuat pemicu Eventarc, Anda memerlukan peran ini agar dapat mengaitkan akun layanan yang dikelola pengguna dengan pemicu dan yang mewakili identitasnya. Untuk mengetahui informasi selengkapnya, lihat Peran untuk autentikasi akun layanan.

    Anda dapat memberikan peran pada project untuk mengizinkan akun utama meniru identitas beberapa akun layanan atau memberikan peran pada akun layanan untuk mengizinkan akun utama meniru identitas akun layanan tertentu saja.

    Berikan peran tersebut pada project:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=PRINCIPAL \
        --role=roles/iam.serviceAccountUser

    Atau, berikan peran di akun layanan:

    gcloud iam service-accounts add-iam-policy-binding \
        projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com \
        --member=PRINCIPAL \
        --role=roles/iam.serviceAccountUser

    Ganti kode berikut:

    • SERVICE_ACCOUNT_PROJECT_ID: ID project Google Cloud yang berisi akun layanan.
    • SERVICE_ACCOUNT_NAME: nama akun layanan. ## Memberikan izin pemicu Eventarc

Setiap pemicu Eventarc dikaitkan dengan akun layanan IAM saat pemicu dibuat. Anda dapat menentukan akun layanan yang dikelola pengguna yang digunakan pemicu sebagai identitas default-nya. Jika Anda tidak menentukan akun layanan selama pembuatan pemicu, pemicu akan menggunakan akun layanan default Compute Engine untuk identitasnya.

Sebaiknya Anda membuat akun layanan yang dikelola pengguna sendiri untuk memberi Anda kontrol dan fleksibilitas yang lebih besar saat mengelola pemicu.

  1. Buat akun layanan dan catat namanya:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
        --description="DESCRIPTION" \
        --display-name="DISPLAY_NAME"
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT_NAME: nama akun layanan. Nama ini muncul di alamat email yang mengidentifikasi akun layanan.
    • DESCRIPTION: deskripsi opsional untuk akun layanan
    • DISPLAY_NAME: nama akun layanan untuk ditampilkan di konsol Google Cloud
  2. Berikan Peran Event Receiver Eventarc (roles/eventarc.eventReceiver) pada project ke akun layanan yang terkait dengan pemicu Eventarc Anda agar dapat menerima peristiwa dari penyedia peristiwa.

    Perhatikan bahwa Anda tidak perlu memberikan peran Penerima Peristiwa Eventarc jika merutekan peristiwa langsung dari Cloud Pub/Sub.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/eventarc.eventReceiver

    Ganti SERVICE_ACCOUNT_NAME dengan nama akun layanan yang Anda catat di langkah sebelumnya.

  3. Berikan peran Pelanggan Pub/Sub (roles/pubsub.subscriber) pada project ke akun layanan yang terkait dengan pemicu Eventarc Anda agar dapat menggunakan pesan dari Pub/Sub dan melampirkan langganan ke topik.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/pubsub.subscriber

    Ganti SERVICE_ACCOUNT_NAME dengan nama akun layanan yang Anda catat sebelumnya.

  4. Berikan peran Monitoring Metric Writer (roles/monitoring.metricWriter) pada project ke akun layanan yang terkait dengan pemicu Eventarc Anda sehingga pengirim peristiwa Eventarc dapat menulis metrik menggunakan Cloud Monitoring dan sistem lain yang menyediakan metrik.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.metricWriter

    Memberikan izin ke agen layanan Google

Beberapa layanan Google Cloud memiliki agen layanan yang memungkinkan layanan mengakses resource Anda. Jika API memerlukan agen layanan, Google akan membuat agen layanan setelah Anda mengaktifkan dan menggunakan API.

  1. Jika Anda membuat pemicu untuk peristiwa langsung dari Cloud Storage, untuk mendukung publikasi pesan ke topik, berikan peran Penayang Pub/Sub (roles/pubsub.publisher) di project kepada agen layanan Cloud Storage:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com \
        --role=roles/pubsub.publisher

    Ganti PROJECT_NUMBER dengan Google Cloudnomor project Anda. Anda dapat menemukan nomor project di halaman Selamat Datang pada Konsol Google Cloud atau dengan menjalankan perintah berikut:

    gcloud projects describe PROJECT_ID --format='value(projectNumber)'
  2. Jika Anda mengaktifkan agen layanan Cloud Pub/Sub pada atau sebelum 8 April 2021, untuk mendukung permintaan push Pub/Sub yang diautentikasi, berikan peran Service Account Token Creator (roles/iam.serviceAccountTokenCreator) di project kepada agen layanan Pub/Sub. Jika tidak, peran ini akan diberikan secara default:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountTokenCreator

    Langkah berikutnya