Autentikasi database IAM Cloud SQL

Halaman ini menjelaskan cara kerja autentikasi database IAM pada instance Cloud SQL, bagaimana pengaruhnya terhadap pembuatan akun layanan dan pengguna, serta login dari akun tersebut.

Pengantar

Cloud SQL terintegrasi dengan Identity and Access Management (IAM) untuk membantu Anda mengelola akses login bagi pengguna dan akun layanan untuk database dengan lebih baik. Fitur ini disebut autentikasi database IAM.

Autentikasi adalah proses verifikasi identitas pengguna yang berupaya mengakses sebuah instance. Cloud SQL menggunakan jenis autentikasi berikut untuk pengguna database:

  • Autentikasi bawaan database menggunakan nama pengguna dan sandi untuk mengautentikasi pengguna database.
  • Autentikasi database IAM menggunakan IAM untuk mengautentikasi pengguna dengan menggunakan token akses.

Autentikasi IAM untuk Cloud SQL

Saat menggunakan autentikasi IAM, izin untuk mengakses resource (instance Cloud SQL) tidak diberikan langsung kepada pengguna akhir. Sebagai gantinya, izin dikelompokkan ke dalam beberapa peran, dan peran tersebut diberikan kepada akun utama. Untuk informasi lebih lanjut, lihat Ringkasan IAM.

Administrator yang memiliki pengguna yang login melalui autentikasi database IAM dapat menggunakan IAM untuk mengelola kontrol akses ke instance mereka secara terpusat menggunakan kebijakan IAM. Kebijakan IAM mencakup entity berikut:

  • Akun utama. Di Cloud SQL, Anda dapat menggunakan dua jenis akun utama: akun pengguna, dan akun layanan (untuk aplikasi). Jenis akun utama lainnya, seperti grup Google, domai Google Workspace, atau domain Cloud Identity tidak didukung oleh autentikasi database IAM. Untuk informasi lebih lanjut, lihat Konsep yang terkait dengan identitas.
  • Peran. Untuk autentikasi database IAM, pengguna memerlukan izin cloudsql.instances.login untuk login ke instance. Untuk mendapatkan izin ini, Anda mengikat pengguna atau akun layanan ke peran Pengguna Instance Cloud SQL yang telah ditentukan sebelumnya atau peran khusus yang memadukan izin tersebut. Untuk informasi lebih lanjut mengenai peran IAM, lihat Peran.
  • Resource. Resource yang diakses akun utama adalah instance Cloud SQL. Secara default, binding kebijakan IAM diterapkan di level project, sehingga akun utama menerima izin peran untuk semua instance Cloud SQL dalam project.

Opsi autentikasi database IAM

Cloud SQL untuk MySQL memiliki dua opsi untuk autentikasi database IAM: otomatis dan manual.

Autentikasi database IAM otomatis

Autentikasi database IAM otomatis memungkinkan Anda menyerahkan permintaan dan pengelolaan token akses ke perantara konektor Cloud SQL, seperti Cloud SQL Auth Proxy. Dengan autentikasi database IAM otomatis, pengguna hanya perlu meneruskan nama pengguna database IAM dalam permintaan koneksi dari klien. Konektor mengirimkan informasi token akses untuk atribut sandi atas nama klien.

Autentikasi database IAM otomatis memerlukan penggunaan konektor Cloud SQL. Saat ini didukung oleh Cloud SQL Auth Proxy, konektor Go, konektor Java, dan konektor Phython.

Untuk pengalaman yang paling aman dan terpercaya, sebaiknya gunakan autentikasi database IAM otomatis. Autentikasi database IAM menggunakan token akses OAuth 2.0, yang berumur pendek dan hanya berlaku selama satu jam. Konektor Cloud SQL dapat meminta dan memperbarui token ini, untuk memastikan bahwa aplikasi atau proses tersebut berumur panjang yang mengandalkan penggabungan koneksi dapat memiliki koneksi yang stabil. Autentikasi database IAM otomatis lebih direkomendasikan daripada autentikasi manual.

Untuk informasi lebih lanjut, lihat Login dengan autentikasi database IAM otomatis.

Autentikasi database IAM manual

