View a markdown version of this page

Menyiapkan kredenSIAL database untuk RDS Proxy - Amazon Aurora

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

Menyiapkan kredenSIAL database untuk RDS Proxy

RDS Proxy di Amazon RDS digunakan AWS Secrets Manager untuk menyimpan dan mengelola kredenSIAL database dengan aman. Alih-alih menyematkan kredenSIAL dalam aplikasi Anda, Anda mengaitkan proxy dengan rahasia Manajer Rahasia yang berisi detail otentikasi yang diperlukan. Anda dapat membuat rahasia Secrets Manager terpisah untuk setiap akun pengguna basis data yang terhubung ke klaster DB Aurora.

Atau, Anda dapat mengonfigurasi RDS Proxy untuk menggunakan otentikasi IAM ujung ke ujung, yang menghilangkan kebutuhan untuk menyimpan kredenSIAL database di Secrets Manager. RDS Proxy menggunakan otentikasi IAM untuk koneksi client-to-proxy dan proxy-to-database. Ini menyediakan solusi IAM-based otentikasi terintegrasi penuh yang tidak memerlukan pengelolaan rahasia atau kata sandi. Untuk informasi tentang menambahkan pengguna IAM DB baru, lihatMembuat akun basis data menggunakan autentikasi IAM.

Membuat rahasia untuk digunakan dengan RDS Proxy

Sebelum Anda membuat proxy, Anda harus terlebih dahulu membuat setidaknya satu rahasia yang menyimpan kredenSIAL database Anda.

Untuk membuat rahasia
  1. Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/.

  2. Pilih Simpan rahasia baru.

  3. Pilih Kre densi untuk database Amazon RDS.

  4. Masukkan nama pengguna dan kata sandi. KredenSIAL yang Anda masukkan harus cocok dengan kredenSIAL pengguna database yang ada di database RDS terkait. RDS Proxy menggunakan kredenSIAL ini untuk mengotentikasi dan membuat koneksi ke database atas nama aplikasi.

    Jika ada ketidakcocokan, Anda dapat memperbarui rahasia agar sesuai dengan kata sandi database. Sampai Anda memperbarui rahasia, upaya untuk terhubung melalui proxy menggunakan rahasia itu gagal, tetapi koneksi menggunakan rahasia valid lainnya masih berfungsi.

    catatan

    Untuk RDS untuk SQL Server, RDS Proxy memerlukan rahasia peka huruf besar-kecil di Secrets Manager, terlepas dari pengaturan pengumpulan instans DB. Jika aplikasi Anda mengizinkan nama pengguna dengan huruf besar yang berbeda, seperti “Admin” dan “admin,” Anda harus membuat rahasia terpisah untuk masing-masing. RDS Proxy tidak mendukung otentikasi nama pengguna yang tidak peka huruf besar-kecil antara klien dan proxy.

    Untuk informasi selengkapnya tentang kolasi di SQL Server, lihat dokumentasi Microsoft SQL Server.

  5. Untuk Database, pilih database Amazon RDS yang akan diakses rahasia.

  6. Isi pengaturan lain untuk rahasia, lalu pilih Store. Untuk petunjuk komprehensif, lihat Membuat AWS Secrets Manager rahasia di Panduan AWS Secrets Manager Pengguna.

Saat Anda membuat proxy melalui AWS CLI, Anda menentukan Nama Sumber Daya Amazon (ARN) dari rahasia yang sesuai. Anda melakukannya untuk semua akun pengguna DB yang dapat diakses proksi. Di dalamnya Konsol Manajemen AWS, Anda memilih rahasia dengan nama deskriptifnya.

  • Untuk membuat rahasia Manajer Rahasia untuk digunakan dengan RDS Proxy, gunakan perintah create- secret:

    aws secretsmanager create-secret \ --name "secret_name" \ --description "secret_description" \ --region region_name \ --secret-string '{"username":"db_user","password":"db_user_password"}'
  • Anda juga dapat membuat kunci khusus untuk mengenkripsi rahasia Manajer Rahasia Anda. Perintah berikut membuat kunci contoh.

    aws kms create-key --description "test-key" --policy '{ "Id":"kms-policy", "Version": "2012-10-17", "Statement": [ { "Sid":"Enable IAM User Permissions", "Effect":"Allow", "Principal":{"AWS":"arn:aws:iam::account_id:root"}, "Action":"kms:*","Resource":"*" }, { "Sid":"Allow access for Key Administrators", "Effect":"Allow", "Principal": { "AWS": ["$USER_ARN","arn:aws:iam::account_id:role/Admin"] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource":"*" }, { "Sid":"Allow use of the key", "Effect":"Allow", "Principal":{"AWS":"$ROLE_ARN"}, "Action":["kms:Decrypt","kms:DescribeKey"], "Resource":"*" } ] }'

Misalnya, perintah berikut membuat rahasia Manajer Rahasia untuk dua pengguna database:

aws secretsmanager create-secret \ --name secret_name_1 --description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' aws secretsmanager create-secret \ --name secret_name_2 --description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password"}'

Untuk membuat rahasia ini dienkripsi dengan AWS KMS kunci kustom Anda, gunakan perintah berikut:

aws secretsmanager create-secret \ --name secret_name_1 --description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' \ --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id aws secretsmanager create-secret \ --name secret_name_2 --description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password"}' \ --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id

Untuk melihat rahasia yang dimiliki oleh AWS akun Anda, gunakan perintah list-secret:

aws secretsmanager list-secrets

Saat Anda membuat proksi menggunakan CLI, Anda meneruskan Amazon Resource Name (ARN) dari satu atau beberapa rahasia ke parameter --auth. Contoh berikut menunjukkan cara menyiapkan laporan hanya dengan nama dan ARN dari setiap rahasia yang dimiliki oleh AWS akun Anda. Contoh ini menggunakan --output table parameter yang tersedia di AWS CLI versi 2. Jika Anda menggunakan AWS CLI versi 1, gunakan sebagai --output text gantinya.

aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table

Untuk mengonfirmasi bahwa rahasia berisi kredenSIAL yang benar dalam format yang tepat, gunakan perintah get-secret-value. Ganti your_secret_name dengan nama pendek rahasia atau ARN.

aws secretsmanager get-secret-value --secret-id your_secret_name

Output berisi baris dengan JSON-encoded nilai yang mirip dengan berikut ini:

... "SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}", ...