Mengonfigurasi autentikasi identitas workload terkelola untuk GKE

Dokumen ini menjelaskan cara mengonfigurasi identitas beban kerja terkelola untuk Google Kubernetes Engine (GKE) di cluster yang dikelola fleet GKE Anda. Panduan ini juga menjelaskan cara men-deploy workload dan memverifikasi identitas serta sertifikat workload.

Untuk menyiapkan dan menggunakan identitas workload terkelola untuk GKE, selesaikan langkah-langkah berikut:

  1. Pilih opsi certificate authority (CA)

  2. Mengonfigurasi certificate authority Anda

  3. Men-deploy workload dengan identitas workload terkelola

  4. Opsional: Aktifkan penggabungan kepercayaan antara workload identity pool

Workload identity pool yang dikelola Google

Saat Anda menambahkan cluster ke fleet GKE, GKE akan otomatis membuat workload identity pool yang dikelola Google, yang berfungsi sebagai root kepercayaan, yang juga dikenal sebagai domain tepercaya SPIFFE untuk workload Anda. Semua beban kerja dalam domain tepercaya menerima sertifikat dan trust anchor yang mengaktifkan autentikasi secara default dalam domain tepercaya. Jika memiliki beberapa domain tepercaya, Anda dapat mengaktifkan federasi kepercayaan di antara domain tersebut untuk mengaktifkan komunikasi lintas domain tepercaya.

Workload identity pool yang dikelola Google memiliki batasan berikut:

  • Google mengelola pool sepenuhnya, sehingga Anda tidak dapat membuat sub-resource apa pun, seperti namespace, identitas, atau penyedia identitas.

  • Kumpulan hanya dapat digunakan untuk workload GKE. Anda tidak dapat menambahkan jenis beban kerja lain, seperti VM Compute Engine, ke kumpulan.

  • Semua cluster dalam kumpulan tunduk pada model kesamaan namespace Kubernetes standar. Artinya, semua cluster dalam kumpulan memiliki hak istimewa yang setara. Workload di cluster mana pun dalam pool dapat menggunakan identitas apa pun dalam pool tersebut.

Konfigurasi multi-project

ResourceGoogle Cloud yang Anda gunakan dalam dokumen ini, seperti cluster GKE, CA root, dan CA subordinat, dapat berada di project terpisah. Saat merujuk ke resource ini, gunakan flag --project untuk menentukan project yang benar untuk setiap resource.

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. Pahami identitas workload terkelola.

  3. Pastikan cluster Anda menjalankan versi 1.33.0-gke.2248000 atau yang lebih baru.

  4. Tambahkan cluster Anda ke fleet GKE. Jika cluster Anda adalah cluster Autopilot, hapus flag --enable-workload-identity. Fleets secara otomatis membuat workload identity pool yang dikelola Google, yang berfungsi sebagai domain tepercaya.

    Aktifkan fleet GKE dengan menjalankan perintah berikut:

    gcloud container clusters update CLUSTER_NAME \
    --workload-pool=PROJECT_ID.svc.id.goog \
    --enable-fleet \
    --fleet-project=PROJECT_ID
    

    Ganti nilai berikut:

    • CLUSTER_NAME: nama cluster GKE yang akan didaftarkan ke fleet GKE
    • PROJECT_ID: project ID host fleet GKE
  5. 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 cloudresourcemanager.googleapis.com iam.googleapis.com privateca.googleapis.com

  6. Konfigurasi Google Cloud CLI untuk menggunakan project penagihan dan kuota Anda.

    gcloud config set billing/quota_project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project fleet.

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.

Pilih opsi CA

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

  • CA default yang dikelola Google: Gunakan opsi ini untuk solusi 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 sesuai 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, diformat sebagai berikut:

      PROJECT_ID.svc.id.goog
    
  • PROJECT_ID: Project ID.

CA kustom

  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

Untuk mengonfigurasi identitas workload terkelola untuk GKE, Anda harus mengonfigurasi certificate authority (CA) dan satu atau beberapa CA subordinat terlebih dahulu. Konfigurasi ini dikenal sebagai hierarki CA.

Anda dapat menggunakan kumpulan CA Service untuk menyiapkan hierarki ini. Dengan hierarki ini, kumpulan CA subordinat menerbitkan sertifikat identitas workload X.509 ke workload Anda.

Mengonfigurasi kumpulan CA root Anda

