Mengonfigurasi autentikasi workload identity terkelola untuk Compute Engine

Dokumen ini menjelaskan cara mengonfigurasi identitas beban kerja terkelola untuk Compute Engine menggunakan gcloud CLI. Dokumen ini juga menjelaskan cara menyiapkan penyediaan otomatis dan pengelolaan siklus proses identitas beban kerja terkelola untuk Compute Engine menggunakan Certificate Authority Service, yang memungkinkan Anda membuat koneksi TLS bersama (mTLS) antar-beban kerja.

Untuk meminta akses ke identitas workload terkelola untuk Compute Engine, isi formulir permintaan akses.

Sebelum memulai

  1. Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  2. Minta akses ke identitas workload terkelola untuk Pratinjau Compute Engine.

  3. Pahami identitas workload terkelola.

  4. Pelajari penerbitan sertifikat menggunakan Certificate Authority Service.

  5. Pelajari cara mengautentikasi workload Compute Engine menggunakan identitas workload terkelola.

  6. Aktifkan IAM dan Certificate Authority Service API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    gcloud services enable iam.googleapis.com privateca.googleapis.com

  7. Konfigurasi Google Cloud CLI untuk menggunakan project yang ditambahkan ke daftar yang diizinkan untuk penagihan dan kuota.

    gcloud config set billing/quota_project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project yang ditambahkan ke daftar yang diizinkan untuk pratinjau identitas beban kerja terkelola.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat identitas beban kerja terkelola dan menyediakan sertifikat identitas beban kerja terkelola, minta administrator Anda untuk memberi Anda peran IAM berikut pada project:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Atau, peran dasar Pemilik IAM (roles/owner) juga mencakup izin untuk mengonfigurasi managed workload identities. Anda tidak boleh memberikan peran dasar dalam lingkungan produksi, tetapi Anda dapat memberikannya dalam lingkungan pengembangan atau pengujian.

Ringkasan

Untuk menggunakan identitas workload terkelola bagi aplikasi Anda, Anda harus melakukan tugas berikut:

  1. Administrator Keamanan:

  2. Compute Administrator:

    Aktifkan identitas workload terkelola untuk workload yang berjalan di Compute Engine:

Membuat workload identity pool

  1. Untuk mengonfigurasi identitas workload terkelola, Anda harus membuat pool dalam mode TRUST_DOMAIN.

    gcloud iam workload-identity-pools create POOL_ID \
      --location="global" \
      --mode="TRUST_DOMAIN"
    

    Ganti POOL_ID dengan ID unik untuk pool. Panjang ID harus antara 4 hingga 32 karakter, hanya berisi karakter alfanumerik huruf kecil dan tanda pisah, serta diawali dan diakhiri dengan karakter alfanumerik. Setelah membuat workload identity pool, Anda tidak dapat mengubah ID-nya.

  2. Untuk memverifikasi bahwa workload identity pool Anda dibuat dalam mode TRUST_DOMAIN, jalankan perintah workload-identity-pools describe.

    gcloud iam workload-identity-pools describe POOL_ID \
      --location="global"
    

    Outputnya mirip dengan hal berikut ini:

    mode: TRUST_DOMAIN
    name: projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID
    state: ACTIVE
    

    Jika mode: TRUST_DOMAIN tidak ada dalam output perintah, verifikasi bahwa project Anda telah ditambahkan ke daftar yang diizinkan untuk Pratinjau identitas beban kerja terkelola dan Anda telah mengonfigurasi gcloud CLI dengan benar untuk menggunakan project yang benar untuk penagihan dan kuota. Pastikan Anda telah mengupdate ke gcloud CLI versi terbaru.

Pilih opsi CA

Untuk menandatangani sertifikat workload Anda, pilih opsi certificate authority (CA) yang paling sesuai dengan kasus penggunaan Anda:

  • CA default yang dikelola Google: Gunakan opsi ini untuk solusi yang terkelola sepenuhnya dan tanpa biaya. CA default menyediakan root kepercayaan bersama untuk semua pengguna Google Cloud .

  • CA Kustom: Gunakan opsi ini untuk mengonfigurasi infrastruktur kunci publik (PKI) Anda sendiri melalui Certificate Authority Service. Opsi ini cocok jika Anda memerlukan root of trust kustom atau jika Anda harus menyimpan kunci penandatanganan di modul keamanan hardware (HSM) untuk memenuhi persyaratan kepatuhan. Certificate Authority Service ditagih secara terpisah dari identitas workload terkelola. Untuk mengetahui informasi selengkapnya, lihat Harga Layanan CA.

