Mengelola autentikasi IAM

Halaman ini menjelaskan cara menyiapkan instance AlloyDB untuk PostgreSQL agar mengizinkan autentikasi database melalui Identity and Access Management (IAM).

Autentikasi IAM melengkapi autentikasi database melalui pengguna PostgreSQL standar, yang didukung oleh setiap cluster AlloyDB. Jika mengaktifkan autentikasi IAM di cluster, Anda dapat menggunakan peran pengguna IAM atau PostgreSQL untuk melakukan autentikasi dengan cluster tersebut.

Secara default, instance AlloyDB tidak mengaktifkan autentikasi IAM. Untuk mengaktifkan autentikasi IAM, selesaikan langkah-langkah berikut:

  • Aktifkan autentikasi IAM secara manual di setiap instance yang perlu dihubungkan oleh akun pengguna atau layanan IAM.

  • Untuk setiap akun pengguna atau akun layanan IAM yang perlu login sebagai pengguna database, selesaikan langkah-langkah berikut:

    1. Dengan menggunakan alat administrator IAM, berikan peran alloydb.databaseUser dan serviceusage.serviceUsageConsumer kepada pengguna atau akun layanan tersebut.

    2. Dengan menggunakan Google Cloud CLI, buat pengguna database yang sesuai dengan pengguna atau akun layanan tersebut di cluster AlloyDB Anda.

    3. Menggunakan akun administrator database seperti postgres, berikan hak istimewa akses pengguna database baru ke tabel database yang sesuai.

Anda dapat mengulangi langkah-langkah ini kapan pun Anda perlu menambahkan pengguna IAM lainnya ke cluster AlloyDB.

Mengaktifkan atau menonaktifkan autentikasi IAM

Untuk mengaktifkan autentikasi IAM pada instance, tetapkan flag alloydb.iam_authentication pada instance tersebut ke on.

Untuk menonaktifkan autentikasi IAM pada instance, tetapkan alloydb.iam_authentication kembali ke nilai defaultnya, off.

Untuk mengetahui informasi selengkapnya tentang menyetel flag pada instance AlloyDB, lihat Mengonfigurasi flag database instance.

Memberi akun pengguna atau akun layanan IAM akses ke instance

Mengaktifkan akses IAM untuk pengguna database baru adalah proses dua langkah:

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

  2. Buat pengguna database baru di cluster Anda, dengan menetapkan nama pengguna sebagai alamat email pengguna IAM atau akun layanan.

Anda dapat mengulangi langkah kedua untuk memberikan akses akun IAM ke cluster lain dalam project Anda.

Memperbarui akun IAM dengan peran yang sesuai

Anda dapat memberikan kemampuan kepada pengguna IAM atau akun layanan untuk mengautentikasi dengan instance AlloyDB dengan memberikan peran IAM berikut kepada mereka:

  • alloydb.databaseUser: Mengizinkan pengguna terhubung ke instance AlloyDB Anda.
  • serviceusage.serviceUsageConsumer: Memberikan akses pengguna ke API yang memeriksa izin.

Untuk melakukannya, ikuti petunjuk di bagian Memberikan akses kepada pengguna lain. Pada langkah saat Anda memilih peran untuk diberikan ke akun utama IAM, pilih alloydb.databaseUser.

Menambahkan akun pengguna atau akun layanan IAM ke cluster

Konsol

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik nama cluster tempat Anda ingin menambahkan pengguna.

  3. Klik Pengguna.

  4. Klik Tambahkan akun pengguna.

  5. Pilih Cloud IAM.

  6. Di kolom Principal, masukkan akun utama IAM.

    Untuk akun pengguna IAM, berikan alamat email lengkap akun pengguna. Misalnya, kai@altostrat.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 akan menggunakan nilai my-service@my-project.iam di sini.

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

    1. Masukkan nama peran di Peran.
    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 akun pengguna atau layanan IAM, 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, kai@altostrat.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 akan menggunakan nilai my-service@my-project.iam di sini.

  • CLUSTER: ID cluster tempat akun pengguna database ini akan dibuat.

  • REGION: ID region tempat cluster berada. Contoh, us-central1.

Memberikan izin database yang sesuai kepada pengguna IAM

Saat pengguna IAM ditambahkan ke instance database, pengguna baru tersebut tidak diberi hak istimewa di database mana pun secara default.

Saat akun pengguna atau akun layanan terhubung ke database, mereka dapat menjalankan kueri terhadap objek database yang aksesnya telah diberikan ke Publik.

Jika membutuhkan akses tambahan, lebih banyak hak istimewa dapat diberikan 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 Cluster.

    Buka Cluster

  2. Klik nama cluster tempat Anda ingin menghapus pengguna.

  3. Klik Pengguna.

  4. Di baris yang menampilkan pengguna yang ingin Anda hapus, klik Buka tindakan untuk pengguna ini.

  5. Pilih Hapus.

  6. Pada 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, kai@altostrat.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 akan menggunakan nilai my-service@my-project.iam di sini.

  • CLUSTER: ID cluster tempat pengguna ini akan dihapus.

  • REGION: ID region tempat cluster berada. Contoh, us-central1.

Langkah berikutnya