Untuk membuat kumpulan CA root, lakukan hal berikut:

Buat kumpulan CA root di tingkat Enterprise menggunakan gcloud privateca pools create. Tingkat ini ditujukan untuk penerbitan sertifikat yang berumur panjang dan bervolume rendah.

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

Ganti kode berikut:

  • ROOT_CA_POOL_ID: ID unik untuk pool CA root. Panjang ID maksimal 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 kumpulan CA root berada.

  • CA_PROJECT_ID: Project ID tempat Anda ingin membuat CA root.

Untuk mempelajari lebih lanjut kumpulan CA, tingkat, dan wilayah, lihat Membuat kumpulan CA.

Mengonfigurasi CA root Anda

Buat CA root di kumpulan CA root menggunakan gcloud privateca roots create. Anda mungkin diminta untuk mengaktifkan CA root jika ini adalah satu-satunya CA di Kumpulan CA root.

Untuk membuat CA root, jalankan perintah berikut:

gcloud privateca roots create ROOT_CA_ID \
    --pool=ROOT_CA_POOL_ID \
    --subject="CN=ROOT_CA_CN, O=ROOT_CA_ORGANIZATION" \
    --key-algorithm="KEY_ALGORITHM" \
    --max-chain-length=1 \
    --location=REGION \
    --project=CA_PROJECT_ID \
    --auto-enable

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.
  • KEY_ALGORITHM: Algoritma kunci—misalnya, ec-p256-sha256.
  • REGION: Region tempat kumpulan CA root berada.
  • CA_PROJECT_ID: Project ID tempat Anda membuat CA root.

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

Secara opsional, Anda dapat membuat CA root tambahan di kumpulan CA root Anda. Tindakan ini dapat berguna untuk rotasi CA root.

Mengonfigurasi CA subordinat

Secara opsional, Anda dapat mengonfigurasi CA subordinat. Mengonfigurasi CA subordinat dapat membantu hal berikut:

  • Beberapa skenario penerbitan sertifikat: Jika Anda memiliki beberapa skenario penerbitan sertifikat, Anda dapat membuat CA subordinat untuk setiap skenario.

  • Penyeimbangan beban yang lebih baik: Menambahkan beberapa CA subordinat dalam kumpulan CA membantu Anda mencapai penyeimbangan beban permintaan sertifikat yang lebih baik.

Untuk membuat pool CA subordinat dan CA subordinat, lakukan hal berikut:

  1. Buat kumpulan CA subordinat di paket DevOps, yang ditujukan untuk penerbitan sertifikat berumur pendek dengan volume tinggi.

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

    Ganti kode berikut:

    • SUBORDINATE_CA_POOL_ID: ID unik untuk pool CA bawahan. Panjang ID maksimal 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 bawahan.
    • CA_PROJECT_ID: ID project tempat Anda membuat CA subordinat.

    Untuk mengetahui informasi selengkapnya, lihat Membuat kumpulan CA.

  2. Buat CA subordinat di pool CA subordinat. Jangan ubah mode penerbitan berbasis konfigurasi default.

    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="KEY_ALGORITHM" \
        --use-preset-profile=subordinate_mtls_pathlen_0 \
        --project=CA_PROJECT_ID \
        --auto-enable
    

    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 kumpulan harus unik dalam region.
    • SUBORDINATE_CA_POOL_ID: Nama pool CA bawahan.
    • REGION: Region tempat pool CA 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.
    • KEY_ALGORITHM: Algoritma kunci—misalnya, ec-p256-sha256.
    • CA_PROJECT_ID: ID project tempat Anda membuat CA subordinat.

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

Membuat file konfigurasi penerbitan sertifikat

Mengikat CA ke workload identity pool memerlukan konfigurasi penerbitan sertifikat. Jika Anda ingin workload Anda diautentikasi di beberapa domain tepercaya, lihat Mengaktifkan federasi kepercayaan antara workload identity pool (Opsional).

Untuk mengonfigurasi konfigurasi penerbitan sertifikat, Anda membuat file konfigurasi penerbitan sertifikat bernama cic.json. Format file serupa dengan berikut ini:

{
  "inlineCertificateIssuanceConfig": {
      "caPools": {
        "REGION1": "projects/CA_PROJECT_NUMBER1/locations/REGION1/caPools/SUBORDINATE_CA_POOL_ID1",
        "REGION2": "projects/CA_PROJECT_NUMBER2/locations/REGION2/caPools/SUBORDINATE_CA_POOL_ID2"
      },
      "lifetime": "DURATION",
      "rotationWindowPercentage": ROTATION_WINDOW_PERCENTAGE,
      "keyAlgorithm": "ALGORITHM"
  }
}

