Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM - Layanan Basis Data Relasional Amazon

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

Untuk memungkinkan pengguna atau peran terhubung ke instans DB, Anda harus membuat kebijakan IAM. Setelah itu, lampirkan kebijakan tersebut ke set izin atau peran.

catatan

Untuk mempelajari selengkapnya tentang kebijakan IAM, lihat Manajemen identitas dan akses untuk Amazon RDS.

Contoh kebijakan berikut memungkinkan pengguna 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:db-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 yang dengan izin istimewa yang sesuai dan menetapkannya ke administrator.

catatan

Jangan samakan awalan rds-db: dengan awalan operasi API RDS lain yang diawali 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 ini mencakup satu pernyataan 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 memungkinkan 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:DbiResourceId/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 di akun yang sama dengan akun untuk instans DB.

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

    • DbiResourceId adalah pengidentifikasi untuk instans DB. Pengidentifikasi ini unik untuk Wilayah AWS dan tidak pernah berubah. Dalam contoh kebijakan, pengidentifikasi adalah db-ABCDEFGHIJKL01234.

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

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

      aws rds describe-db-instances --query "DBInstances[*].[DBInstanceIdentifier,DbiResourceId]"

      Jika Anda menggunakan Amazon Aurora, tentukan DbClusterResourceId, bukan DbiResourceId. Untuk informasi selengkapnya, lihat Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM dalam Panduan Pengguna Amazon Aurora.

      catatan

      Jika Anda terhubung ke basis data melalui Proksi RDS, tentukan ID sumber daya proksi, seperti prx-ABCDEFGHIJKL01234. Untuk informasi tentang 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 data 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:db-ABCDEFGHIJKL01234/jane_doe", "arn:aws:rds-db:us-east-2:123456789012:dbuser:db-ABCDEFGHIJKL01234/mary_roe" ] } ] }

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

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

Kebijakan berikut mencocokkan semua instans DB untuk akun AWS dan Wilayah AWS tertentu. Namun, kebijakan ini 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, anggaplah instans DB Anda memiliki basis data bernama dev, dan basis data lain bernama uji. Jika pengguna basis data jane_doe hanya memiliki akses ke dev, setiap pengguna atau peran IAM 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 memberikan izin pada entitas untuk melakukan operasi API tertentu pada sumber daya yang diperlukan. Administrator kemudian harus melampirkan kebijakan tersebut ke set izin atau peran yang memerlukan izin tersebut. Untuk contoh kebijakan, lihat Contoh kebijakan berbasis identitas untuk Amazon RDS.

Melampirkan kebijakan IAM ke set izin atau peran

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

Saat mengikuti 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 akan memiliki set izin dengan kebijakan terlampir yang dapat menggunakan tindakan rds-db:connect.

catatan

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

arn:aws:rds-db:us-east-2:123456789012:dbuser:db-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.