Topik ini menjelaskan cara mengaktifkan Workload Identity untuk penginstalan hybrid Apigee di platform AKS dan EKS.
Ringkasan
Dengan penggabungan identitas workload, aplikasi yang berjalan di luar Google Cloud dapat meniru akun layanan Google Cloud Platform dengan menggunakan kredensial dari penyedia identitas eksternal.
Menggunakan workload identity federation dapat membantu Anda meningkatkan keamanan dengan memungkinkan aplikasi menggunakan mekanisme autentikasi yang disediakan lingkungan eksternal dan dapat membantu mengganti kunci akun layanan.
Untuk mengetahui ringkasannya, lihat Praktik terbaik untuk menggunakan Workload Identity Federation.
Menyiapkan Workload Identity Federation
Untuk menggunakan Workload Identity Federation dengan Apigee Hybrid, konfigurasikan cluster Anda terlebih dahulu, lalu terapkan fitur tersebut ke penginstalan hybrid Apigee.
Konfigurasikan cluster Anda untuk menggunakan Workload Identity Federation.
Ikuti petunjuk Google Cloud untuk Mengonfigurasi Workload Identity Federation untuk Kubernetes, dengan modifikasi berikut:
-
Pada langkah Configure Workload Identity Federation, audiens default untuk kumpulan dan penyedia Workload Identity yang dibuat adalah sebagai berikut. Gunakan default ini atau tetapkan audiens kustom yang diharapkan, lalu simpan nilai ini untuk digunakan nanti.
https://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
-
Anda tidak perlu melakukan langkah-langkah di bagian Buat sepasang akun layanan, karena akun layanan yang Anda perlukan seharusnya sudah dibuat:
-
Akun layanan IAM: Kemungkinan besar Anda sudah membuat akun layanan IAM (juga disebut "akun layanan Google") selama penginstalan awal Apigee Hybrid dengan alat
create-service-account
. Lihat Tentang akun layanan untuk mengetahui daftar akun layanan IAM yang diperlukan oleh Apigee Hybrid.Anda dapat melihat daftar akun layanan IAM di project Anda menggunakan perintah berikut:
gcloud iam service-accounts list --project PROJECT_ID
-
Akun layanan Kubernetes: Diagram hybrid Apigee membuat akun layanan Kubernetes yang diperlukan untuk setiap komponen saat Anda menjalankan perintah
helm install
atauhelm update
.Anda dapat melihat akun layanan Kubernetes di cluster dengan perintah
kubectl get sa
:kubectl get sa -n APIGEE_NAMESPACE
kubectl get sa -n apigee-system
-
Akun layanan IAM: Kemungkinan besar Anda sudah membuat akun layanan IAM (juga disebut "akun layanan Google") selama penginstalan awal Apigee Hybrid dengan alat
-
Berhenti setelah langkah 1 di bagian Deploy a Kubernetes workload. Simpan file konfigurasi kredensial dan simpan jalur yang dimasukkan untuk parameter
--credential-source-file
, misalnya:/var/run/service-account/token
.
Mengonfigurasi Apigee Hybrid untuk menggunakan Workload Identity Federation
-
Salin file sumber kredensial dan file output (
credential-configuration.json
) ke direktori diagram berikut. Ini adalah nilai yang Anda berikan pada langkah 1 di bagian Men-deploy beban kerja Kubernetes.apigee-datastore/
apigee-env
apigee-org/
apigee-telemetry/
-
Lakukan perubahan global berikut pada file penggantian cluster Anda:
gcp: workloadIdentity: enabled: false # must be set to false to use Workload Identity Federation federatedWorkloadIdentity: enabled: true audience: "AUDIENCE" credentialSourceFile: "CREDENTIAL_SOURCE_FILE"
Dengan keterangan:
-
AUDIENCE adalah audiens yang diizinkan untuk Penyedia Identitas Workload, nilai di bawah
.audience
dalam file JSON konfigurasi kredensial yang Anda konfigurasikan pada langkah 1 di bagian Men-deploy beban kerja Kubernetes. -
CREDENTIAL_SOURCE_FILE adalah nama file dan jalur ke file sumber kredensial yang digunakan oleh Workload Identity Federation untuk mendapatkan kredensial akun layanan. Ini adalah nilai yang Anda berikan untuk
credential-source-file
saat mengonfigurasi Workload Identity Federation dengan perintahcreate-cred-config
di Slangkah 1 di bagian Deploy a Kubernetes workload. Contoh:
Contoh:
gcp: workloadIdentity: enabled: false federatedWorkloadIdentity: enabled: true audience: "//iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/aws-pool/providers/aws-provider" credentialSourceFile: "/var/run/service-account/token"
-
AUDIENCE adalah audiens yang diizinkan untuk Penyedia Identitas Workload, nilai di bawah
-
Konfigurasikan penggantian untuk setiap komponen menggunakan Workload Identity Federation. Pilih petunjuk untuk file sertifikat, rahasia Kubernetes, atau Vault yang sesuai untuk penginstalan Anda.
File sertifikasi
Ganti nilai
serviceAccountPath
dengan file sumber kredensial. Jalur ini harus merupakan jalur yang terkait dengan direktori diagram. Contoh:udca: serviceAccountPath: fwi/credential-configuration.json
Rahasia K8s
-
Buat rahasia Kubernetes baru menggunakan file sumber kredensial.
kubectl create secret -n apigee generic SECRET_NAME --from-file="client_secret.json=CREDENTIAL_CONFIGURATION_FILE"
Contoh:
kubectl create secret -n apigee generic udca-fwi-secret --from-file="client_secret.json=./fwi/credential-configuration.json"
-
Ganti nilai
serviceAccountRef
dengan secret baru. Contoh:udca: serviceAccountRef: udca-fwi-secret
Vault
Perbarui kunci akun layanan,
SAKEY
di Vault dengan file sumber kredensial. Misalnya, untuk UDCA (prosedurnya sama dengan semua komponen):SAKEY=$(cat ./fwi/credential-configuration.json); kubectl -n apigee exec vault-0 -- vault kv patch secret/apigee/orgsakeys udca="$SAKEY"
-
Buat rahasia Kubernetes baru menggunakan file sumber kredensial.
-
Terapkan perubahan pada setiap komponen yang terpengaruh dengan perintah
helm update
:Jika Anda menggunakan Vault untuk pertama kalinya dengan cluster ini, perbarui diagram
apigee-operator
:helm upgrade operator apigee-operator/ \ --namespace apigee-system \ --atomic \ -f overrides.yaml
Perbarui diagram lainnya yang terpengaruh dengan urutan berikut:
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f overrides.yaml
helm upgrade telemetry apigee-telemetry/ \ --namespace apigee \ --atomic \ -f overrides.yaml
helm upgrade $ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f overrides.yaml
Perbarui diagram
apigee-env
untuk setiap lingkungan, dengan mengganti ENV_NAME setiap kali:helm upgrade $ENV_NAME apigee-env/ \ --namespace apigee \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
Lihat Referensi Helm hybrid Apigee untuk mengetahui daftar komponen dan diagramnya yang sesuai.
Untuk mengetahui informasi selengkapnya tentang Workload Identity Federation dan praktik terbaik, lihat Praktik terbaik untuk menggunakan federasi identitas workload.