Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan kredensi database AWS Secrets Manager untuk RDS Proxy
RDS Proxy di Amazon RDS digunakan AWS Secrets Manager untuk menyimpan dan mengelola kredenal database dengan aman. Alih-alih menyematkan kredensi dalam aplikasi Anda, Anda mengaitkan proxy dengan rahasia Secrets Manager 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.
Membuat rahasia untuk digunakan dengan RDS Proxy
Sebelum Anda membuat proxy, Anda harus terlebih dahulu membuat setidaknya satu rahasia yang menyimpan kredensi database Anda.
Untuk membuat rahasia
Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/
. -
Pilih Simpan rahasia baru.
-
Pilih Kredensial untuk database Amazon RDS.
-
Masukkan nama pengguna dan kata sandi. Kredensial yang Anda masukkan harus cocok dengan kredensi pengguna database yang ada di database RDS terkait. RDS Proxy menggunakan kredensil ini untuk mengautentikasi dan membangun 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 case-sensitive di Secrets Manager, terlepas dari pengaturan pengumpulan instans DB. Jika aplikasi Anda mengizinkan nama pengguna dengan kapitalisasi 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
. -
Untuk Database, pilih database Amazon RDS yang akan diakses rahasia.
-
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 Amazon Resource Names (ARNs) dari rahasia terkait. Anda melakukannya untuk semua akun pengguna DB yang dapat diakses proksi. Dalam AWS Management Console, Anda memilih rahasia dengan nama deskriptif mereka.
-
Untuk membuat rahasia Secrets Manager untuk digunakan dengan RDS Proxy, gunakan perintah create-secret:
aws secretsmanager create-secret \ --name "
secret_name
" \ --description "secret_description
" \ --regionregion_name
\ --secret-string '{"username":"db_user","password":"db_user_password"}' -
Anda juga dapat membuat kunci khusus untuk mengenkripsi rahasia Secrets Manager Anda. Perintah berikut menciptakan sebuah contoh kunci.
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 Secrets Manager 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 \ --namesecret_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 \ --namesecret_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 daftar-rahasia:
aws secretsmanager list-secrets
Saat Anda membuat proxy menggunakan CLI, Anda meneruskan Amazon Resource Names (ARNs) 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 akun Anda AWS . Contoh ini menggunakan --output table
parameter yang tersedia di AWS CLI versi 2. Jika Anda menggunakan AWS CLI versi 1, gunakan --output
text
sebagai gantinya.
aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table
Untuk mengonfirmasi bahwa rahasia berisi kredensil yang benar dalam format yang tepat, gunakan perintah. get-secret-value Ganti
dengan nama pendek rahasia atau ARN.your_secret_name
aws secretsmanager get-secret-value --secret-id
your_secret_name
Outputnya berisi garis dengan nilai yang dikodekan JSON mirip dengan yang berikut ini:
... "SecretString": "{\"username\":\"
your_username
\",\"password\":\"your_password
\"}", ...