Untuk mengautentikasi pengguna dan grup database dengan kredensial Google Cloud , bukan sandi database, Anda dapat mengaktifkan dan mengonfigurasi autentikasi Identity and Access Management (IAM) di instance AlloyDB untuk PostgreSQL.
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 individu: Anda menambahkan setiap pengguna atau akun layanan IAM ke cluster. Anda dapat menggunakan peran pengguna IAM atau PostgreSQL untuk melakukan autentikasi dengan cluster tersebut.
- Grup: Anda menambahkan grup IAM ke cluster. Semua anggota (pengguna dan akun layanan) grup tersebut mewarisi izin untuk melakukan autentikasi. Hal ini memungkinkan Anda mengelola akses dengan mengelola keanggotaan grup tanpa menambahkan setiap anggota ke cluster 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, tetapkan flag database.
Untuk autentikasi individual, tetapkan flag
alloydb.iam_authenticationkeon.Untuk autentikasi grup, tetapkan flag
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:
Pengguna Database AlloyDB (
roles/alloydb.databaseUser): memungkinkan pengguna terhubung ke instance AlloyDB Anda.Service Usage Consumer (
roles/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 kepada akun utama IAM,
pilih AlloyDB Database User (roles/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 tentang peran PostgreSQL yang telah ditetapkan, 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_BASED \
--db-roles=alloydbiamuserGanti kode 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 kode 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 (Pratinjau), tambahkan grup IAM ke cluster AlloyDB.
Menambahkan grup IAM ke cluster
Tetapkan peran
roles/alloydb.databaseUserdanroles/serviceusage.serviceUsageConsumerke akun grup. Untuk mengetahui informasi selengkapnya, lihat Memperbarui akun IAM dengan peran yang sesuai.Maksimum 200 grup IAM dapat ada di cluster kapan saja. Grup yang tidak aktif mengurangi batas ini.
Nama grup IAM hanya boleh berisi 63 karakter.
Jika Anda memiliki grup IAM dengan nama yang melebihi batas panjang, Anda dapat menyarangkannya di bawah grup induk dengan nama yang valid. Anda harus menambahkan grup induk ke cluster sebelum dapat menggunakan grup bertingkat.
Untuk membuat pengguna database untuk grup, gunakan 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 yang akan ditambahkan grup ini.REGION: ID region tempat cluster berada—misalnya,us-central1.
Menambahkan anggota grup secara otomatis
Saat Anda menambahkan grup IAM ke cluster, semua anggota (pengguna dan akun layanan) grup tersebut akan mewarisi izin untuk melakukan autentikasi. Anda tidak perlu menambahkan anggota satu per satu. Setelah anggota login untuk pertama kalinya, AlloyDB akan otomatis membuat akun untuknya.
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:
GROUP_NAME: alamat email grup. Anda harus menggunakan tanda kutip karena string berisi karakter khusus.TABLE_NAME: nama tabel.
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.
Dapatkan 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 mencabut peran AlloyDB Database User (
roles/alloydb.databaseUser) untuk grup IAM di Cloud Identity, Anda juga harus menghapus grup dari cluster AlloyDB agar akses 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.
Tetapkan peran IAM yang diperlukan (
roles/alloydb.databaseUserdanroles/serviceusage.serviceUsageConsumer) ke grup.Menetapkan hak istimewa database ke grup.
Hapus pengguna individu yang ada dari cluster Anda. Transfer kepemilikan objek sebelum menghapus pengguna, jika diperlukan.
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:
Mencantumkan pengguna:
gcloud alloydb users list --cluster=CLUSTER --region=REGIONGanti kode berikut:
CLUSTER: ID cluster.REGION: region tempat cluster berada—misalnya,us-central1.
Jika jenisnya adalah
ALLOYDB_IAM_USERatauALLOYDB_IAM_SERVICE_ACCOUNT, hapus akun tersebut. Akun ini tidak mewarisi hak istimewa grup.Untuk membuat ulang akun dengan jenis grup yang benar, login lagi ke instance dengan akun pengguna atau layanan. Login kembali ke instance akan membuat ulang akun dengan jenis akun yang benar, yaitu
ALLOYDB_IAM_GROUP_USERatauALLOYDB_IAM_GROUP_SERVICE_ACCOUNT.