Mengonfigurasi CA

CA Default

Untuk mengikat CA default ke workload identity pool, perbarui workload identity pool dengan tanda use-default-shared-ca.

gcloud iam workload-identity-pools update TRUST_DOMAIN_NAME \
    --location="global" \
    --use-default-shared-ca \
    --project=PROJECT_ID

Ganti kode berikut:

  • TRUST_DOMAIN_NAME: Nama domain tepercaya.
  • PROJECT_ID: Project ID.

CA kustom

Untuk mengonfigurasi identitas beban kerja terkelola menggunakan CA kustom, selesaikan langkah-langkah berikut:

  1. Konfigurasi CA Service untuk menerbitkan sertifikat bagi identitas workload terkelola.
  2. Ikat CA ke workload identity pool.
  3. Memberi otorisasi identitas workload terkelola untuk meminta sertifikat dari kumpulan CA.

Mengonfigurasi CA Service untuk menerbitkan sertifikat bagi identitas workload terkelola

Buat konfigurasi yang direkomendasikan untuk root dan subordinate certificate authority (CA) dengan menggunakan pool Certificate Authority Service. Pool CA subordinat menerbitkan sertifikat identitas workload X.509 ke VM.

Kumpulan CA yang dikonfigurasi untuk menerbitkan sertifikat bagi VM Compute Engine menggunakan identitas beban kerja terkelola harus berada di region yang sama dengan VM. Jika Anda ingin mendesain arsitektur multi-region untuk ketahanan terhadap gangguan layanan regional, sebaiknya Anda mengonfigurasi kumpulan CA Layanan Otoritas Sertifikat bawahan untuk setiap region beban kerja Anda. Dengan begitu, setiap VM Compute Engine Anda dapat mereferensikan kumpulan CA Layanan Certificate Authority subordinat dalam region.

Setelah mengonfigurasi kumpulan CA, Anda kemudian mengizinkan identitas workload terkelola untuk meminta dan menerima sertifikat bertanda tangan dari kumpulan CA.

Mengonfigurasi kumpulan CA root Anda

Gunakan antarmuka Google Cloud CLI ke Certificate Authority Service untuk mengonfigurasi kumpulan CA root.

Anda tidak dapat memindahkan atau mengekspor kumpulan CA setelah dibuat.

  1. Buat kumpulan CA root di tingkat Enterprise dengan menjalankan perintah gcloud privateca pools create. Paket Enterprise ditujukan untuk penerbitan sertifikat berumur panjang dalam jumlah kecil.

    gcloud privateca pools create ROOT_CA_POOL_ID \
       --location=REGION \
       --tier=enterprise
    

    Ganti kode berikut:

    • ROOT_CA_POOL_ID: ID unik untuk kumpulan CA root. ID dapat memiliki panjang hingga 64 karakter dan hanya boleh berisi karakter alfanumerik huruf kecil dan huruf besar, garis bawah, atau tanda hubung. ID pool harus unik dalam region.
    • REGION: region tempat kumpulan CA root berada.

    Untuk mengetahui informasi selengkapnya, lihat Membuat kumpulan CA.

  2. Buat CA root di kumpulan CA root dengan menjalankan perintah gcloud privateca roots create. Anda mungkin diminta untuk mengaktifkan CA root jika CA ini adalah satu-satunya CA di kumpulan CA root.

    Misalnya, Anda dapat menggunakan perintah yang mirip dengan perintah berikut untuk membuat CA root.

    gcloud privateca roots create ROOT_CA_ID \
       --pool=ROOT_CA_POOL_ID \
       --subject "CN=ROOT_CA_CN, O=ROOT_CA_ORGANIZATION" \
       --key-algorithm="ec-p256-sha256" \
       --max-chain-length=1 \
       --location=REGION
    

    Ganti kode berikut:

    • ROOT_CA_ID: Nama unik untuk CA root. Nama CA dapat memiliki panjang hingga 64 karakter dan hanya boleh berisi karakter alfanumerik huruf kecil dan huruf besar, garis bawah, atau tanda hubung. Nama CA harus unik dalam region.
    • ROOT_CA_POOL_ID: ID pool CA root.
    • ROOT_CA_CN: nama umum CA root.
    • ROOT_CA_ORGANIZATION: organisasi CA root.
    • REGION: region tempat kumpulan CA root berada.

    Untuk mengetahui informasi selengkapnya, lihat Membuat otoritas sertifikat root. Untuk mengetahui informasi selengkapnya tentang kolom subject untuk CA, lihat Subjek.

  3. Opsional: Ulangi langkah-langkah sebelumnya untuk membuat CA root tambahan di kumpulan CA root. Hal ini dapat berguna untuk rotasi CA root.