Ganti kode berikut:

  • REGION: Region tempat CA berada.

  • CA_PROJECT_NUMBER: Nomor project dari project tempat Anda membuat kumpulan CA subordinat. Untuk mendapatkan nomor project dari project CA_PROJECT_ID, jalankan perintah berikut:

    gcloud projects describe CA_PROJECT_ID --format="value(projectNumber)"
    
  • SUBORDINATE_CA_POOL_ID: Nama pool CA bawahan.

  • ALGORITHM: Opsional. Algoritma enkripsi yang digunakan untuk membuat kunci pribadi. Nilai yang valid adalah ECDSA_P256, ECDSA_P384, RSA_2048, RSA_3072, RSA_4096. Jika tidak ditentukan, ECDSA_P256 akan digunakan sebagai algoritma default.

  • DURATION: Opsional. Durasi validitas sertifikat leaf, dalam detik. Nilai harus antara 86400 (1 hari) dan 2592000 (30 hari). Jika tidak ditentukan, nilai default 86400 (1 hari) akan digunakan. Masa berlaku sebenarnya dari sertifikat yang diterbitkan juga bergantung pada CA penerbit, karena CA tersebut dapat membatasi masa berlaku sertifikat yang diterbitkan.

  • ROTATION_WINDOW_PERCENTAGE: Opsional: Persentase masa aktif sertifikat saat perpanjangan dipicu. Nilai harus antara 50 dan 80. Jika tidak ditentukan, 50 akan digunakan sebagai nilai default.

Mengikat CA ke workload identity pool

Setelah membuat hierarki CA dan membuat konfigurasi penerbitan sertifikat untuk setiap CA, Anda akan mengikat CA ke workload identity pool. Untuk mengikat CA ke workload identity pool, Anda harus memperbarui workload identity pool dengan konfigurasi penerbitan sertifikat CA. Kemudian, Anda dapat memverifikasi bahwa pool telah diperbarui.

Memperbarui workload identity pool

Untuk mengupdate pool, jalankan perintah berikut:

gcloud iam workload-identity-pools update TRUST_DOMAIN_NAME \
    --location="global" \
    --inline-certificate-issuance-config-file=CIC_JSON_FILE_PATH \
    --project=PROJECT_ID

Ganti kode berikut:

  • TRUST_DOMAIN_NAME: Nama domain tepercaya, diformat sebagai berikut:

    PROJECT_ID.svc.id.goog
    
  • CIC_JSON_FILE_PATH: Jalur ke file konfigurasi penerbitan sertifikat berformat JSON (cic.json) yang Anda buat sebelumnya.

Memverifikasi bahwa workload identity pool telah diperbarui

Untuk memverifikasi bahwa workload identity pool Anda telah diupdate dengan konfigurasi penerbitan sertifikat, jalankan perintah berikut:

gcloud iam workload-identity-pools describe TRUST_DOMAIN_NAME \
    --location="global" \
    --project=PROJECT_ID

Ganti TRUST_DOMAIN_NAME dengan nama domain tepercaya yang Anda gunakan untuk memperbarui kumpulan identitas beban kerja sebelumnya dalam dokumen ini.

Output perintah mirip dengan berikut ini:

inlineCertificateIssuanceConfig:
    caPools:
      REGION1: projects/PROJECT_NUMBER1/locations/REGION1/caPools/SUBORDINATE_CA_POOL_ID1,
      REGION2: projects/PROJECT_NUMBER2/locations/REGION2/caPools/SUBORDINATE_CA_POOL_ID2
    keyAlgorithm: ALGORITHM
    lifetime: DURATION
    rotationWindowPercentage: ROTATION_WINDOW_PERCENTAGE
mode: TRUST_DOMAIN
name: PROJECT_ID.svc.id.goog
state: ACTIVE

Jika inlineCertificateIssuanceConfig tidak ada dalam output perintah, pastikan Anda telah mengonfigurasi gcloud CLI dengan benar untuk menggunakan project yang benar untuk penagihan dan kuota. Anda mungkin perlu mengupdate ke gcloud CLI versi yang lebih baru.

Memberi otorisasi identitas workload terkelola untuk meminta sertifikat dari kumpulan CA