Autentikasi database IAM manual mengharuskan akun utama IAM untuk secara eksplisit meneruskan token akses untuk atribut sandi pada permintaan koneksi klien. Akun utama harus login ke Google Cloud tersebih dahulu dan secara eksplisit meminta token akses dari IAM.

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. Saat Anda login sebagai pengguna database dengan autentikasi database IAM, gunakan alamat email Anda sebagai nama pengguna dan token akses sebagai sandi. Anda dapat menggunakan metode ini dengan koneksi langsung ke database atau dengan konektor Cloud SQL.

Login dengan autentikasi database IAM hanya dapat dilakukan melalui koneksi SSL.

Untuk informasi lebih lanjut, lihat Login dengan autentikasi database IAM manual.

Administrasi akun layanan dan pengguna

Untuk memberi akses ke database pada instance bagi pengguna dan akun layanan menggunakan autentikasi database IAM, Anda harus menambahkannya ke instance. Untuk informasi lebih lanjut, lihat Menambahkan akun pengguna atau layanan yang menggunakan IAM.

Jika Anda menggunakan konsol Google Cloud untuk menambahkan pengguna atau akun layanan, Cloud SQL akan meminta Anda menambahkan peran "Cloud SQL User" kepada pengguna. Peran ini diperlukan bagi pengguna untuk login ke instance.

Setelah menambahkan pengguna IAM ke database, Anda perlu memberikan hak istimewa database secara manual. Gunakan perintah BERIKAN MySQL untuk memberikan hak istimewa database lainnya.

Konfigurasi instance untuk autentikasi database IAM Cloud SQL

Anda dapat mengaktifkan autentikasi database IAM pada instance menggunakan flag cloudsql_iam_authentication. Setelah flag ini diaktifkan, instance akan mengaktifkan login dari akun yang dikonfigurasi untuk autentikasi database IAM.

Menyetel flag ini tidak akan mencegah pengguna non-IAM yang sudah ada menggunakan nama pengguna dan sandi mereka untuk login. Namun jika Anda menonaktifkan flag ini pada instance, setiap pengguna yang sebelumnya Anda tambahkan menggunakan autentikasi database IAM akan kehilangan akses ke instance tersebut. Untuk informasi lebih lanjut, lihat Mengonfigurasi instance untuk autentikasi database IAM.

Autentikasi database IAM Cloud SQL untuk skenario instance berbeda

Replika baca Autentikasi database IAM tidak diaktifkan secara otomatis dalam replika baca, meskipun sudah diaktifkan di instance utama. Setelah membuat replika baca, Anda perlu menambahkan autentikasi database IAM. Untuk informasi lebih lanjut, lihat Mengonfigurasi login replika baca untuk autentikasi database IAM.
Instance yang dipulihkan Jika instance sebelumnya dicadangkan lalu dipulihkan ke instance yang sama atau instance yang berbeda dalam project yang sama, otorisasi pengguna saat ini akan berlaku. Jika Anda memulihkan cadangan ke instance baru di project lain, Anda perlu menyiapkan otorisasi pengguna untuk instance baru tersebut. Untuk informasi lebih lanjut, lihat Menambahkan akun pengguna atau layanan yang menggunakan autentikasi database.

Bekerja dengan Cloud Audit Logs

Untuk menyimpan catatan akses data, termasuk login, Anda dapat menggunakan log audit. Cloud Audit Logs dimatikan oleh default. Anda perlu menyalakan Log audit Akses Data untuk pelacakan login. Penggunaan log audit untuk tujuan ini akan mengeluarkan biaya untuk logging data. Untuk informasi lebih lanjut, lihat Log Audit, Mengonfigurasi log audit Akses Data, dan Harga untuk logging data.

Pembatasan

  1. Untuk keamanan, login yang menggunakan autentikasi database IAM hanya tersedia di koneksi SSL. Koneksi yang tidak terenkripsi akan ditolak.
  2. Terdapat kuota login per menit untuk setiap instance, termasuk login yang berhasil dan gagal. Jika kuota tersebut terlampaui, login tidak akan tersedia untuk sementara waktu. Sebaiknya hindari login terlalu sering dan batasi login menggunakan jaringan resmi. Kuota untuk otorisasi login adalah 3000 per menit, per instance.
  3. Autentikasi database IAM tidak didukung untuk instance yang menggunakan MySQL 5.6.

Langkah berikutnya