Langkah 12 (Opsional): Konfigurasikan Workload Identity di GKE

GKE dengan Workload Identity saja: Mengonfigurasi Workload Identity

Ikuti langkah-langkah berikut jika Anda menyiapkan file pengganti untuk Workload Identity di GKE pada Langkah 6: Buat penggantian.

Jika Anda tidak menggunakan Workload Identity di GKE, lanjutkan ke Bagian 3, Langkah 1: Ekspos gateway masuk Apigee.

Akun layanan Google Cloud dan akun layanan Kubernetes

Akun layanan Google Cloud adalah jenis akun khusus yang dapat digunakan untuk melakukan panggilan API yang diotorisasi dengan mengautentikasi sebagai akun layanan itu sendiri. Akun layanan Google Cloud dapat diberi peran dan izin yang serupa dengan pengguna perorangan. Saat aplikasi diautentikasi sebagai akun layanan, aplikasi tersebut memiliki akses ke semua resource yang boleh diakses oleh akun layanan. Jika Anda ingin mempelajari akun layanan Google Cloud lebih lanjut, lihat Ringkasan akun layanan.

Anda telah membuat akun layanan Google Cloud untuk penginstalan hybrid Apigee di Langkah 4: Buat akun layanan. Apigee menggunakan akun layanan ini untuk mengautentikasi komponen hybrid.

Akun layanan Kubernetes mirip dengan akun layanan Google Cloud. Akun layanan Kubernetes memberikan identitas untuk proses yang berjalan di Pod, dan memungkinkannya melakukan autentikasi ke server API mirip dengan pengguna. Jika Anda ingin mempelajari akun layanan Kubernetes lebih lanjut, lihat Mengonfigurasi Akun Layanan untuk Pod.

Jika Anda memiliki gcp.workloadIdentity.enabled yang ditetapkan ke true dalam file pengganti, saat chart Helm untuk setiap komponen hybrid akan membuat layanan Kubernetes untuk komponen tersebut saat Anda menginstal atau mengupgradenya seperti yang Anda lakukan di Langkah 11: Instal Apigee Hybrid menggunakan chart Helm.

Saat mengonfigurasi Workload Identity di GKE, Anda mengaitkan akun layanan Google Cloud dengan akun layanan Kubernetes di cluster Kubernetes. Dengan demikian, akun layanan Kubernetes dapat meniru identitas akun layanan Google Cloud serta menggunakan peran dan izin yang ditetapkan untuk melakukan autentikasi dengan komponen hybrid.

Ikuti petunjuk ini untuk mengonfigurasi Workload Identity untuk project Anda.

Persiapan untuk mengonfigurasi Workload Identity

  1. Pastikan Workload Identity diaktifkan di file penggantian Anda. Opsi ini harus diaktifkan di file pengganti dalam properti berikut.
    • namespace wajib diisi. Contoh:
      instanceID: "hybrid-instance-1"
      namespace: "apigee"
      
    • Sintaksis untuk mengaktifkan Workload Identity berbeda untuk Helm dengan untuk apigeectl. Untuk Helm, gcp.workloadIdentity.enabled menggantikan gcp.workloadIdentityEnabled.
    • Jika Anda menggunakan satu akun layanan (Non-prod) untuk semua komponen, tentukan dengan: gcp.workloadIdentity.gsa. Contoh:
        gcp:
          workloadIdentity:
            enabled: true
            gsa: "apigee-non-prod@my-hybrid-project.iam.gserviceaccount.com"
        
    • Jika Anda menggunakan akun layanan terpisah untuk setiap komponen (penginstalan Prod), tentukan akun layanan dengan properti gsa komponen. Contoh:
        logger:
          gsa: "apigee-logger@my-hybrid-project.iam.gserviceaccount.com"
        

    Lihat: gcp.workloadIdentity.enabled.

  2. Pastikan konfigurasi gcloud saat ini sudah disetel ke project ID Google Cloud Anda dengan perintah berikut:
    gcloud config get project
  3. Jika perlu, setel konfigurasi gcloud saat ini:

    gcloud config set project $PROJECT_ID
  4. Pastikan Workload Identity sudah aktif untuk Cluster GKE Anda. Saat membuat cluster di Langkah 1: Membuat cluster, langkah 6 adalah Mengaktifkan Workload Identity. Anda dapat mengonfirmasi apakah Workload Identity sudah aktif dengan menjalankan perintah berikut:

    Cluster regional

    gcloud container clusters describe $CLUSTER_NAME \
      --region $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten 'workloadIdentityConfig'

    Cluster zona

    gcloud container clusters describe $CLUSTER_NAME \
      --zone $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten 'workloadIdentityConfig'

    Output Anda akan terlihat seperti berikut:

      ---
      workloadPool: PROJECT_ID.svc.id.goog

    Jika Anda melihat null dalam hasil Anda, jalankan perintah berikut untuk mengaktifkan Workload Identity untuk cluster Anda:

    Cluster regional

    gcloud container clusters update $CLUSTER_NAME \
      --workload-pool=$PROJECT_ID.svc.id.goog \
      --project $PROJECT_ID \
      --region $CLUSTER_LOCATION

    Cluster zona

    gcloud container clusters update  $CLUSTER_NAME \
      --workload-pool=$PROJECT_ID.svc.id.goog \
      --zone $CLUSTER_LOCATION \
      --project $PROJECT_ID
  5. Aktifkan Workload Identity untuk setiap node pool dengan perintah berikut. Operasi ini dapat memerlukan waktu hingga 30 menit untuk setiap node:

    Cluster regional

    gcloud container node-pools update NODE_POOL_NAME \
      --cluster=$CLUSTER_NAME \
      --region $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --workload-metadata=GKE_METADATA

    Cluster zona

    gcloud container node-pools update NODE_POOL_NAME \
      --cluster=$CLUSTER_NAME \
      --zone $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --workload-metadata=GKE_METADATA

    Dengan NODE_POOL_NAME adalah nama setiap kumpulan node. Pada sebagian besar penginstalan hybrid Apigee, dua kumpulan node default diberi nama apigee-data dan apigee-runtime.

  6. Pastikan Workload Identity diaktifkan di kumpulan node Anda dengan perintah berikut:

    Cluster regional

    gcloud container node-pools describe apigee-data \
      --cluster $CLUSTER_NAME \
      --region $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten "config:"
    gcloud container node-pools describe apigee-runtime \
      --cluster $CLUSTER_NAME \
      --region $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten "config:"

    Cluster zona

    gcloud container node-pools describe apigee-data \
      --cluster $CLUSTER_NAME \
      --zone $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten "config:"
    gcloud container node-pools describe apigee-runtime \
      --cluster $CLUSTER_NAME \
      --zone $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten "config:"

    Output Anda akan terlihat seperti:

    ---
    diskSizeGb: 100
    diskType: pd-standard
    ...
    workloadMetadataConfig:
      mode: GKE_METADATA
        

