Mengelola autentikasi IAM

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:

  1. Aktifkan autentikasi individu atau grup IAM di instance Anda.
  2. Berikan peran yang diperlukan ke akun atau grup.
  3. Tambahkan akun atau grup ke cluster Anda.
  4. 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 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:

  1. Perbarui setelan IAM project Anda untuk memberikan akses database AlloyDB ke pengguna atau akun layanan IAM yang sesuai.

  2. 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

  1. Buka halaman Clusters.

    Buka Cluster

  2. Klik nama cluster tempat Anda ingin menambahkan pengguna.

  3. Klik Pengguna.

  4. Klik Add user account.

  5. Pilih Cloud IAM.

  6. 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 layanan my-service@my-project.iam.gserviceaccount.com, Anda menggunakan nilai my-service@my-project.iam.

  7. Untuk menetapkan peran selain alloydbsuperuser default kepada pengguna, ikuti langkah-langkah berikut:

    1. Masukkan nama peran di Roles.
    2. Untuk menambahkan peran, tekan Enter atau Tab.
    3. Pilih x untuk peran yang ingin Anda hapus bagi pengguna tersebut.

      Untuk mengetahui informasi selengkapnya, lihat Peran yang telah ditetapkan

  8. 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

Ganti 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 layanan my-service@my-project.iam.gserviceaccount.com, Anda menggunakan nilai my-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

  1. Buka halaman Clusters.

    Buka Cluster

  2. Klik nama cluster tempat Anda ingin menghapus pengguna.

  3. Klik Pengguna.

  4. Di baris yang mewakili pengguna yang ingin Anda hapus, klik Open actions for this user.

  5. Pilih Hapus.

  6. Dalam dialog Hapus akun pengguna?, klik Hapus.

gcloud

Gunakan perintah gcloud alloydb users delete.

gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGION

Ganti 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 layanan my-service@my-project.iam.gserviceaccount.com, Anda menggunakan nilai my-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:

  1. Tetapkan peran roles/alloydb.databaseUser dan roles/serviceusage.serviceUsageConsumer ke akun grup. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran ini, lihat Memperbarui akun IAM dengan peran yang sesuai.

  2. Untuk membuat pengguna database untuk grup, jalankan perintah gcloud alloydb users create dengan flag --type=IAM_GROUP:

    gcloud alloydb users create GROUP_EMAIL \
    --cluster=CLUSTER \
    --region=REGION \
    --type=IAM_GROUP

    Ganti 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.

  1. Mencabut izin IAM:

    1. Di konsol Google Cloud , buka halaman IAM.

      Buka IAM

    2. Temukan grup IAM yang ingin Anda hapus aksesnya.

    3. Hapus peran roles/alloydb.databaseUser dan peran terkait AlloyDB lainnya yang memberikan akses ke cluster. Tindakan ini mencegah anggota grup melakukan autentikasi.

  2. 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_ID

    Ganti 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.

  3. 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.

    1. 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.

    2. Jalankan perintah gcloud CLI Cloud Identity berikut:

      gcloud identity groups delete GROUP_EMAIL_ADDRESS
    3. Saat Anda mencabut izin login alloydb.databaseUser untuk 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:

  1. Tambahkan pengguna ke grup IAM.
  2. Tambahkan grup ke cluster Anda.
  3. Tetapkan peran yang diperlukan ke grup.
  4. Menetapkan hak istimewa database ke grup.
  5. 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:

  1. Cantumkan pengguna di cluster:

    gcloud alloydb users list \
        --cluster=CLUSTER \
        --region=REGION

    Ganti kode berikut:

    • CLUSTER: ID cluster AlloyDB Anda.

    • REGION: ID region tempat cluster AlloyDB Anda berada—misalnya, us-central1.

  2. Jika akun memiliki jenis ALLOYDB_IAM_USER, hapus akun dari cluster. Akun dengan jenis ALLOYDB_IAM_USER tidak mewarisi hak istimewa grup.

  3. 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_USER atau ALLOYDB_IAM_GROUP_SERVICE_ACCOUNT.

Langkah berikutnya