Anda dapat mengonfigurasi autentikasi database Identity and Access Management (IAM) di cluster AlloyDB untuk PostgreSQL baru atau yang sudah ada guna mengelola login dan izin database menggunakan akun IAM atau grup IAM individual.
Autentikasi IAM melengkapi autentikasi database melalui pengguna PostgreSQL standar, yang didukung oleh setiap cluster AlloyDB.
Anda dapat melakukan autentikasi menggunakan akun atau grup perorangan:
Akun individual: Anda menambahkan setiap pengguna atau akun layanan IAM ke cluster dan mengelola izin per akun.
Grup: Anda menambahkan grup IAM ke cluster sehingga semua anggota (pengguna dan akun layanan) mewarisi izin untuk melakukan autentikasi ke instance utama, instance pool baca, dan AlloyDB Studio tanpa menambahkan setiap anggota satu per satu.
Autentikasi IAM dinonaktifkan di instance AlloyDB secara default.
Untuk menggunakan autentikasi IAM, selesaikan langkah-langkah umum berikut:
- Aktifkan autentikasi individu atau grup IAM di instance Anda.
- Berikan peran yang diperlukan ke akun atau grup.
- Tambahkan akun atau grup ke cluster Anda.
- Berikan hak istimewa database ke akun atau grup.
Mengaktifkan dan menonaktifkan autentikasi IAM
Untuk mengaktifkan autentikasi IAM pada instance di cluster baru atau yang sudah ada, tetapkan flag database yang diperlukan:
Untuk autentikasi individual, tetapkan flag database
alloydb.iam_authenticationkeon.Untuk autentikasi grup, tetapkan flag database
alloydb.iam_authenticationdanalloydb.iam_group_authenticationkeon.
Untuk menonaktifkan autentikasi IAM, tetapkan flag ke off.
Untuk mengetahui informasi selengkapnya tentang cara menetapkan flag, lihat Mengonfigurasi flag database instance.
Memberikan akses ke akun perorangan
Untuk mengaktifkan akses IAM ke pengguna database baru, ikuti langkah-langkah berikut:
Perbarui setelan IAM project Anda untuk memberikan akses database AlloyDB ke pengguna atau akun layanan IAM yang sesuai.
Buat pengguna database baru di cluster Anda, dengan menetapkan nama pengguna sebagai alamat email pengguna atau akun layanan IAM.
Untuk memberi akun IAM akses ke cluster lain di project Anda, ulangi langkah terakhir.
Memperbarui akun IAM dengan peran yang sesuai
Anda dapat memberi pengguna atau akun layanan IAM kemampuan untuk melakukan autentikasi dengan instance AlloyDB dengan memberi mereka peran IAM berikut:
alloydb.databaseUser: Memungkinkan pengguna terhubung ke instance AlloyDB Anda.serviceusage.serviceUsageConsumer: Memberi pengguna akses ke API yang memeriksa izin.
Untuk melakukannya, ikuti petunjuk di
Memberikan akses kepada pengguna lain. Pada langkah saat Anda memilih peran yang akan diberikan ke akun utama IAM, pilih alloydb.databaseUser.
Menambahkan akun pengguna atau layanan IAM ke cluster
Konsol
Buka halaman Clusters.
Klik nama cluster tempat Anda ingin menambahkan pengguna.
Klik Pengguna.
Klik Add user account.
Pilih Cloud IAM.
Di kolom Principal, masukkan akun utama IAM.
Untuk akun pengguna IAM, berikan alamat email lengkap akun pengguna. Misalnya,
dana@example.com.Untuk akun layanan IAM, berikan alamat akun layanan tanpa akhiran
.gserviceaccount.com. Misalnya, untuk menentukan akun layananmy-service@my-project.iam.gserviceaccount.com, Anda menggunakan nilaimy-service@my-project.iam.Untuk menetapkan peran selain
alloydbsuperuserdefault kepada pengguna, ikuti langkah-langkah berikut:- Masukkan nama peran di Roles.
- Untuk menambahkan peran, tekan Enter atau Tab.
Pilih x untuk peran yang ingin Anda hapus bagi pengguna tersebut.
Untuk mengetahui informasi selengkapnya, lihat Peran yang telah ditetapkan
Klik Tambahkan.
gcloud
Untuk membuat pengguna database PostgreSQL berdasarkan pengguna IAM atau akun layanan, gunakan perintah gcloud alloydb users create.
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASEDGanti variabel berikut:
USERNAME: ID untuk pengguna IAM yang ingin Anda tambahkan sebagai pengguna database baru.Untuk akun pengguna IAM, berikan alamat email lengkap akun pengguna. Misalnya,
dana@example.com.Untuk akun layanan IAM, berikan alamat akun layanan tanpa akhiran
.gserviceaccount.com. Misalnya, untuk menentukan akun layananmy-service@my-project.iam.gserviceaccount.com, Anda menggunakan nilaimy-service@my-project.iam.CLUSTER: ID cluster tempat akun pengguna database ini akan dibuat.REGION: ID region tempat cluster berada—misalnya,us-central1.
Memberikan izin database yang sesuai kepada pengguna IAM
Saat Anda menambahkan pengguna IAM ke cluster AlloyDB, pengguna tersebut tidak memiliki hak istimewa di database mana pun secara default, kecuali untuk objek database yang dapat diakses oleh PUBLIC.
Jika pengguna memerlukan akses tambahan, berikan lebih banyak hak istimewa menggunakan
pernyataan PostgreSQL GRANT:
GRANT SELECT ON TABLE_NAME TO "USERNAME";
Ganti variabel berikut:
USERNAME: alamat email untuk pengguna. Anda harus menyertakan tanda kutip ganda di sekitar alamat.TABLE_NAME: Nama tabel yang ingin Anda berikan akses kepada pengguna.
Menghapus akun pengguna atau akun layanan IAM dari cluster
Konsol
Buka halaman Clusters.
Klik nama cluster tempat Anda ingin menghapus pengguna.
Klik Pengguna.
Di baris yang mewakili pengguna yang ingin Anda hapus, klik Open actions for this user.
Pilih Hapus.
Dalam dialog Hapus akun pengguna?, klik Hapus.
gcloud
Gunakan
perintah gcloud alloydb users delete.
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGIONGanti kode berikut:
USERNAME: ID pengguna IAM yang ingin Anda hapus dari cluster.Untuk akun pengguna IAM, berikan alamat email lengkap akun pengguna. Misalnya,
dana@example.com.Untuk akun layanan IAM, berikan alamat akun layanan tanpa akhiran
.gserviceaccount.com. Misalnya, untuk menentukan akun layananmy-service@my-project.iam.gserviceaccount.com, Anda menggunakan nilaimy-service@my-project.iam.CLUSTER: ID cluster tempat pengguna ini akan dihapus.REGION: ID region tempat cluster berada. Contoh,us-central1.
Memberikan akses ke grup IAM
Untuk menggunakan autentikasi grup, tambahkan grup IAM ke cluster AlloyDB.
Menambahkan grup IAM ke cluster
Sebelum Anda menambahkan grup IAM ke cluster, perhatikan persyaratan berikut:
Maksimum 200 grup IAM dapat ada di cluster kapan saja. Grup tidak aktif mengurangi batas ini.
Nama grup IAM tidak boleh melebihi 63 karakter. Jika Anda memiliki grup IAM dengan nama yang melebihi 63 karakter, Anda dapat menyusunnya di bawah grup induk dengan nama yang valid. Anda harus menambahkan grup induk ke cluster sebelum dapat menggunakan grup bertingkat.
Untuk menambahkan grup IAM ke cluster, ikuti langkah-langkah berikut:
Tetapkan peran
roles/alloydb.databaseUserdanroles/serviceusage.serviceUsageConsumerke akun grup. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran ini, lihat Memperbarui akun IAM dengan peran yang sesuai.Untuk membuat pengguna database untuk grup, jalankan perintah
gcloud alloydb users createdengan flag--type=IAM_GROUP:gcloud alloydb users create GROUP_EMAIL \ --cluster=CLUSTER \ --region=REGION \ --type=IAM_GROUPGanti kode berikut:
GROUP_EMAIL: alamat email lengkap grup IAM—misalnya,my-group@example.com.CLUSTER: ID cluster tempat grup akan ditambahkan.REGION: ID region tempat cluster berada—misalnya,us-central1.
Menambahkan anggota grup secara otomatis
Saat Anda menambahkan grup IAM ke cluster, semua pengguna dan akun layanan dalam grup tersebut akan mewarisi izin untuk melakukan autentikasi. Anda tidak perlu menambahkan anggota satu per satu. Anggota grup dapat login langsung ke instance utama, instance kumpulan baca, dan AlloyDB Studio di konsol Google Cloud , termasuk login pertama kali ke instance kumpulan baca tanpa terhubung ke instance utama terlebih dahulu. Saat anggota login untuk pertama kalinya, AlloyDB akan otomatis membuat akun database untuk akun utama tersebut.
Saat Anda memulihkan atau memigrasikan cluster AlloyDB dari cadangan Cloud SQL untuk PostgreSQL, AlloyDB akan memetakan dan mempertahankan konfigurasi pengguna grup IAM dan individu. Untuk mengetahui informasi selengkapnya tentang migrasi dari cadangan Cloud SQL untuk PostgreSQL, lihat Melakukan migrasi dari Cloud SQL untuk PostgreSQL ke AlloyDB.
Memberikan hak istimewa database kepada grup IAM
Anda memberikan hak istimewa database ke grup, bukan ke pengguna individu.
Jalankan pernyataan GRANT dari command line psql:
GRANT SELECT ON TABLE_NAME TO "GROUP_NAME";
Ganti kode berikut:
TABLE_NAME: nama tabel yang ingin Anda beri akses ke grup.GROUP_NAME: alamat email grup. Sertakan tanda kutip ganda di sekitar alamat karena berisi karakter khusus.
Menghapus grup IAM dari cluster
Untuk menghapus grup IAM dari cluster AlloyDB, cabut izin grup di konsol Google Cloud dan hapus pengguna grup yang sesuai dari cluster AlloyDB.
Mencabut izin IAM:
Di konsol Google Cloud , buka halaman IAM.
Temukan grup IAM yang ingin Anda hapus aksesnya.
Hapus peran
roles/alloydb.databaseUserdan peran terkait AlloyDB lainnya yang memberikan akses ke cluster. Tindakan ini mencegah anggota grup melakukan autentikasi.
Hapus pengguna grup dari cluster AlloyDB:
Gunakan Google Cloud CLI untuk menghapus pengguna yang mewakili grup IAM dari cluster AlloyDB. Nama pengguna biasanya adalah alamat email grup IAM:
gcloud alloydb users delete GROUP_EMAIL_ADDRESS \ --cluster=CLUSTER_ID \ --region=REGION_IDGanti kode berikut:
GROUP_EMAIL_ADDRESS: alamat email lengkap grup IAM—misalnya,my-group@example.com.CLUSTER_ID: ID cluster AlloyDB Anda.REGION_ID: region tempat cluster AlloyDB Anda berada—misalnya,us-central1.
Opsional: Hapus grup dari Cloud Identity:
Anda memerlukan hak istimewa administrator yang sesuai (seperti Admin Grup) di akun Cloud Identity untuk menghapus grup. Pemilik grup biasanya hanya dapat menghapus grup yang mereka miliki.
Perubahan pada izin IAM dan keanggotaan grup dapat memerlukan waktu untuk diterapkan, mungkin 15 menit atau lebih.
Pastikan Anda memiliki hak istimewa administrator yang sesuai seperti Admin Grup di akun Cloud Identity Anda. Pemilik grup hanya dapat menghapus grup yang mereka miliki. Untuk mengetahui informasi selengkapnya, lihat Peran administrator standar.
Jalankan perintah gcloud CLI Cloud Identity berikut:
gcloud identity groups delete GROUP_EMAIL_ADDRESSSaat Anda mencabut izin login
alloydb.databaseUseruntuk grup IAM di Cloud Identity, Anda juga harus menghapus grup dari cluster AlloyDB untuk memastikan bahwa akses telah dihapus sepenuhnya.
Memigrasikan pengguna yang ada ke autentikasi grup IAM
Pengguna IAM individual yang ada tidak menggunakan autentikasi grup. Anda dapat memigrasikannya dengan mengikuti langkah-langkah berikut:
- Tambahkan pengguna ke grup IAM.
- Tambahkan grup ke cluster Anda.
- Tetapkan peran yang diperlukan ke grup.
- Menetapkan hak istimewa database ke grup.
- Hapus pengguna individu yang ada dari cluster Anda. Pastikan Anda mentransfer kepemilikan jika diinginkan.
Saat pengguna login lagi, AlloyDB akan membuat ulang akun sebagai pengguna grup.
Memecahkan masalah autentikasi grup
Gunakan informasi berikut untuk memecahkan masalah autentikasi grup.
Akun yang ada tidak mewarisi hak istimewa
Jika akun tidak mewarisi hak istimewa dari grup, ikuti langkah-langkah berikut:
Cantumkan pengguna di cluster:
gcloud alloydb users list \ --cluster=CLUSTER \ --region=REGIONGanti kode berikut:
CLUSTER: ID cluster AlloyDB Anda.REGION: ID region tempat cluster AlloyDB Anda berada—misalnya,us-central1.
Jika akun memiliki jenis
ALLOYDB_IAM_USER, hapus akun dari cluster. Akun dengan jenisALLOYDB_IAM_USERtidak mewarisi hak istimewa grup.Untuk membuat ulang akun dengan jenis pengguna grup, login lagi ke instance dengan akun pengguna atau akun layanan. Login kembali ke instance akan membuat ulang akun dengan jenis akun
ALLOYDB_IAM_GROUP_USERatauALLOYDB_IAM_GROUP_SERVICE_ACCOUNT.