Mengonfigurasi CA subordinat

Gunakan antarmuka Google Cloud CLI ke Certificate Authority Service untuk membuat kumpulan CA bawahan dan CA bawahan.

Jika memiliki beberapa skenario penerbitan sertifikat, Anda dapat membuat CA bawahan untuk setiap skenario tersebut. Selain itu, menambahkan beberapa CA bawahan dalam kumpulan CA membantu Anda mencapai load balancing permintaan sertifikat yang lebih baik.

Gunakan perintah gcloud privateca pools create untuk membuat kumpulan CA subordinat.

  1. Buat pool CA subordinat di tingkat DevOps. Tingkat ini ditujukan untuk penerbitan sertifikat bervolume tinggi dan berumur pendek.

    gcloud privateca pools create SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --tier=devops
    

    Ganti kode berikut:

    • SUBORDINATE_CA_POOL_ID: ID unik untuk pool CA bawahan. Panjang ID dapat mencapai 64 karakter dan hanya boleh berisi karakter alfanumerik huruf kecil dan huruf besar, garis bawah, atau tanda hubung. ID kumpulan harus unik dalam region.
    • REGION: region tempat membuat kumpulan CA subordinat.

    Untuk mengetahui informasi selengkapnya, lihat Membuat kumpulan CA.

  2. Buat subordinate CA di kumpulan subordinate CA dengan menjalankan perintah gcloud privateca subordinates create. Jangan ubah mode penerbitan berbasis konfigurasi default.

    Misalnya, Anda dapat menggunakan perintah yang mirip dengan perintah berikut untuk membuat CA subordinat.

    gcloud privateca subordinates create SUBORDINATE_CA_ID \
      --pool=SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --issuer-pool=ROOT_CA_POOL_ID \
      --issuer-location=REGION \
      --subject="CN=SUBORDINATE_CA_CN, O=SUBORDINATE_CA_ORGANIZATION" \
      --key-algorithm="ec-p256-sha256" \
      --use-preset-profile=subordinate_mtls_pathlen_0
    

    Ganti kode berikut:

    • SUBORDINATE_CA_ID: Nama unik untuk CA subordinat. Panjang nama maksimal 64 karakter dan hanya boleh berisi karakter alfanumerik huruf kecil dan huruf besar, garis bawah, atau tanda hubung. Nama CA harus unik dalam region.
    • SUBORDINATE_CA_POOL_ID: nama pool CA subordinat.
    • REGION: region tempat CA pool bawahan berada.
    • ROOT_CA_POOL_ID: ID pool CA root.
    • REGION: region pool CA root.
    • SUBORDINATE_CA_CN: nama umum CA subordinat.
    • SUBORDINATE_CA_ORGANIZATION: nama organisasi penerbit CA bawahan.

    Untuk mengetahui informasi selengkapnya, lihat Membuat kumpulan CA. Untuk mengetahui informasi selengkapnya tentang kolom subject untuk CA, lihat Subjek.

Mengikat CA ke workload identity pool

