Halaman ini menjelaskan cara pengguna dan akun layanan dapat login ke database Cloud SQL menggunakan autentikasi database IAM Cloud SQL. Untuk mengetahui informasi lebih lanjut, lihat autentikasi IAM.
Sebelum memulai
- Konfigurasikan instance untuk menggunakan autentikasi database IAM. Untuk informasi selengkapnya, lihat Mengonfigurasi instance baru untuk autentikasi database IAM.
- Tambahkan pengguna, akun layanan, atau grup IAM ke database. Untuk mengetahui informasi selengkapnya, lihat Menambahkan akun layanan atau pengguna IAM ke database dan Menambahkan grup ke database.
- Tambahkan peran IAM
roles/cloudsql.instanceUser
ke pengguna, akun layanan, atau grup IAM Anda. Peran ini merupakan peran bawaan dan berisi izincloudsql.instances.login
IAM Cloud SQL yang diperlukan. Anda memerlukan izin ini untuk login ke instance database dengan autentikasi database IAM. Untuk informasi selengkapnya, lihat Peran dan izin. - Saat pengguna IAM ditambahkan ke database, pengguna database baru tersebut tidak memiliki hak istimewa
ke database mana pun secara default. Anda harus
menggunakan perintah
GRANT
untuk memberi pengguna database IAM izin yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Memberikan hak istimewa database kepada Pengguna IAM dan Memberikan hak istimewa database ke grup. - Jika Anda menggunakan autentikasi grup IAM, pengguna atau akun layanan IAM harus merupakan anggota grup yang telah diberi peran IAM atau izin untuk login ke instance Cloud SQL. Cloud SQL membuat akun setelah pengguna atau akun layanan login ke instance untuk pertama kalinya. Autentikasi grup IAM berada di Pratinjau.
Login dengan autentikasi database IAM otomatis
Anda dapat mengonfigurasi konektor Cloud SQL agar secara otomatis menangani autentikasi ke instance Cloud SQL atas nama pengguna atau aplikasi. Konektor mencakup Proxy Auth Cloud SQL, konektor Go, konektor Java, dan konektor Python, yang semuanya mendukung autentikasi database IAM otomatis. Saat menggunakan konektor Cloud SQL dengan autentikasi database IAM otomatis, akun IAM yang Anda gunakan untuk memulai konektor harus akun yang sama saat mengautentikasi database.Untuk login menggunakan autentikasi database IAM otomatis:
Proxy Auth Cloud SQL
Lakukan autentikasi ke Google Cloud.
User
Melakukan autentikasi ke Google Cloud menggunakan Kredensial Default Aplikasi (ADC).
Gunakan perintah
gcloud auth application-default login
. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan Kredensial Default Aplikasi.Service account
Untuk melakukan autentikasi ke Google Cloud menggunakan ADC dengan akun layanan, Anda dapat menggunakan peniruan akun layanan atau menyiapkan kunci akun layanan. Jika Anda ingin melakukan autentikasi dengan peniruan akun layanan, ganti SERVICE_ACCOUNT_EMAIL_ADDRESS, dan jalankan perintah berikut:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCOUNT_EMAIL_ADDRESS
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan Kredensial Default Aplikasi.
Memulai Proxy Auth Cloud SQL dengan flag
--auto-iam-authn
Ganti INSTANCE_CONNECTION_NAME dengan string koneksi yang digunakan untuk mengidentifikasi instance Cloud SQL. Jika Anda menggunakan port selain port MySQL default, tentukan nomor port-nya. Untuk mengetahui informasi lebih lanjut mengenai cara menemukan dan membuat string ini, baca bagian Opsi untuk mengautentikasi Proxy Auth Cloud SQL../cloud-sql-proxy --auto-iam-authn INSTANCE_CONNECTION_NAME
Untuk mengetahui informasi selengkapnya tentang cara memulai proxy, lihat Memulai Proxy Auth Cloud SQL.
Setelah Anda siap untuk terhubung ke instance dengan menggunakan Proxy Auth Cloud SQL, login dengan klien
mysql
. Ganti kode berikut:- HOSTNAME: Alamat IP yang digunakan oleh Auth Proxy Cloud SQL. Secara default,
Proxy Auth Cloud SQL menggunakan alamat localhost
127.0.0.1
, tetapi Anda dapat menetapkan alamat IP yang berbeda saat memulai Proxy Auth Cloud SQL. - USERNAME: Untuk akun pengguna IAM, ini adalah alamat email pengguna, tanpa simbol
@
atau nama domain. Misalnya, untuk[email protected]
, masukkantest-user
. Untuk akun layanan, ini adalah alamat email akun layanan tanpa akhiran@project-id.iam.gserviceaccount.com
. - PORT_NUMBER: Opsional. Jika Anda menentukan port yang berbeda dalam string koneksi instance, tentukan nomor port tersebut.
Jalankan perintah berikut:
mysql --host=HOSTNAME \ --user=USERNAME \ --port=PORT_NUMBER
Untuk mengetahui informasi selengkapnya tentang cara terhubung ke Proxy Auth Cloud SQL, lihat Menghubungkan dengan klien mysql.
- HOSTNAME: Alamat IP yang digunakan oleh Auth Proxy Cloud SQL. Secara default,
Proxy Auth Cloud SQL menggunakan alamat localhost
Go
JDBC Java
R2DBC Java
Python
Login dengan autentikasi database IAM manual
Pengguna atau aplikasi dapat melakukan autentikasi ke database menggunakan IAM dengan meminta token akses secara manual dari Google Cloud dan menyajikannya ke database. Dengan menggunakan gcloud CLI, Anda dapat secara eksplisit meminta token OAuth 2.0 dengan cakupan Cloud SQL Admin API yang digunakan untuk login ke database. Ketika Anda login sebagai pengguna database dengan autentikasi database IAM manual, Anda menggunakan alamat email Anda sebagai nama pengguna dan token akses sebagai sandinya. Anda dapat menggunakan metode ini dengan koneksi langsung ke database atau dengan konektor Cloud SQL.
Dalam prosedur ini, Anda melakukan autentikasi ke Google Cloud, meminta token akses, dan kemudian terhubung ke database dengan meneruskan token sebagai sandi untuk pengguna database IAM. Gunakan langkah-langkah ini untuk terhubung tanpa Proxy Auth Cloud SQL.
Untuk langkah-langkah ini, Anda harus:
- Gunakan opsi --enable-cleartext-plugin
mysql
. - Jika Anda terhubung ke instance dengan IP publik, izinkan akses eksternal ke instance tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengotorisasi alamat IP komputer Anda untuk IP publik.
- Jika Anda terhubung ke instance dengan IP pribadi, jalankan perintah dalam jaringan Virtual Private Cloud (VPC).
- Gunakan perintah
gcloud sql generate-login-token
untuk membuat token autentikasi.
Untuk login menggunakan autentikasi database IAM manual:
gcloud
Lakukan autentikasi ke Google Cloud.
Pengguna
Lakukan autentikasi ke IAM menggunakan
gcloud auth login
. Untuk mengetahui informasi selengkapnya, lihat Memberikan otorisasi dengan akun pengguna.Service account
Lakukan autentikasi ke IAM menggunakan
gcloud auth activate-service-account
. Untuk mengetahui informasi selengkapnya, lihat Memberikan otorisasi dengan akun layanan.Minta token akses, dan login dengan klien.
Ganti kode berikut:
- HOSTNAME: Alamat IP instance, baik alamat IP publik maupun alamat IP pribadi.
- USERNAME: Untuk akun pengguna IAM, ini adalah alamat email pengguna, tanpa simbol
@
atau nama domain. Misalnya, untuk[email protected]
, masukkantest-user
. Untuk akun layanan, ini adalah alamat email akun layanan tanpa akhiran@project-id.iam.gserviceaccount.com
.
MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=REQUIRED \ --host=HOSTNAME \ --user=USERNAME
Jika
ssl_mode
pada instance Cloud SQL Anda dikonfigurasikan keTRUSTED_CLIENT_CERTIFICATE_REQUIRED
, sertakan sertifikat klien dan kunci klien saat Anda login. Selain itu, untuk mengizinkan klien memverifikasi identitas server untuk autentikasi bersama, tentukan sertifikat serverserver-ca.pem
. Contoh:MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=VERIFY_CA \ --ssl-ca=server-ca.pem \ --ssl-cert=client-cert.pem \ --ssl-key=client-key.pem \ --host=HOSTNAME \ --user=USERNAME
Untuk mendapatkan informasi tentang cara membuat kunci dan sertifikat klien, lihat Sertifikat klien.
Langkah selanjutnya
- Pelajari autentikasi database IAM lebih lanjut.
- Pelajari cara mengaktifkan dan melihat informasi login di log audit.
- Pelajari cara membuat akun pengguna dan layanan yang menggunakan autentikasi database IAM Cloud SQL.
- Pelajari cara menambahkan binding kebijakan IAM ke akun pengguna atau layanan.
- Pelajari cara mengelola akun pengguna dan layanan untuk autentikasi database IAM.