Apigee Hybrid v.1.13 mendukung Workload Identity di GKE dan Workload Identity Federation di AKS dan EKS. Prosedur dalam panduan ini hanya mencakup cara mengonfigurasi Workload Identity di GKE. Untuk AKS dan EKS, ikuti prosedur dalam 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 panggilan API dengan mengautentikasi sebagai akun layanan itu sendiri. Akun layanan Google Cloud dapat peran dan izin tertentu yang mirip dengan pengguna individu. Ketika sebuah aplikasi melakukan otentikasi sebagai akun layanan, akses ke semua resource yang dapat 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 pada Langkah 4: Buat akun layanan. Apigee menggunakan akun layanan untuk mengautentikasi komponen hybrid.
Akun layanan Kubernetes mirip dengan akun layanan Google Cloud. Layanan Kubernetes memberikan identitas untuk proses yang berjalan di Pod, dan memungkinkannya melakukan autentikasi ke Server API serupa dengan pengguna. Jika Anda ingin mempelajari lebih lanjut akun layanan Kubernetes, lihat Konfigurasi Akun Layanan untuk Pod.
Jika Anda memiliki gcp.workloadIdentity.enabled
yang ditetapkan ke true
di
mengganti file, saat diagram Helm untuk setiap komponen hybrid akan membuat layanan Kubernetes
memperhitungkan komponen saat Anda menginstal
atau meningkatkannya seperti yang Anda lakukan di
Langkah 11: Instal Apigee Hybrid menggunakan diagram Helm.
Saat mengonfigurasi Workload Identity di GKE, Anda mengaitkan akun layanan Google Cloud dengan akun layanan Kubernetes di cluster Kubernetes. Dengan begitu, layanan Kubernetes dapat meniru akun layanan Google Cloud dan menggunakan peran yang ditetapkan serta izin akses untuk mengotentikasi dengan komponen hybrid.
Ikuti petunjuk ini untuk mengonfigurasi Workload Identity untuk project Anda.
Persiapan untuk mengonfigurasi Workload Identity
- Pastikan Workload Identity diaktifkan di file penggantian Anda. Opsi ini harus diaktifkan di
akan menimpa file di properti berikut.
namespace
wajib 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."
- Jika Anda menggunakan akun layanan terpisah untuk setiap komponen (penginstalan Prod),
menentukan akun layanan dengan properti
gsa
komponen. Contoh:logger: gsa: "apigee-logger@my-hybrid-project."
Lihat:
gcp.workloadIdentity.enabled
- Pastikan konfigurasi
gcloud
saat ini disetel ke project ID Google Cloud Anda dengan perintah berikut:gcloud config get project
- Pastikan Workload Identity sudah aktif untuk Cluster GKE Anda. Saat Anda membuat cluster
pada Langkah 1: Membuat cluster, langkah 6 adalah Mengaktifkannya
Workload Identity. Anda dapat mengonfirmasi apakah Workload Identity diaktifkan dengan menjalankan perintah berikut
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
-
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. Di sebagian besar Apigee Hybrid penginstalan, dua kumpulan node default bernama
apigee-data
danapigee-runtime
. - Pastikan Workload Identity diaktifkan pada 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
Jika perlu, setel konfigurasi gcloud
saat ini:
gcloud config set project $PROJECT_ID
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 apigee-datastore
, apigee-env
,
diagram apigee-org
, dan apigee-telemetry
, output-nya akan mencakup
Anda harus 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
- Dapatkan perintah guna menyiapkan Workload Identity untuk
apigee-datastore
dan jalankan perintah tersebut di bagianNOTES:
pada output.helm upgrade datastore apigee-datastore/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run
- Dapatkan perintah guna menyiapkan Workload Identity untuk
apigee-telemetry
dan jalankan perintah di bagianNOTES:
pada output.helm upgrade telemetry apigee-telemetry/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run
- Dapatkan perintah guna menyiapkan Workload Identity untuk
apigee-org
dan jalankan perintah di bagianNOTES:
pada output.helm upgrade $ORG_NAME apigee-org/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run
- Dapatkan perintah guna menyiapkan Workload Identity untuk
apigee-env
dan jalankan perintah di bagianNOTES:
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.
- (Opsional) Anda dapat melihat status akun layanan Kubernetes di Kubernetes: Workloads Overview di Google Cloud Console.
Langkah berikutnya
Dalam , Anda akan mengonfigurasi gateway masuk Apigee dan men-deploy proxy untuk menguji penginstalan.