Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM

Agar pengguna atau peran dapat terhubung ke instans DB, Anda harus membuat kebijakan IAM. Setelah itu, Anda melampirkan kebijakan ke peran atau kumpulan izin.

catatan

Untuk mempelajari lebih lanjut tentang kebijakan IAM, lihat Manajemen identitas dan akses untuk Aurora.

Contoh kebijakan berikut memungkinkan pengguna untuk terhubung ke instans DB menggunakan autentikasi basis data IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:1234567890:dbuser:cluster-ABCDEFGHIJKL01234/db_user" ] } ] }
penting

Pengguna dengan izin administrator dapat mengakses instans DB tanpa izin eksplisit dalam kebijakan IAM. Jika Anda ingin membatasi akses administrator ke instans DB, Anda dapat membuat peran IAM dengan izin istimewa minimum yang sesuai dan menetapkannya ke administrator.

catatan

Jangan samakan awalan rds-db: dengan awalan pengoperasian API RDS lain yang dimulai dengan rds:. Anda menggunakan awalan rds-db: dan tindakan rds-db:connect hanya untuk autentikasi basis data IAM. Hal ini tidak berlaku dalam konteks lainnya.

Contoh kebijakan tersebut mencakup pernyataan tunggal dengan elemen berikut:

  • Effect – Tentukan Allow untuk memberikan akses ke instans DB. Jika Anda tidak secara eksplisit mengizinkan akses, maka akses ditolak secara default.

  • Action – Tentukan rds-db:connect untuk mengizinkan koneksi ke instans DB.

  • Resource – Tentukan Amazon Resource Name (ARN) yang menjelaskan satu akun basis data dalam satu instans DB. Format ARN adalah sebagai berikut.

    arn:aws:rds-db:region:account-id:dbuser:DbClusterResourceId/db-user-name

    Dalam format ini, ganti hal berikut:

    • region adalah Wilayah AWS untuk instans DB. Dalam contoh kebijakan, Wilayah AWS adalah us-east-2.

    • account-id adalah nomor akun AWS untuk instans DB. Dalam contoh kebijakan, nomor akun adalah 1234567890. Pengguna harus berada dalam akun yang sama dengan akun untuk klaster DB.

      Untuk melakukan akses lintas akun, buat peran IAM dengan kebijakan yang ditunjukkan di atas dalam akun untuk klaster DB dan izinkan akun Anda yang lain untuk mengambil peran tersebut.

    • DbClusterResourceId adalah pengidentifikasi untuk instans DB. Pengidentifikasi ini bersifat unik untuk Wilayah AWS dan tidak pernah berubah. Dalam contoh kebijakan, pengidentifikasinya adalah cluster-ABCDEFGHIJKL01234.

      Untuk menemukan ID sumber daya instans DB di AWS Management Console untuk Amazon Aurora, pilih instans DB untuk melihat detailnya. Lalu pilih tab Konfigurasi. ID Sumber Daya ditampilkan di bagian Konfigurasi.

      Atau, Anda dapat menggunakan perintah AWS CLI untuk mencantumkan pengidentifikasi dan ID sumber daya untuk semua instans DB Anda di Wilayah AWS saat ini, seperti yang ditunjukkan berikut.

      aws rds describe-db-clusters --query "DBClusters[*].[DBClusterIdentifier,DbClusterResourceId]"
      catatan

      Jika Anda terhubung ke basis data melalui Proksi RDS, sebutkan ID sumber daya proksinya, seperti prx-ABCDEFGHIJKL01234. Untuk informasi tentang cara menggunakan autentikasi basis data IAM dengan Proksi RDS, lihat Terhubung ke sebuah proksi menggunakan autentikasi IAM.

    • db-user-name adalah nama akun basis data untuk dikaitkan dengan autentikasi IAM. Dalam contoh kebijakan, akun basis datanya adalah db_user.

Anda dapat membuat ARN lain untuk mendukung berbagai pola akses. Kebijakan berikut memungkinkan akses ke dua akun basis data yang berbeda dalam instans DB.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/jane_doe", "arn:aws:rds-db:us-east-2:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/mary_roe" ] } ] }

Kebijakan berikut menggunakan karakter "*" untuk mencocokkan semua instans DB dan akun basis data untuk akun AWS tertentu dan Wilayah AWS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:1234567890:dbuser:*/*" ] } ] }

Kebijakan berikut sesuai dengan semua instans DB untuk akun AWS tertentu dan Wilayah AWS. Namun, kebijakan hanya memberikan akses ke instans DB yang memiliki akun basis data jane_doe.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:123456789012:dbuser:*/jane_doe" ] } ] }

Pengguna atau peran hanya memiliki akses ke basis data yang aksesnya dimiliki oleh pengguna basis data tersebut. Misalnya, instans DB Anda memiliki basis data bernama dev, dan basis data lain bernama test. Jika pengguna basis data jane_doe hanya memiliki akses ke dev, setiap pengguna atau peran yang mengakses instans DB tersebut dengan pengguna jane_doe juga hanya akan memiliki akses ke dev. Pembatasan akses ini juga berlaku untuk objek basis data lain, seperti tabel, tampilan, dan sebagainya.

Administrator harus membuat kebijakan IAM yang memberi izin kepada entitas untuk menjalankan pengoperasian API tertentu pada sumber daya tertentu yang diperlukan. Administrator kemudian dapat melampirkan kebijakan tersebut ke peran atau kumpulan izin yang memerlukan izin tersebut. Untuk contoh kebijakan, lihat .

Melampirkan kebijakan IAM ke peran atau kumpulan izin

Setelah membuat kebijakan IAM untuk memungkinkan autentikasi basis data, Anda perlu melampirkan kebijakan ke peran atau kumpulan izin. Untuk tutorial tentang topik ini, lihat Membuat dan melampirkan kebijakan yang dikelola pelanggan pertama Anda dalam Panduan Pengguna IAM.

Saat mempelajari tutorial ini, Anda dapat menggunakan salah satu contoh kebijakan yang ditunjukkan dalam bagian ini sebagai titik awal dan menyesuaikannya dengan kebutuhan Anda. Di akhir tutorial, Anda memiliki kumpulan izin dengan kebijakan terlampir yang dapat memanfaatkan tindakan rds-db:connect.

catatan

Anda dapat memetakan beberapa peran dan kumpulan izin ke akun pengguna basis data yang sama. Misalnya, kebijakan IAM Anda telah menentukan ARN sumber daya berikut.

arn:aws:rds-db:us-east-2:123456789012:dbuser:cluster-12ABC34DEFG5HIJ6KLMNOP78QR/jane_doe

Jika Anda melampirkan kebijakan ke Jane, Bob, dan Diego, maka masing-masing pengguna tersebut dapat terhubung ke klaster DB yang telah ditentukan menggunakan akun basis data jane_doe.