Setelah Anda mengikat CA ke workload identity pool, berikan otorisasi pada identitas workload terkelola untuk meminta sertifikat dari kumpulan CA. Untuk mengizinkan identitas ini:

  1. Berikan peran IAM CA Service Workload Certificate Requester (roles/privateca.workloadCertificateRequester) di setiap kumpulan CA bawahan ke domain tepercaya. Perintah gcloud privateca pools add-iam-policy-binding berikut memberi otorisasi pada domain tepercaya 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="principal://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog" \
        --project=CA_PROJECT_ID
    

    Ganti kode berikut:

    • SUBORDINATE_CA_POOL_ID: ID pool CA bawahan.
    • REGION: Region kumpulan CA subordinat.
    • PROJECT_NUMBER: Nomor project dari project yang berisi workload identity pool GKE.

      Untuk mendapatkan PROJECT_NUMBER dari PROJECT_ID, jalankan perintah berikut:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
      
    • PROJECT_ID: Project ID project host fleet GKE.

    • CA_PROJECT_ID: ID project tempat Anda membuat CA subordinat.

  2. Berikan peran CA Service Pool Reader (roles/privateca.poolReader) pada kumpulan CA subordinat ke workload identity terkelola. Dengan melakukannya, identitas workload terkelola diberi otorisasi untuk mendapatkan sertifikat X.509 yang ditandatangani dari rangkaian sertifikat CA.

    gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \
        --location=REGION \
        --role=roles/privateca.poolReader \
        --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog" \
        --project=CA_PROJECT_ID
    

    Ganti kode berikut:

    • SUBORDINATE_CA_POOL_ID: ID pool CA bawahan.
    • REGION: Region kumpulan CA subordinat.
    • PROJECT_NUMBER: Nomor project dari project yang berisi workload identity pool GKE.
    • PROJECT_ID: Project ID project host fleet GKE.
    • CA_PROJECT_ID: ID project tempat Anda membuat CA subordinat.

Men-deploy workload dengan identitas workload terkelola

Setelah mengonfigurasi kumpulan CA untuk menerbitkan sertifikat bagi identitas workload terkelola, Anda dapat men-deploy workload yang memiliki identitas workload terkelola.

Bagian ini menunjukkan cara men-deploy workload pengujian yang memiliki identitas workload terkelola. Untuk melakukannya, Anda men-deploy Pod, memeriksa apakah kredensial telah dibuat, dan melihat sertifikat serta ID SPIFFE.

Deploy Pod

Untuk men-deploy Pod pengujian di cluster Anda, lakukan hal berikut:

  1. Dapatkan kredensial cluster.

    gcloud container clusters get-credentials CLUSTER_NAME \
        --location=CLUSTER_ZONE \
        --project=CLUSTER_PROJECT_ID
    
  2. Buat namespace Kubernetes.

    kubectl create namespace KUBERNETES_NAMESPACE
    
  3. Deploy PodSpec pengujian.

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: Pod
    metadata:
      namespace: KUBERNETES_NAMESPACE
      name: example-pod
    spec:
      containers:
      - name: main
        image: debian
        command: ['sleep', 'infinity']
        volumeMounts:
        - name: fleet-spiffe-credentials
          mountPath: /var/run/secrets/workload-spiffe-credentials
          readOnly: true
      nodeSelector:
        iam.gke.io/gke-metadata-server-enabled: "true"
      volumes:
      - name: fleet-spiffe-credentials
        csi:
          driver: podcertificate.gke.io
          volumeAttributes:
            signerName: spiffe.gke.io/fleet-svid
            trustDomain: fleet-project/svc.id.goog
    EOF
    

Mencantumkan kredensial workload

Untuk mencantumkan kredensial workload, jalankan perintah berikut. Pembuatan kredensial dapat memakan waktu beberapa menit.

kubectl exec -it example-pod -n KUBERNETES_NAMESPACE -- ls  /var/run/secrets/workload-spiffe-credentials

Anda akan melihat output berikut:

ca_certificates.pem
certificates.pem
private_key.pem
trust_bundles.json

Melihat sertifikat

