Memilih metode autentikasi akun layanan di Apigee hybrid
Apigee hybrid memerlukan akun layanan untuk komunikasi yang aman dengan Google Cloud layanan. Pilih metode autentikasi untuk akun layanan ini yang sesuai dengan persyaratan keamanan dan operasional Anda. Panduan ini memberikan ringkasan singkat tentang opsi yang tersedia.
Memahami autentikasi akun layanan
Apigee hybrid menggunakan Google Cloud akun layanan untuk mengautentikasi dan mengotorisasi komponen yang berjalan di cluster Kubernetes Anda. Akun layanan ini mengakses Google Cloud resource, seperti bucket Cloud Storage dan Cloud Logging. Setiap akun layanan memerlukan peran Identity and Access Management (IAM) tertentu untuk menjalankan fungsinya.
- Pelajari lebih lanjut Google Cloud akun layananIdentity and Access Management: Ringkasan akun layanan.
- Pelajari lebih lanjut akun layanan di Apigee hybrid: Tentang akun layanan.
Opsi Metode Autentikasi
Apigee hybrid mendukung beberapa metode untuk mengautentikasi akun layanan. Setiap metode mengelola kunci akun layanan secara berbeda, yang menawarkan berbagai tingkat keamanan dan kompleksitas operasional. Pertimbangkan platform, postur keamanan, dan infrastruktur yang ada saat memilih metode.
Tabel berikut meringkas metode autentikasi yang tersedia:
| Metode | Lokasi Penyimpanan Kunci | Kompatibilitas Platform | Pengelolaan Kunci |
|---|---|---|---|
| Secret Kubernetes | Secret cluster Kubernetes | Platform Kubernetes apa pun | Kubernetes mengelola secret, rotasi manual |
| File kunci JSON akun layanan | Sistem file lokal | Platform Kubernetes apa pun | Rotasi dan distribusi manual |
| Vault | HashiCorp Vault | Platform Kubernetes apa pun | Vault mengelola secret, rotasi manual |
| Workload Identity Federation for GKE | Google Cloud IAM | Google Kubernetes Engine (GKE) | Google Cloud mengelola, tidak memerlukan file kunci |
| Workload Identity Federation di platform lain | Google Cloud IAM | AKS, EKS, OpenShift, atau platform Kubernetes lainnya | Google Cloud mengelola, tidak memerlukan file kunci |
Menyimpan kunci akun layanan di secret Kubernetes
Simpan kunci akun layanan sebagai secret Kubernetes dalam cluster Anda. Metode ini memanfaatkan kemampuan pengelolaan secret bawaan di Kubernetes. Secret Kubernetes dapat memberikan cara yang lebih aman untuk mengelola kunci daripada penyimpanan file langsung. Anda masih mengelola rotasi kunci secara manual.
Komponen hybrid mereferensikan secret ini menggunakan properti serviceAccountRef
dan envs[].serviceAccountRefs dalam file overrides.yaml.
Kubernetes mengelola distribusi secret ini ke pod yang sesuai.
Contoh:
logger: serviceAccountRef: "my-project-apigee-logger-key"
Untuk menggunakan metode ini, lihat Menyimpan kunci akun layanan di secret Kubernetes.
File kunci JSON akun layanan
Metode ini melibatkan pembuatan file kunci JSON untuk setiap akun layanan dan menyimpan file ini langsung di sistem file. Pendekatan ini menawarkan kesederhanaan untuk penyiapan awal. Namun, metode ini mengharuskan Anda memastikan keamanan sistem file. Rotasi kunci dilakukan secara manual.
Tempatkan file JSON kunci pribadi setiap akun layanan di direktori yang dapat diakses oleh
komponen Apigee hybrid. Referensi jalur ke file ini dalam konfigurasi Anda
overrides.yaml menggunakan properti serviceAccountPath dan
envs[].serviceAccountPaths.
Contoh:
logger: serviceAccountPath: "my-project-apigee-logger.json"
Anda dapat membuat dan mendownload file kunci akun layanan menggunakan alat create-service-account yang disediakan dengan Apigee hybrid. Untuk mengetahui informasi selengkapnya, lihat
create-service-account.
Menyimpan kunci akun layanan di Vault
Integrasikan HashiCorp Vault untuk mengelola kunci akun layanan Anda. Vault menyediakan solusi yang kuat untuk pengelolaan secret, yang menawarkan fitur seperti pembuatan secret dinamis, audit, dan rotasi kunci otomatis. Metode ini mengharuskan Anda menyiapkan dan memelihara instance Vault.
Anda harus membuat secret, kebijakan, dan peran Vault terpisah untuk komponen tingkat organisasi dan tingkat lingkungan
komponen. Anda mereferensikan secret ini dalam overrides.yaml
konfigurasi menggunakan serviceAccountSecretProviderClass dan
envs[].serviceAccountSecretProviderClass properti.
Contoh:
serviceAccountSecretProviderClass: apigee-orgsakeys-spc envs: - name: my-env serviceAccountSecretProviderClass: apigee-envsakeys-my-env-spc
Lihat Menyimpan kunci akun layanan di Vault.
Workload Identity Federation for GKE
Workload Identity Federation for GKE memungkinkan akun layanan Kubernetes bertindak sebagai Google Cloud akun layanan. Metode ini sepenuhnya menghilangkan kebutuhan akan file kunci akun layanan. Sebagai gantinya, cluster GKE Anda langsung mengautentikasi workload menggunakan Google Cloud IAM. Workload Identity Federation for GKE menyediakan mekanisme autentikasi yang sangat aman dan otomatis, sehingga menyederhanakan pengelolaan kunci. Metode ini khusus untuk cluster GKE.
Metode ini mengharuskan Anda mengikat setiap akun layanan Kubernetes ke akun layanan tertentu Google Cloud . Proses penginstalan Apigee hybrid membuat akun layanan Kubernetes khusus untuk penginstalan Anda saat Anda menginstal chart Helm Apigee hybrid. Saat Anda menjalankan perintah helm install atau helm upgrade dengan flag --dry-run untuk setiap chart, output akan menyertakan perintah untuk mengikat akun layanan Kubernetes ke Google Cloud akun layanan untuk komponen Apigee hybrid tertentu dalam chart tersebut.
Anda mengaktifkan Workload Identity Federation for GKE di file overrides.yaml dengan properti gcp.workloadIdentity.enabled.
Contoh:
gcp: projectID: my-project region: us-west1 workloadIdentity: enabled: true
Lihat Mengaktifkan Workload Identity Federation for GKE.
Workload Identity Federation di platform selain GKE
Workload Identity Federation memperluas manfaat Workload Identity Federation for GKE ke cluster Kubernetes yang berjalan di luar Google Cloud, seperti Azure Kubernetes Service (AKS), Amazon Elastic Kubernetes Service (EKS), atau OpenShift. Metode ini memungkinkan cluster non-GKE Anda untuk mengautentikasi ke Google Cloud menggunakan penyedia OIDC cluster Anda untuk mengonfigurasi hubungan kepercayaan antara penyedia identitas cluster Anda dan Google Cloud. Setelah penyiapan awal, metode ini menghilangkan kebutuhan akan file kunci akun layanan.
Anda dapat menggunakan Workload Identity Federation dengan:
- File konfigurasi kredensial (sebagai pengganti file kunci akun layanan)
- Secret Kubernetes
- Vault
Untuk menggunakan Workload Identity Federation, Anda membuat file konfigurasi kredensial untuk setiap Google Cloud akun layanan. Anda menggunakan file ini sebagai pengganti file kunci akun layanan atau untuk menyiapkan secret Kubernetes atau Vault jika Anda menggunakan metode tersebut.
Anda mengaktifkan Workload Identity Federation di file overrides.yaml dengan properti gcp.federatedWorkloadIdentity.enabled, gcp.federatedWorkloadIdentity.audience, dan gcp.federatedWorkloadIdentity.credentialSourceFile.
Contoh:
gcp: projectID: my-project region: us-west1 federatedWorkloadIdentity: enabled: true audience: "//iam.googleapis.com/projects/123123123123/locations/global/workloadIdentityPools/my-wi-pool/providers/my-wi-provider" credentialSourceFile: "/var/run/service-account/token"
Lihat Mengaktifkan Workload Identity Federation.
Memilih Metode Autentikasi
Pilih metode autentikasi berdasarkan lingkungan deployment dan persyaratan keamanan Anda.
- Untuk deployment GKE, Workload Identity Federation for GKE menawarkan pendekatan yang aman dan efisien. Metode ini menghilangkan kebutuhan untuk mengelola file kunci akun layanan secara langsung.
- Untuk deployment Kubernetes non-GKE (AKS, EKS, OpenShift), Workload Identity Federation memberikan pengalaman autentikasi tanpa kunci yang serupa. Metode ini adalah pilihan yang direkomendasikan untuk lingkungan ini.
- Jika Workload Identity Federation for GKE atau Workload Identity Federation bukan merupakan opsi, pertimbangkan untuk menggunakan Vault untuk pengelolaan dan otomatisasi kunci terpusat.
- Untuk deployment yang lebih sederhana atau jika Anda tidak memiliki penyiapan Vault, menyimpan kunci di secret Kubernetes akan memberikan solusi Kubernetes native. Metode ini menawarkan keamanan yang lebih baik daripada penyimpanan file langsung.
- File kunci akun layanan langsung cocok untuk pengujian awal atau lingkungan tempat metode lain tidak memungkinkan. Namun, metode ini memerlukan pengelolaan dan rotasi kunci manual yang cermat.
Langkah berikutnya
- Lanjutkan perencanaan dan persiapan: Penggunaan port yang aman.
- Pelajari lebih lanjut akun layanan di Apigee hybrid: Tentang akun layanan.
- Menginstal Apigee hybrid: Bagian 1, Penyiapan project dan organisasi: Ringkasan.