Setelah membuat hierarki CA, Anda mengikat CA ke workload identity pool dengan memperbarui pool menggunakan setiap konfigurasi penerbitan sertifikat CA.

  1. Buat file issuance-config.yaml dengan konten berikut:

    inlineCertificateIssuanceConfig:
    caPools:
    REGION: projects/PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID
    keyAlgorithm: RSA_2048
    lifetime: 86400s
    rotationWindowPercentage: 50

    Ganti kode berikut dalam file:

    • REGION: Region tempat pool CA subordinat berada.
    • PROJECT_ID: ID project yang berisi kumpulan CA subordinat.
    • SUBORDINATE_CA_POOL_ID: ID pool CA subordinat.
  2. Jalankan perintah berikut untuk memperbarui workload identity pool:

    gcloud iam workload-identity-pools update POOL_ID \
       --location="global" \
       --inline-certificate-issuance-config-file=ISSUANCE_CONFIG_FILE
    

    Ganti kode berikut:

    • POOL_ID: ID unik untuk pool
    • ISSUANCE_CONFIG_FILE: Jalur ke file issuance-config.yaml.

Memberi otorisasi identitas workload terkelola untuk meminta sertifikat dari kumpulan CA

Identitas workload terkelola memerlukan izin untuk meminta sertifikat dari CA Service dan mendapatkan sertifikat publik.

  1. Berikan peran IAM CA Service Workload Certificate Requester (roles/privateca.workloadCertificateRequester) di setiap kumpulan CA subordinat ke identitas beban kerja terkelola. Perintah gcloud privateca pools add-iam-policy-binding berikut memberi otorisasi pada managed workload identity untuk meminta sertifikat dari rantai sertifikat CA Service.

    gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --role=roles/privateca.workloadCertificateRequester \
      --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/POOL_ID/*"
    

    Ganti kode berikut:

    • SUBORDINATE_CA_POOL_ID: ID untuk pool CA bawahan.
    • REGION: region pool CA bawahan.
    • PROJECT_NUMBER: nomor project dari project yang berisi workload identity pool.
    • POOL_ID: ID workload identity pool.
  2. Berikan peran IAM CA Service Pool Reader (roles/privateca.poolReader) pada kumpulan CA subordinat ke identitas beban kerja yang dikelola. Hal ini memberikan otorisasi pada identitas workload terkelola untuk mendapatkan sertifikat X.509 yang ditandatangani dari rantai sertifikat CA.

    gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --role=roles/privateca.poolReader \
      --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/POOL_ID/*"
    

    Ganti kode berikut:

    • SUBORDINATE_CA_POOL_ID: ID untuk pool CA bawahan.
    • REGION: region pool CA bawahan.
    • PROJECT_NUMBER: nomor project dari project yang berisi workload identity pool.
    • POOL_ID: ID workload identity pool.

Membuat identitas workload terkelola

Identitas workload terkelola memungkinkan Google Cloud untuk menyediakan kredensial secara otomatis untuk identitas workload identity pool ke workload Anda. Workload identity ditentukan dalam workload identity pool, dan diatur ke dalam batas administratif yang disebut namespace.

Buat namespace

Perintah workload-identity-pools namespaces create memungkinkan Anda membuat namespace di workload identity pool.

gcloud iam workload-identity-pools namespaces create NAMESPACE_ID \
    --workload-identity-pool="POOL_ID" \
    --location="global"

Ganti kode berikut:

  • NAMESPACE_ID: ID unik untuk namespace. ID harus memiliki panjang antara 2 dan 63 karakter, hanya berisi karakter alfanumerik huruf kecil dan tanda pisah, serta diawali dan diakhiri dengan karakter alfanumerik. Setelah membuat namespace, Anda tidak dapat mengubah ID-nya.
  • POOL_ID: ID workload identity pool yang Anda buat sebelumnya.

Membuat identitas workload terkelola

Perintah workload-identity-pools managed-identities create memungkinkan Anda membuat identitas workload terkelola di namespace workload identity pool.

gcloud iam workload-identity-pools managed-identities create MANAGED_IDENTITY_ID \
    --namespace="NAMESPACE_ID" \
    --workload-identity-pool="POOL_ID" \
    --location="global"

Ganti kode berikut:

  • MANAGED_IDENTITY_ID: ID unik untuk identitas terkelola. Panjang ID harus antara 2 hingga 63 karakter, hanya berisi karakter alfanumerik huruf kecil dan tanda pisah, serta diawali dan diakhiri dengan karakter alfanumerik. Setelah membuat identitas beban kerja terkelola, Anda tidak dapat mengubah ID-nya.
  • NAMESPACE_ID: ID namespace yang Anda buat sebelumnya.
  • POOL_ID: ID workload identity pool yang Anda buat sebelumnya.

ID identitas beban kerja terkelola Anda adalah ID SPIFFE, yang diformat sebagai berikut:

spiffe://POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

Menentukan kebijakan pengesahan workload

Bagian ini menjelaskan cara menyiapkan kebijakan pengesahan. Kebijakan ini menentukan atribut mana yang digunakan oleh Google Cloud IAM untuk memverifikasi identitas workload. Setelah verifikasi, beban kerja panggilan dapat menerima kredensial.

Verifikasi didasarkan pada salah satu atribut beban kerja berikut:

  • ID instance VM
  • Alamat email akun layanan terlampir
  • UID akun layanan terlampir

Menentukan kebijakan pengesahan workload dengan aturan pengesahan

Untuk membuat kebijakan pengesahan yang memungkinkan beban kerja Anda menggunakan identitas terkelola, lakukan hal berikut:

  1. Tentukan apakah Anda ingin membuat kebijakan pengesahan yang memungkinkan beban kerja Anda mengesahkan identitas terkelola menggunakan akun layanan terlampir atau menggunakan ID instance-nya.

  2. Buat file kebijakan pengesahan berformat JSON.

    1. Opsional: Untuk menerima kredensial X.509 di instance Compute Engine, Anda harus mengaktifkan akun layanan yang terpasang. Sebaiknya Anda melampirkan akun layanan baru ke beban kerja dengan terlebih dahulu membuatnya menggunakan perintah berikut:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
      

      Ganti SERVICE_ACCOUNT_NAME dengan nama akun layanan

    2. Buat file kebijakan pengesahan berformat JSON yang mengesahkan berdasarkan alamat email akun layanan, UID akun layanan, atau ID instance.

      Alamat email akun layanan

      Untuk membuat file kebijakan pengesahan yang mengesahkan berdasarkan alamat email akun layanan, buat file dengan konten berikut:

      {
         "attestationRules": [
            {
               "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.email/SERVICE_ACCOUNT_EMAIL"
            }
         ],
      }
      

      Ganti kode berikut:

      • WORKLOAD_PROJECT_NUMBER: jumlah project yang berisi instance VM atau akun layanan

      Untuk mendapatkan nomor project yang berisi identitas terkelola atau akun layanan yang baru saja Anda buat, jalankan perintah berikut:

         gcloud projects describe $(gcloud config get-value project) \
            --format="value(projectNumber)"
      
      • SERVICE_ACCOUNT_EMAIL: alamat email akun layanan yang terlampir ke VM

      UID akun layanan

      Untuk membuat file kebijakan pengesahan yang mengesahkan berdasarkan UID akun layanan, buat file dengan konten berikut:

      {
         "attestationRules": [
            {
               "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.uid/SERVICE_ACCOUNT_UID"
            }
         ],
      }
      

      Ganti kode berikut:

      • WORKLOAD_PROJECT_NUMBER: jumlah project yang berisi instance VM atau akun layanan

      Untuk mendapatkan nomor project yang berisi identitas terkelola atau akun layanan yang baru saja Anda buat, jalankan perintah berikut:

         gcloud projects describe $(gcloud config get-value project) \
            --format="value(projectNumber)"
      
      • SERVICE_ACCOUNT_UID: UID akun layanan yang terlampir pada VM

      Untuk mendapatkan ID Unik akun layanan, jalankan perintah berikut:

         gcloud iam service-accounts describe SERVICE_ACCOUNT_EMAIL\
            --format="value(uniqueId)"
      

      ID instance

      Untuk membuat file kebijakan pengesahan yang mengesahkan berdasarkan ID instance, buat file dengan konten berikut:

      {
         "attestationRules": [
            {
               "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/uid/zones/ZONE/instances/INSTANCE_ID"
            }
         ],
      }
      

      Ganti kode berikut:

      • WORKLOAD_PROJECT_NUMBER: jumlah project yang berisi instance VM atau akun layanan

      Untuk mendapatkan nomor project yang berisi identitas terkelola atau akun layanan yang baru saja Anda buat, jalankan perintah berikut:

         gcloud projects describe $(gcloud config get-value project) \
            --format="value(projectNumber)"
      
      • INSTANCE_ID: ID instance VM Compute Engine

      Nilai untuk ID instance harus berasal dari instance Compute Engine yang ada. Untuk mendapatkan ID instance, jalankan perintah berikut:

      gcloud compute instances describe INSTANCE_NAME --zone=ZONE --format="get(id)"
      
      • INSTANCE_NAME: nama instance VM Compute Engine
      • ZONE: zona VM Compute Engine
  3. Buat kebijakan pengesahan menggunakan file JSON kebijakan yang Anda buat sebelumnya dalam dokumen ini:

    gcloud iam workload-identity-pools managed-identities set-attestation-rules MANAGED_IDENTITY_ID \
       --namespace=NAMESPACE_ID \
       --workload-identity-pool=POOL_ID \
       --policy-file=PATH_TO_POLICY_JSON_FILE \
       --location=global
    

    Ganti kode berikut:

    • MANAGED_IDENTITY_ID: ID unik untuk identitas terkelola. Panjang ID harus antara 2 hingga 63 karakter, hanya berisi karakter alfanumerik huruf kecil dan tanda pisah, serta diawali dan diakhiri dengan karakter alfanumerik. Setelah membuat identitas beban kerja terkelola, Anda tidak dapat mengubah ID-nya.
    • NAMESPACE_ID: ID namespace yang Anda buat sebelumnya.
    • POOL_ID: ID workload identity pool yang Anda buat sebelumnya.
    • PATH_TO_POLICY_JSON_FILE: Jalur ke file JSON yang merepresentasikan kebijakan pengesahan yang Anda buat sebelumnya.

    Anda juga dapat memperbarui kebijakan dengan menambahkan atau menghapus aturan pengesahan satu per satu. Untuk menambahkan pengesahan ke kebijakan pengesahan, jalankan perintah berikut:

    gcloud iam workload-identity-pools managed-identities add-attestation-rule MANAGED_IDENTITY_ID \
       --namespace=NAMESPACE_ID \
       --workload-identity-pool=POOL_ID \
       --google-cloud-resource='//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.uid/SERVICE_ACCOUNT_UID' \
       --location=global
    
  4. Untuk mempelajari cara mencantumkan atau menghapus aturan pengesahan, jalankan perintah berikut:

    gcloud iam workload-identity-pools managed-identities list-attestation-rules --help
    gcloud iam workload-identity-pools managed-identities remove-attestation-rule --help
    

Opsional: Mengaktifkan federasi kepercayaan antara workload identity pool

Untuk mengaktifkan autentikasi timbal balik bagi workload di domain kepercayaan yang berbeda, Anda dapat mengonfigurasi federasi kepercayaan.

  1. Buat file trust-config.yaml dengan konten berikut:

    inlineTrustConfig:
    additionalTrustBundles:
      POOL_ID.global.PROJECT_NUMBER.workload.id.goog:
         trustAnchors:
         - pemCertificate: "-----BEGIN CERTIFICATE-----\nPEM_ENCODED_CERTIFICATE\n-----END CERTIFICATE-----"

    Ganti kode berikut dalam file:

    • POOL_ID: ID workload identity pool yang ingin Anda gabungkan.
    • PROJECT_NUMBER: Nomor project workload identity pool yang ingin Anda gabungkan.
    • PEM_ENCODED_CERTIFICATE: Sertifikat CA root berenkode PEM dari workload identity pool yang ingin Anda gabungkan.
  2. Untuk memperbarui workload identity pool dengan konfigurasi kepercayaan, jalankan perintah berikut:

    gcloud iam workload-identity-pools update POOL_ID \
      --location="global" \
      --inline-trust-config-file=TRUST_CONFIG_FILE
    

    Ganti kode berikut:

    • POOL_ID: ID unik untuk pool.
    • TRUST_CONFIG_FILE: jalur ke file trust-config.yaml.

Langkah berikutnya

Coba sendiri

Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.

Mulai secara gratis