Autentikasi database Identity and Access Management (IAM) memungkinkan Anda mengontrol dan mengelola akses ke database AlloyDB untuk PostgreSQL menggunakan kebijakan IAM terpusat, bukan sandi database.
Autentikasi database IAM menawarkan opsi berikut:
- Autentikasi IAM individual: Anda menambahkan pengguna atau akun layanan tertentu ke cluster.
- Autentikasi IAM grup: Anda menambahkan grup IAM ke cluster, dan semua anggota grup tersebut mewarisi izin untuk melakukan autentikasi.
Autentikasi individu berguna saat Anda perlu memberikan akses ke akun tertentu secara langsung. Autentikasi grup memungkinkan Anda mengelola akses database dengan mengubah keanggotaan grup, sehingga mengurangi kebutuhan untuk menambahkan atau menghapus pengguna individual di tingkat cluster.
Konsep autentikasi IAM
Saat Anda menggunakan autentikasi IAM, izin untuk mengakses instance AlloyDB tidak diberikan langsung kepada pengguna akhir. Sebagai gantinya, izin dikelompokkan ke dalam beberapa peran, dan peran tersebut diberikan kepada akun utama. Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM, 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 AlloyDB, Anda dapat menggunakan akun pengguna, akun layanan untuk aplikasi, atau grup IAM. Untuk mengetahui informasi selengkapnya tentang akun utama, lihat Akun utama.
Peran: untuk autentikasi database IAM, akun utama memerlukan izin
alloydb.users.login, yang disertakan dalam peran Pengguna Database AlloyDB (roles/alloydb.databaseUser), dan peran Service Usage Consumer (roles/serviceusage.serviceUsageConsumer). Untuk memberikan izin ini, ikat pengguna, akun layanan, atau grup ke peran yang telah ditetapkan ini atau peran khusus yang menyertakan izin yang diperlukan. Untuk mengetahui informasi selengkapnya tentang peran dan izin, lihat Izin dan peran.Resource: resource yang diakses akun utama adalah cluster AlloyDB. Binding kebijakan IAM diterapkan di level project, sehingga akun utama menerima izin peran untuk semua instance AlloyDB dalam project. Untuk mengetahui informasi selengkapnya tentang resource, lihat Resource.
Membandingkan opsi autentikasi database
Gunakan tabel berikut untuk membantu Anda memutuskan metode autentikasi mana yang paling sesuai untuk kasus penggunaan Anda.
| 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
AlloyDB menawarkan dua metode 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 AlloyDB perantara, seperti Proxy Auth atau salah satu Konektor Bahasa.
Dengan autentikasi database IAM otomatis, aplikasi 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 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.
Untuk menyimpan kumpulan data akses data, termasuk login, Anda dapat menggunakan Cloud Audit Logs. Cloud Audit Logs dinonaktifkan secara default. Aktifkan log audit Akses Data untuk pelacakan login.
Autentikasi grup IAM
Autentikasi grup IAM memungkinkan Anda mengelola pengguna AlloyDB di tingkat grup pada cluster baru dan yang sudah ada, misalnya dengan menggunakan grup Cloud Identity. Anda dapat mengelola peran dan izin PostgreSQL untuk beberapa pengguna IAM sekaligus, alih-alih memperbarui setiap pengguna atau akun layanan satu per satu. Saat Anda memberikan atau mencabut peran database untuk grup Cloud Identity, akun apa pun yang Anda tambahkan ke grup tersebut akan mewarisi hak istimewa dan peran grup.
Untuk mengaktifkan autentikasi grup IAM pada instance, tetapkan flag database alloydb.iam_authentication dan alloydb.iam_group_authentication ke on.
Dengan menggunakan autentikasi grup IAM, Anda dapat melakukan hal berikut:
Aktifkan autentikasi grup di cluster baru dan yang sudah ada tanpa patching cluster manual.
Tambahkan pengguna ke grup agar pengguna mewarisi peran IAM dan hak istimewa database secara otomatis.
Hapus pengguna dari grup untuk mencabut akses login dan hak istimewa database mereka di seluruh cluster AlloyDB.
Memberikan atau mencabut izin login dan akses ke objek database untuk seluruh grup sekaligus, bukan memperbarui akun satu per satu.
Login langsung ke AlloyDB Studio di konsol Google Cloud , instance utama, atau instance kumpulan baca, termasuk login pertama kali langsung ke instance kumpulan baca tanpa terlebih dahulu terhubung ke instance utama.
Pulihkan atau migrasikan cluster AlloyDB dari cadangan Cloud SQL untuk PostgreSQL sambil memetakan dan mempertahankan konfigurasi pengguna grup IAM dan individu.
Meskipun peran dan izin IAM ditetapkan di tingkat grup, pengguna dan akun layanan menggunakan akun dan kredensial IAM masing-masing—bukan akun grup bersama—untuk login ke instance utama, instance kumpulan baca, atau AlloyDB Studio. AlloyDB membuat akun database di cluster untuk akun utama tersebut selama login pertama mereka.
Login individu dan aktivitas database untuk setiap pengguna atau akun layanan muncul di log audit, sehingga Anda dapat memverifikasi akun mana yang melakukan setiap tindakan di database Anda.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan grup Cloud Identity, lihat Ringkasan Cloud Identity. Untuk mengetahui informasi selengkapnya tentang cara bermigrasi dari cadangan Cloud SQL untuk PostgreSQL, lihat Bermigrasi dari Cloud SQL untuk PostgreSQL ke AlloyDB.
Saat Anda menambahkan akun pengguna atau layanan ke grup, perubahan berikut akan terjadi di AlloyDB:
Jika Anda telah memberikan izin login IAM ke grup, pengguna atau akun layanan akan mendapatkan kemampuan untuk login ke cluster AlloyDB karena pengguna atau akun layanan tersebut termasuk dalam grup.
Pengguna secara otomatis mewarisi hak istimewa database atau peran yang telah diberikan kepada grup.
Saat Anda menghapus akun pengguna atau akun layanan dari grup, perubahan berikut di AlloyDB akan terjadi:
- Pengguna akan kehilangan hak istimewa database yang sebelumnya diwarisi dengan menjadi anggota grup.
- Pengguna mungkin masih dapat membuat sesi baru jika mereka menerima izin login IAM untuk cluster AlloyDB melalui keanggotaan grup lain. Namun, pengguna tidak akan memiliki hak istimewa database dari keanggotaan grup sebelumnya saat login.
Praktik terbaik
Ikuti praktik terbaik berikut saat Anda menggunakan autentikasi grup IAM:
Saat Anda mencabut peran
roles/alloydb.databaseUseruntuk grup IAM di IAM, hapus grup tersebut dari cluster AlloyDB.Saat Anda menghapus grup dari Cloud Identity, hapus grup tersebut dari cluster AlloyDB.
Gunakan grup untuk mengonfigurasi role-based access control di database Anda. Berikan hak istimewa minimum yang diperlukan kepada grup.
Batasan
Autentikasi grup IAM memiliki batasan berikut:
Autentikasi grup IAM hanya didukung di database versi
POSTGRES_15dan yang lebih baru.Untuk mendukung keamanan, login menggunakan autentikasi database IAM hanya tersedia melalui 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. Hindari login yang terlalu sering dan batasi login menggunakan jaringan yang diizinkan.
Akun utama yang dipersingkat dari akun layanan, yang merupakan alamat email tanpa akhiran
., tidak boleh melebihi 63 karakter. PostgreSQL memotong nama peran yang lebih panjang dari 63 karakter dalam katalog database, yang menyebabkan autentikasi IAM gagal. Jika Anda tidak dapat mempersingkat nama akun layanan, lihat solusi peniruan akun layanan.Anda dapat menambahkan maksimum 200 grup IAM ke cluster.
Anda tidak dapat menambahkan akun layanan atau pengguna IAM individual yang termasuk dalam grup di cluster yang sama. Dengan kata lain, Anda tidak dapat menambahkan akun dengan jenis
ALLOYDB_IAM_USERjika akun yang identik dengan jenisALLOYDB_IAM_GROUP_USERatauALLOYDB_IAM_GROUP_SERVICE_ACCOUNTsudah ada.Jika akun perorangan sudah ada di cluster dengan jenis
ALLOYDB_IAM_USER, Anda tidak dapat menggunakan akun tersebut untuk autentikasi grup IAM. Jenis pengguna ini tidak mewarisi peran IAM dan hak istimewa database dari grup. Untuk memperbaiki masalah ini dan menggunakan akun dengan autentikasi grup IAM, hapus akun pengguna atau akun layanan IAM individual. Untuk mengetahui informasi selengkapnya tentang cara menyelesaikan masalah ini, lihat Akun yang ada tidak mewarisi hak istimewa.Perubahan pada keanggotaan grup Cloud Identity—seperti penambahan akun—memerlukan waktu sekitar 15 menit untuk diterapkan. Waktu penerapan ini merupakan tambahan dari waktu yang diperlukan untuk perubahan IAM.
Autentikasi grup IAM memerlukan semua flag database terkait sandi yang mengatur jumlah minimum karakter, karakter numerik, dan panjang minimum untuk dilonggarkan atau dinonaktifkan.
Autentikasi grup IAM tidak didukung dengan penggabungan koneksi terkelola atau koneksi PgBouncer.
Autentikasi grup IAM tidak didukung dengan identitas gabungan.