Halaman ini menjelaskan cara memberikan izin cluster Google Kubernetes Engine (GKE) untuk mengakses database Spanner Anda.
GKE adalah layanan Kubernetes terkelola yang memudahkan Anda men-deploy dan mengelola aplikasi dalam container. Dengan menggunakan GKE dan Spanner secara bersamaan, Anda dapat memanfaatkan skalabilitas, keandalan, keamanan, dan ketersediaan tinggi di lapisan aplikasi dan lapisan database Anda.
Cluster GKE Anda dapat mengakses Spanner API melalui Workload Identity. Dengan Workload Identity, akun layanan Kubernetes di cluster Anda dapat berfungsi 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.
Setelah mengonfigurasi aplikasi untuk melakukan autentikasi menggunakan Workload Identity, Anda dapat menggunakan library klien Spanner untuk mengkueri database Spanner. Anda juga dapat memigrasikan aplikasi ke kumpulan node GKE.
Untuk membuat koneksi di lingkungan contoh, coba codelab Menghubungkan Spanner dengan GKE Autopilot.
Aktifkan Workload Identity
Jika belum melakukannya, aktifkan Workload Identity untuk cluster GKE Anda. Anda dapat mengaktifkan Workload Identity di cluster baru dengan membuat kumpulan node baru atau mengaktifkan Workload Identity di kumpulan node yang ada. Cluster autopilot GKE telah mengaktifkan Workload Identity secara default. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan Workload Identity.
Mengautentikasi koneksi ke Spanner dengan Workload Identity
Konfigurasikan aplikasi Anda untuk melakukan autentikasi ke Google Cloud menggunakan Workload Identity.
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 numerik.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 Anda ke cluster GKE.
- Pelajari cara men-deploy aplikasi Anda menggunakan GKE Autopilot dan Spanner.
- Pelajari lebih lanjut cara memigrasikan beban kerja yang ada ke Workload Identity.
- Pelajari praktik terbaik SQL lebih lanjut.
- Integrasikan Spanner dengan ORM lain, termasuk Hibernate ORM, gorm, dan Django ORM.