Halaman ini menjelaskan cara memberikan izin cluster Google Kubernetes Engine (GKE) untuk mengakses database Spanner.
GKE adalah layanan Kubernetes terkelola yang memudahkan deployment dan pengelolaan aplikasi dalam container. Dengan menggunakan GKE dan Spanner secara bersamaan, Anda dapat memanfaatkan skalabilitas, keandalan, keamanan, dan ketersediaan tinggi di lapisan aplikasi dan di lapisan database.
Cluster GKE Anda dapat mengakses Spanner API melalui Workload Identity Federation for GKE. Workload Identity Federation untuk GKE memungkinkan akun layanan Kubernetes di cluster Anda bertindak sebagai akun layanan IAM. Akun layanan IAM menyediakan Kredensial Default Aplikasi untuk pod Anda, sehingga Anda tidak perlu mengonfigurasi setiap pod untuk menggunakan kredensial pengguna pribadi Anda.
Setelah mengonfigurasi aplikasi untuk melakukan autentikasi menggunakan Workload Identity Federation untuk GKE, Anda dapat menggunakan library klien Spanner untuk membuat kueri database Spanner. Anda juga dapat memigrasikan aplikasi ke node pool GKE.
Untuk membuat koneksi di lingkungan contoh, coba codelab Menghubungkan Spanner dengan GKE Autopilot.
Mengaktifkan Workload Identity Federation untuk GKE
Jika Anda belum melakukannya, aktifkan Workload Identity Federation for GKE untuk cluster GKE Anda. Anda dapat mengaktifkan Workload Identity Federation for GKE di cluster baru dengan membuat node pool baru atau mengaktifkan Workload Identity Federation for GKE di node pool yang ada. Cluster autopilot GKE mengaktifkan Workload Identity Federation for GKE secara default. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan Workload Identity Federation untuk GKE.
Mengautentikasi koneksi ke Spanner dengan Workload Identity Federation for GKE
Konfigurasikan aplikasi Anda untuk melakukan autentikasi ke Google Cloud menggunakan Workload Identity Federation untuk GKE.
Pastikan Pod GKE Anda menggunakan objek
ServiceAccount
Kubernetes, seperti yang dijelaskan dalam Mengonfigurasi otorisasi dan akun utama.Buat kebijakan izin IAM yang memberikan peran IAM Spanner yang diperlukan ke objek
ServiceAccount
Kubernetes. Contoh berikut memberikan peran Pengguna Database Spanner (roles/spanner.databaseUser
):gcloud projects add-iam-policy-binding PROJECT_ID \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME \ --role=roles/spanner.databaseUser \ --condition=None
Ganti kode berikut:
PROJECT_ID
: Project ID cluster GKE.PROJECT_NUMBER
: Nomor project Google Cloud berbentuk angka.NAMESPACE
: Namespace Kubernetes yang berisi ServiceAccount.KSA_NAME
: Nama ServiceAccount.
Menghubungkan database Spanner
Setelah Pod aplikasi diautentikasi, Anda dapat menggunakan salah satu library klien Spanner untuk membuat kueri database Spanner.
Langkah selanjutnya
- Pelajari cara men-deploy aplikasi ke cluster GKE.
- Pelajari cara men-deploy aplikasi menggunakan GKE Autopilot dan Spanner.
- Pelajari lebih lanjut cara memigrasikan workload yang ada ke Workload Identity Federation for GKE.
- Pelajari lebih lanjut praktik terbaik SQL.
- Integrasikan Spanner dengan ORM lain, termasuk Hibernate ORM, gorm, dan Django ORM.