Autentikasi database IAM Cloud SQL

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

Pengantar

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

Autentikasi adalah proses verifikasi identitas pengguna yang mencoba 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 secara langsung kepada pengguna akhir. Sebagai gantinya, izin dikelompokkan ke dalam peran, dan peran diberikan ke utama. Untuk mengetahui informasi selengkapnya, lihat ringkasan IAM.

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

  • Utama. Di Cloud SQL, Anda dapat menggunakan dua jenis akun utama Akun pengguna, dan akun layanan (untuk aplikasi). Jenis utama lainnya, seperti grup Google, domain Google Workspace, atau domain Cloud Identity tidak didukung untuk autentikasi database IAM. Untuk mengetahui informasi selengkapnya, lihat Konsep yang terkait dengan identitas.
  • Peran. Untuk autentikasi database IAM, pengguna memerlukan cloudsql.instances.login izin untuk login ke instance. Untuk mendapatkan izin ini, Anda mengikat pengguna atau akun layanan ke peran bawaan Cloud SQL pengguna Instance yang telah ditetapkan atau peran khusus yang memadukan izin tersebut. Untuk mengetahui informasi selengkapnya tentang peran IAM, lihat Peran.
  • Resource. Resource yang diakses 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 PostgreSQL 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 konektor Cloud SQL perantara, seperti Proxy Auth Cloud SQL. 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 Proxy Auth Cloud SQL, Konektor Go, Konektor Java, Konektor Python.

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

Untuk mengetahui informasi selengkapnya, lihat Login dengan autentikasi database IAM otomatis.

Autentikasi database IAM manual

Autentikasi database IAM manual mengharuskan akun utama IAM secara eksplisit meneruskan token akses untuk atribut sandi dalam permintaan koneksi klien. Akun utama harus login ke Google Cloud terlebih 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. Ketika login sebagai pengguna database dengan autentikasi database IAM, Anda menggunakan 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.

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

Untuk mengetahui informasi selengkapnya, lihat Logging dengan autentikasi database IAM manual.

Administrasi akun layanan dan pengguna

Untuk memberi pengguna dan akun layanan akses ke database pada instance menggunakan autentikasi database IAM, Anda harus menambahkannya ke instance. Untuk mengetahui informasi selengkapnya, 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 "pengguna Cloud SQL" kepada pengguna. Peran ini diperlukan bagi pengguna untuk login ke instance.

Jika menambahkan pengguna menggunakan gcloud atau API, Anda perlu memberi izin hak istimewa login secara manual. Gunakan perintah BERI IZIN PostgreSQL untuk memberi izin hak istimewa database.

Konfigurasi instance untuk autentikasi database IAM Cloud SQL

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

Setelan 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 mengetahui informasi selengkapnya, lihat Mengonfigurasi instance untuk autentikasi database IAM.

Autentikasi database IAM Cloud SQL untuk berbagai skenario instance

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 mengetahui informasi selengkapnya, lihat Mengonfigurasi login replika baca untuk autentikasi database IAM.
Instance yang dipulihkan Jika instance sebelumnya dicadangkan lalu dipulihkan ke instance yang sama atau berbeda dalam project yang sama, otorisasi login 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 mengetahui informasi selengkapnya, lihat Menambahkan pengguna atau akun layanan yang menggunakan autentikasi database IAM.

Bekerja dengan Cloud Audit Logs

Untuk menyimpan kumpulan data akses data, termasuk login, Anda dapat menggunakan log audit. Cloud Audit Logs dinonaktifkan secara default. Anda harus mengaktifkan Log audit Akses Data untuk login tracking. Penggunaan logging audit untuk tujuan ini akan dikenakan biaya untuk logging data. Untuk mengetahui informasi selengkapnya, lihat Log Audit, Mengonfigurasi Log audit Akses Data dan Harga untuk data logging.

Pembatasan

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

Langkah berikutnya