Google Cloud menawarkan Identity and Access Management (IAM), yang memungkinkan Anda memberikan akses ke resource Google Cloud tertentu dan mencegah akses yang tidak diinginkan ke resource lain. Halaman ini menjelaskan cara Cloud SQL diintegrasikan dengan IAM dan cara Anda dapat menggunakan IAM untuk autentikasi database. Untuk penjelasan lengkap tentang Google Cloud IAM, lihat dokumentasi IAM.
Cloud SQL menyediakan serangkaian peran standar yang dirancang untuk membantu Anda mengontrol akses ke resource Cloud SQL. Anda juga dapat membuat peran khusus Anda sendiri, jika peran yang telah ditetapkan tidak menyediakan serangkaian izin yang Anda perlukan. Selain itu, peran dasar lama (Editor, Viewer, dan Pemilik) juga masih tersedia untuk Anda, meskipun tidak memberikan kontrol terperinci yang sama dengan peran Cloud SQL. Secara khusus, peran dasar memberikan akses ke resource di Google Cloud, bukan hanya untuk Cloud SQL. Untuk mengetahui informasi selengkapnya tentang peran dasar Google Cloud, lihat Peran dasar.
Anda dapat menetapkan kebijakan IAM di semua level dalam hierarki resource: di level organisasi, level folder, atau level project. Resource mewarisi kebijakan semua resource induknya.
Referensi IAM untuk Cloud SQL
- Izin yang diperlukan untuk tugas umum di Konsol Google Cloud
- Izin yang diperlukan untuk perintah
gcloud sql
- Izin yang diperlukan untuk metode Cloud SQL Admin API
- Peran IAM Cloud SQL yang telah ditetapkan
- Izin dan perannya
- Peran khusus
Konsep autentikasi IAM
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 mengetahui informasi selengkapnya, lihat Konsep yang terkait dengan identitas.
- Peran. Untuk autentikasi database IAM, akun utama memerlukan izin
cloudsql.instances.login
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.
Autentikasi database IAM
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.
Bandingkan opsi autentikasi database
Tabel berikut membandingkan berbagai metode autentikasi database untuk Cloud SQL.
Fitur | Autentikasi database bawaan | Autentikasi database IAM |
---|---|---|
Metode autentikasi | Sandi | Token autentikasi sementara |
Enkripsi traffic jaringan | SSL tidak diperlukan | Perlu SSL |
Pengelolaan pengguna | Manual | Terpusat melalui IAM |
Autentikasi database IAM otomatis versus manual
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. Ini didukung oleh Cloud SQL Auth Proxy, konektor Go, konektor Java, dan 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 akun 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 menggunakangcloud
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. |
Tentang IAM Conditions
Dengan IAM Conditions, Anda dapat memberikan peran berdasarkan berbagai atribut. Misalnya, Anda dapat mengizinkan akses hanya pada tanggal dan waktu tertentu atau memberikan akses hanya ke resource Cloud SQL dengan nama tertentu.
Untuk mengetahui informasi selengkapnya tentang IAM Conditions lihat halaman Ringkasan IAM Conditions Anda juga dapat mempelajari lebih lanjut cara Menggunakan Kondisi IAM dengan Cloud SQL, termasuk contohnya.
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
- Untuk keamanan, login yang menggunakan autentikasi database IAM hanya tersedia di koneksi SSL. Koneksi yang tidak terenkripsi ditolak.
- 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 12.000 per menit, per instance.
Langkah selanjutnya
- Pelajari cara mengonfigurasi instance untuk autentikasi database IAM.
- Pelajari cara menambahkan pengguna atau akun layanan yang menggunakan autentikasi database IAM ke database Anda.
- Pelajari cara login ke database Cloud SQL dengan autentikasi database IAM.
- Pelajari cara melihat informasi login di log audit.