Untuk melakukan autentikasi ke instance AlloyDB untuk PostgreSQL menggunakan
kredensial Identity and Access Management (IAM), bukan sandi database bawaan,
Anda dapat login dengan token akses OAuth 2.0 atau mengonfigurasi autentikasi
IAM otomatis. Anda juga dapat melakukan login berbasis IAM menggunakan klien command line psql.
Untuk ringkasan tentang cara terhubung ke instance AlloyDB, lihat Ringkasan koneksi.
Sebelum memulai
Project, cluster, instance, dan akun pengguna IAM Anda semuanya memerlukan persiapan sebelum Anda dapat login ke instance AlloyDB menggunakan kredensial IAM.
Untuk mengetahui informasi selengkapnya, lihat Mengelola autentikasi IAM.
Melakukan autentikasi dengan token OAuth 2.0
Pengguna atau aplikasi dapat melakukan autentikasi dengan database AlloyDB dengan mengikuti langkah-langkah berikut:
Jika Anda belum melakukannya, lakukan autentikasi untuk Google Cloud CLI menggunakan akun pengguna atau akun layanan yang sama dengan yang ingin Anda gunakan untuk login ke instance AlloyDB.
Minta token OAuth 2.0 dari Google Cloud menggunakan perintah
gcloud auth print-access-token:gcloud auth print-access-tokenGoogle Cloud mencetak token OAuth 2.0 sebagai output dari perintah ini.
Untuk keamanan tambahan, Anda dapat membatasi token agar hanya digunakan dengan autentikasi AlloyDB dengan mengikuti langkah-langkah alternatif berikut:
Tambahkan cakupan
alloydb.loginke kredensial akses lingkungan Anda saat ini menggunakan perintahgcloud auth application-default login, jika Anda belum melakukannya:gcloud auth application-default login --scopes=https://www.googleapis.com/auth/alloydb.login,https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/userinfo.email,openidCetak token OAuth 2.0 yang dibatasi menggunakan perintah
gcloud auth application-default print-access-token, yang mencakup token hanya untuk autentikasi AlloyDB:gcloud auth application-default print-access-token --scopes=https://www.googleapis.com/auth/alloydb.login
Token OAuth 2.0 memungkinkan Anda—atau siapa pun—membuat permintaan terautentikasi ke Google Cloud atas nama Anda. Perlakukan token dengan tingkat keamanan yang sama seperti sandi. Simpan token dengan aman, atau hindari menyimpannya sama sekali. Contoh penggunaan
psqldi bagian selanjutnya pada halaman ini menunjukkan cara meminta, menggunakan, dan menghapus token OAuth 2.0 dalam satu tindakan.Login ke instance AlloyDB dengan teknik PostgreSQL standar, menggunakan kredensial berikut:
Tunjukkan token akses yang Anda peroleh di langkah sebelumnya sebagai sandi Anda.
Untuk akun pengguna IAM, nama pengguna database adalah alamat email lengkap akun.
Untuk akun layanan IAM, nama pengguna database adalah alamat email akun tanpa akhiran
.gserviceaccount.com.
Perintah psql berikut menunjukkan salah satu cara untuk login ke
pengguna IAM di command line. Perintah ini menetapkan output gcloud
auth print-access-token ke variabel lingkungan PGPASSWORD, yang kemudian digunakan psql sebagai sandi login database.
PGPASSWORD=$(gcloud auth print-access-token) psql \
-h INSTANCE_ADDRESS \
-U USERNAME \
-d DATABASEGanti kode berikut:
INSTANCE_ADDRESS: Alamat IP instance AlloyDB yang akan dihubungkan.USERNAME: ID untuk pengguna IAM yang akan diautentikasi dengan instance.Untuk akun pengguna IAM, berikan alamat email lengkap akun pengguna. Misalnya,
kai@example.com.Untuk akun layanan IAM, berikan alamat akun layanan tanpa akhiran
.gserviceaccount.com. Misalnya, untuk menentukan akun layananmy-service@my-project.iam.gserviceaccount.com, Anda akan menggunakan nilaimy-service@my-project.iamdi sini.DATABASE: Nama database yang akan dihubungkan.
Perhatikan bahwa psql memotong sandi yang dimasukkan di command line yang lebih panjang
dari 100 karakter. Untuk menggunakan psql dengan token OAuth 2.0 sebagai sandi login,
Anda harus menetapkan variabel lingkungan PGPASSWORD seperti yang ditunjukkan dalam contoh
ini, bukan menempelkannya secara manual saat diminta.
Melakukan autentikasi secara otomatis
Untuk mengautentikasi pengguna AlloyDB berbasis IAM secara otomatis tanpa memerlukan token OAuth 2.0, Anda memiliki dua opsi: Proxy Auth AlloyDB dan Konektor Bahasa AlloyDB.
Akun IAM yang Anda gunakan untuk menjalankan
klien proxy atau Language Connector harus sama dengan
akun yang Anda tambahkan sebagai pengguna database. Misalnya, jika Anda menjalankan workload
menggunakan akun pengguna IAM kai@example.com, Anda dapat menggunakan
klien proxy atau Language Connector untuk
mengautentikasi pengguna database kai@example.com secara otomatis tanpa
menentukan token OAuth 2.0. Dalam contoh ini, autentikasi otomatis tidak
berfungsi dengan pengguna database lain kecuali untuk kai@example.com.
Proxy Auth
Penggunaan Proxy Auth memerlukan menjalankan klien Proxy Auth dengan flag --auto-iam-authn diaktifkan.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan Proxy Auth, lihat Terhubung menggunakan Proxy Auth AlloyDB.
Konektor Bahasa
Penggunaan Language Connector memerlukan pengaktifan autentikasi IAM secara terprogram. Untuk Konektor Python AlloyDB, autentikasi IAM otomatis (enable_iam_auth=True) didukung dengan driver pg8000 dan asyncpg. Ada opsi yang sesuai untuk setiap bahasa di Mengonfigurasi Konektor Bahasa AlloyDB.