Mengonfigurasi Workload Identity

Gunakan prosedur berikut untuk mengaktifkan Workload Identity untuk komponen Hybrid berikut:

  • apigee-datastore
  • apigee-telemetry
  • apigee-org
  • apigee-env

Saat Anda menjalankan helm upgrade dengan flag --dry-run untuk diagram apigee-datastore, apigee-env, apigee-org, dan apigee-telemetry, output-nya akan menyertakan perintah yang diperlukan untuk mengonfigurasi Workload Identity dengan nama GSA dan KSA yang benar.

Contoh:

helm upgrade datastore apigee-datastore/ \
  --namespace $NAMESPACE \
  -f overrides.yaml \
  --dry-run
NAME: datastore
  ...
For C* backup GKE Workload Identity, please make sure to add the below membership to the IAM policy binding using the respective kubernetes SA (KSA).
  gcloud iam service-accounts add-iam-policy-binding  \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-cassandra-backup-sa]" \
        --project :my-project
  1. Dapatkan perintah guna menyiapkan Workload Identity untuk apigee-datastore dan jalankan perintah tersebut di bagian NOTES: pada output.
    helm upgrade datastore apigee-datastore/ \
      --namespace $NAMESPACE \
      -f overrides.yaml \
      --dry-run
  2. Dapatkan perintah guna menyiapkan Workload Identity untuk apigee-telemetry dan jalankan perintah di bagian NOTES: pada output.
    helm upgrade telemetry apigee-telemetry/ \
      --namespace $NAMESPACE \
      -f overrides.yaml \
      --dry-run
  3. Dapatkan perintah guna menyiapkan Workload Identity untuk apigee-org dan jalankan perintah di bagian NOTES: pada output.
    helm upgrade $ORG_NAME apigee-org/ \
      --namespace $NAMESPACE \
      -f overrides.yaml \
      --dry-run
  4. Dapatkan perintah guna menyiapkan Workload Identity untuk apigee-env dan jalankan perintah di bagian NOTES: pada output.
    helm upgrade $ENV_NAME apigee-env/ \
      --namespace $NAMESPACE \
      --set env=ENV_NAME \
      -f overrides.yaml \
      --dry-run

    Ulangi langkah ini untuk setiap lingkungan dalam penginstalan Anda.

  5. (Opsional) Anda dapat melihat status akun layanan Kubernetes di halaman Kubernetes: Workloads Overview di Google Cloud Console.

    Buka Workloads

Langkah berikutnya

Pada langkah berikutnya, Anda akan mengonfigurasi gateway masuk Apigee dan men-deploy proxy untuk menguji penginstalan.

(BERIKUTNYA) Langkah 1: Ekspos traffic masuk Apigee 2