Untuk melihat sertifikat, lakukan tindakan berikut:

  1. Ekspor sertifikat ke file sertifikat.

    kubectl exec -it example-pod --namespace=KUBERNETES_NAMESPACE -- cat /var/run/secrets/workload-spiffe-credentials/certificates.pem | openssl x509 -noout -text > certfile
    
  2. Lihat file sertifikat.

    cat certfile
    

    Dalam sertifikat, di atribut X509v3 Subject Alternative Name, Anda melihat ID SPIFFE, dengan format berikut: spiffe://PROJECT_ID.svc.id.goog/ns/KUBERNETES_NAMESPACE/sa/default

    default mengacu pada Akun Layanan Kubernetes default.

Menguji autentikasi workload-ke-workload

Untuk menguji autentikasi workload-ke-workload, lihat Menguji autentikasi mTLS menggunakan Go.

Kode contoh di repositori membuat workload klien dan server. Anda dapat menguji autentikasi timbal balik antara beban kerja menggunakan sertifikat yang Anda buat sebelumnya dalam dokumen ini.

Mengaktifkan federasi kepercayaan antara workload identity pool (Opsional)

Untuk mengaktifkan autentikasi timbal balik untuk workload di domain tepercaya yang berbeda, Anda harus mengonfigurasi federasi kepercayaan antara workload identity pool. Langkah ini hanya diperlukan jika workload Anda perlu diautentikasi dengan workload di workload identity pool yang berbeda.

Untuk mengaktifkan federasi kepercayaan, selesaikan langkah-langkah berikut:

  1. Buat file konfigurasi kepercayaan.
  2. Perbarui workload identity pool dengan konfigurasi kepercayaan.

Buat file konfigurasi kepercayaan

Buat file konfigurasi kepercayaan dengan bagian inlineTrustConfig yang menentukan sertifikat untuk setiap domain.

File konfigurasi kepercayaan berisi serangkaian anchor kepercayaan yang digunakan identitas workload terkelola untuk memvalidasi sertifikat peer. File konfigurasi kepercayaan memetakan domain kepercayaan SPIFFE ke sertifikat CA.

  1. Untuk CA kustom, download sertifikat untuk domain tepercaya yang menggunakan CA kustom.

    gcloud privateca pools get-ca-certs ROOT_CA_POOL_ID \
        --output-file=CERTIFICATE_PATH \
        --location=REGION
    

    Ganti kode berikut:

    • ROOT_CA_POOL_ID: ID pool CA root.
    • CERTIFICATE_PATH: Jalur output untuk sertifikat yang dienkode PEM.
    • REGION: Region pool CA root.
  2. Buat file bernama tc.json yang berisi konfigurasi kepercayaan inline Anda. Jika domain menggunakan CA default yang dikelola Google, gunakan kolom trustDefaultSharedCa. Jika domain menggunakan CA kustom, gunakan sertifikat berenkode PEM yang sebelumnya Anda download.

    File-nya akan terlihat seperti berikut:

    Dalam contoh ini, TRUST_DOMAIN_A menggunakan CA default yang dikelola Google, dan TRUSTED_DOMAIN_B menggunakan CA kustom dengan sertifikat root yang didownload.

    {
      "inlineTrustConfig": {
        "additionalTrustBundles": {
          "TRUST_DOMAIN_A": {
            "trustDefaultSharedCa": true
          },
          "TRUSTED_DOMAIN_B": {
            "trustAnchors": [
              {
                  "pemCertificate": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_MATERIAL1\n-----END CERTIFICATE-----"
              },
              {
                  "pemCertificate": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_MATERIAL2\n-----END CERTIFICATE-----"
              }
            ]
          }
        }
      }
    }
    

    Ganti kode berikut:

    • TRUST_DOMAIN_A: Nama domain tepercaya yang menggunakan CA default yang dikelola Google.
    • TRUST_DOMAIN_B: Nama domain tepercaya yang menggunakan CA kustom.
    • CERTIFICATE_MATERIAL: Serangkaian sertifikat CA berformat PEM yang dipercaya untuk menerbitkan sertifikat di domain tepercaya.

Memperbarui workload identity pool dengan konfigurasi kepercayaan

gcloud iam workload-identity-pools update TRUST_DOMAIN_NAME \
    --location="global" \
    --inline-trust-config-file=TC_JSON_FILE_PATH \
    --project=PROJECT_ID

Ganti kode berikut:

  • TRUST_DOMAIN_NAME: Nama domain tepercaya.
  • TC_JSON_FILE_PATH: Jalur ke file konfigurasi kepercayaan berformat JSON (tc.json) yang Anda buat.
  • PROJECT_ID: Project ID.

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