Apigee Hybrid v.1.13 mendukung Workload Identity di GKE dan Workload Identity Federation di AKS dan EKS. Prosedur dalam panduan ini hanya mencakup konfigurasi Workload Identity di GKE. Untuk AKS dan EKS, ikuti prosedur di Mengaktifkan Workload Identity Federation di AKS dan EKS
Mengonfigurasi Workload Identity di GKE
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 melakukan autentikasi sebagai akun layanan, aplikasi memiliki akses ke semua resource yang boleh diakses oleh akun layanan. Jika Anda ingin mempelajari lebih lanjut akun layanan Google Cloud, 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 mengautentikasi ke server API dengan cara yang sama seperti pengguna. Jika Anda ingin mempelajari lebih lanjut akun layanan Kubernetes, lihat Mengonfigurasi Akun Layanan untuk Pod.
Jika Anda telah menyetel gcp.workloadIdentity.enabled ke true di
file penggantian, saat diagram Helm untuk setiap komponen hybrid akan membuat akun layanan
Kubernetes untuk komponen saat Anda menginstal atau mengupgradenya seperti yang Anda lakukan di
Langkah 10: Instal Apigee Hybrid menggunakan Helm.
Saat mengonfigurasi Workload Identity di GKE, Anda mengaitkan akun layanan Google Cloud dengan akun layanan Kubernetes di cluster Kubernetes. Dengan begitu, akun layanan Kubernetes dapat meniru akun layanan Google Cloud dan menggunakan peran serta izin yang ditetapkan untuk melakukan autentikasi dengan komponen hybrid.
Ikuti petunjuk ini untuk mengonfigurasi Workload Identity untuk project Anda.
Bersiap untuk mengonfigurasi Workload Identity
- Pastikan Workload Identity diaktifkan dalam file penggantian Anda. Fitur ini harus diaktifkan di
file penggantian dalam properti berikut.
namespacewajib diisi. Contoh:instanceID: "hybrid-instance-1" namespace: "apigee"
- 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
gsakomponen. Contoh:logger: gsa: "apigee-logger@my-hybrid-project.iam.gserviceaccount.com"
Lihat:
gcp.workloadIdentity.enabled. - Periksa apakah konfigurasi
gcloudsaat ini disetel ke project ID Google Cloud Anda dengan perintah berikut:gcloud config get project
- Pastikan Workload Identity diaktifkan untuk Cluster GKE Anda. Saat Anda membuat cluster
di Langkah 1: Buat cluster, langkah 6 adalah Mengaktifkan
Workload Identity. Anda dapat mengonfirmasi apakah Workload Identity diaktifkan 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
nulldi hasil, 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
-
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 node pool. Pada sebagian besar penginstalan Apigee hybrid, dua kumpulan node default diberi nama
apigee-datadanapigee-runtime. - Verifikasi bahwa Workload Identity diaktifkan di node pool 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
Jika perlu, tetapkan konfigurasi gcloud saat ini:
gcloud config set project $PROJECT_ID
Mengonfigurasi Workload Identity
Gunakan prosedur berikut untuk mengaktifkan Workload Identity bagi komponen Hybrid berikut:
apigee-datastoreapigee-telemetryapigee-orgapigee-env
Saat Anda menjalankan helm upgrade dengan
flag --dry-run untuk diagram apigee-datastore, apigee-env,
apigee-org, dan apigee-telemetry, output akan menyertakan
perintah yang akan Anda perlukan untuk mengonfigurasi Workload Identity dengan nama GSA dan KSA yang benar.
Contoh:
helm upgrade datastore apigee-datastore/ \ --namespace APIGEE_NAMESPACE \ -f overrides.yaml \ --dry-run=server
NAME: datastore
...
For Cassandra 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 my-service-account@my-project.iam.gserviceaccount.com \
--role roles/iam.workloadIdentityUser \
--member "serviceAccount:my-project.svc.id.goog[apigee/apigee-cassandra-default]" \
--project my-project
kubectl annotate serviceaccount apigee-cassandra-default \
iam.gke.io/gcp-service-account=my-service-account@my-project.iam.gserviceaccount.com \
--namespace apigee
- Dapatkan perintah untuk menyiapkan Workload Identity untuk
apigee-datastoredan jalankan perintah di bagianNOTES:dalam output.helm upgrade datastore apigee-datastore/ \ --namespace APIGEE_NAMESPACE \ -f overrides.yaml \ --dry-run=server
- Dapatkan perintah untuk menyiapkan Workload Identity untuk
apigee-telemetrydan jalankan perintah di bagianNOTES:dalam output.helm upgrade telemetry apigee-telemetry/ \ --namespace APIGEE_NAMESPACE \ -f overrides.yaml \ --dry-run=server
- Dapatkan perintah untuk menyiapkan Workload Identity untuk
apigee-orgdan jalankan perintah di bagianNOTES:dalam output.helm upgrade $ORG_NAME apigee-org/ \ --namespace APIGEE_NAMESPACE \ -f overrides.yaml \ --dry-run=server
- Dapatkan perintah untuk menyiapkan Workload Identity untuk
apigee-envdan jalankan perintah di bagianNOTES:dalam output.helm upgrade $ENV_NAME apigee-env/ \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f overrides.yaml \ --dry-run=server
Ulangi langkah ini untuk setiap lingkungan dalam penginstalan Anda.
- (Opsional) Anda dapat melihat status akun layanan Kubernetes di halaman Kubernetes: Workloads Overview di Google Cloud console.
Langkah berikutnya
Pada langkah berikutnya, Anda akan mengonfigurasi gateway ingress Apigee dan men-deploy proxy untuk menguji penginstalan Anda.