GKE dengan Workload Identity saja: Mengonfigurasi Workload Identity
Ikuti langkah-langkah berikut jika Anda menyiapkan file penggantian untuk Workload Identity di GKE pada Langkah 6: Buat penggantian.
Jika Anda tidak menggunakan Workload Identity di GKE, lanjutkan ke Bagian 3, Langkah 1: Mengekspos 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 melakukan autentikasi sebagai akun layanan itu sendiri. Akun layanan Google Cloud dapat diberi peran dan izin yang mirip dengan pengguna perorangan. Jika aplikasi mengautentikasi sebagai akun layanan, aplikasi tersebut memiliki akses ke semua resource yang boleh diakses oleh akun layanan. Jika 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 untuk melakukan autentikasi ke server API yang mirip dengan pengguna. Jika ingin mempelajari akun layanan Kubernetes lebih lanjut, lihat Mengonfigurasi Akun Layanan untuk Pod.
Jika gcp.workloadIdentity.enabled
ditetapkan ke true
dalam file penggantian, saat diagram Helm untuk setiap komponen hybrid akan membuat akun layanan Kubernetes untuk komponen tersebut saat Anda menginstal atau mengupgradenya seperti yang dilakukan di Langkah 11: Instal Apigee Hybrid menggunakan diagram Helm.
Saat mengonfigurasi Workload Identity di GKE, Anda akan mengaitkan akun layanan Google Cloud dengan akun layanan Kubernetes di cluster Kubernetes. Dengan begitu, 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.
Bersiap untuk mengonfigurasi Workload Identity
- Pastikan Workload Identity diaktifkan di file penggantian Anda. Fitur ini harus diaktifkan pada file penggantian di properti berikut.
namespace
wajib diisi. Contoh:instanceID: "hybrid-instance-1" namespace: "apigee"
- Sintaksis untuk mengaktifkan Workload Identity berbeda untuk Helm dan untuk
apigeectl
. Untuk Helm,gcp.workloadIdentity.enabled
menggantikangcp.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
. - Pastikan konfigurasi
gcloud
saat ini telah 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 memastikan 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, 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 kumpulan node dengan perintah berikut. Operasi ini dapat memakan 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
danapigee-runtime
. - Pastikan 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 ini:
--- 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 guna mengaktifkan Workload Identity untuk komponen Hybrid berikut:
apigee-datastore
apigee-telemetry
apigee-org
apigee-env
Saat Anda menjalankan helm upgrade
dengan tanda --dry-run
untuk diagram apigee-datastore
, apigee-env
, apigee-org
, dan apigee-telemetry
, output-nya akan menyertakan perintah yang Anda perlukan 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
- Dapatkan perintah guna menyiapkan Workload Identity untuk
apigee-datastore
dan jalankan perintah di bagianNOTES:
dalam 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 halaman Kubernetes: Workloads Overview di Google Cloud Console.
Langkah berikutnya
Pada langkah berikutnya, Anda akan mengonfigurasi gateway masuk Apigee dan men-deploy proxy untuk menguji penginstalan.
Langkah berikutnya
(BERIKUTNYA) Langkah 1: Mengekspos traffic masuk Apigee 2