Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan kredensi database untuk Proxy AWS Secrets Manager RDS
Untuk setiap proksi yang Anda buat, pertama-tama Anda harus menggunakan layanan Secrets Manager untuk menyimpan kumpulan kredensial nama pengguna dan kata sandi. Anda membuat rahasia Secrets Manager terpisah untuk setiap akun pengguna database yang terhubung dengan proxy pada instans RDS DB cluster .
Dalam konsol Secrets Manager, Anda dapat membuat rahasia ini dengan nilai untuk kolom username
dan password
. Melakukan hal itu memungkinkan proxy untuk terhubung ke pengguna database yang sesuai pada instance RDS DB yang Anda kaitkan dengan proxy. Untuk melakukan ini, Anda dapat menggunakan pengaturan Kredensial untuk database lain, Kredensial untuk RDS database, atau Jenis rahasia lainnya. Masukkan nilai yang sesuai di kolom Nama pengguna dan Kata sandi, dan nilai untuk kolom lain yang wajib diisi. Proksi akan mengabaikan kolom lain seperti Host dan Port jika ada dalam rahasia tersebut. Detail tersebut secara otomatis diisi oleh proksi.
Anda juga dapat memilih Jenis rahasia lainnya. Dalam kasus ini, Anda membuat rahasia dengan kunci bernama username
dan password
.
Untuk terhubung melalui proksi sebagai pengguna basis data tertentu, pastikan kata sandi yang terkait dengan rahasia cocok dengan kata sandi basis data untuk pengguna tersebut. Jika ada ketidakcocokan, Anda dapat memperbarui rahasia terkait dalam Secrets Manager. Dalam kasus ini, Anda masih dapat terhubung ke akun lain yang memiliki kredensial rahasia dan kata sandi basis data yang cocok.
catatan
RDSUntuk SQL Server, RDS Proxy memerlukan rahasia di Secrets Manager yang peka huruf besar/kecil terhadap kode aplikasi terlepas dari pengaturan pemeriksaan instans DB. Misalnya, jika aplikasi Anda dapat menggunakan nama pengguna “Admin” atau “admin”, maka konfigurasikan proxy dengan rahasia untuk “Admin” dan “admin”. RDSProxy tidak mengakomodasi ketidakpekaan kasus nama pengguna dalam proses otentikasi antara klien dan proxy.
Untuk informasi selengkapnya tentang pemeriksaan di SQL Server, lihat dokumentasi Microsoft SQL Server
Saat Anda membuat proxy melalui AWS CLI atau RDSAPI, 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 petunjuk tentang cara membuat rahasia di Secrets Manager, lihat halaman Membuat rahasia dalam dokumentasi Secrets Manager. Gunakan salah satu teknik berikut:
-
Gunakan Secrets Manager
di konsol. -
Untuk menggunakan CLI untuk membuat rahasia Secrets Manager untuk digunakan dengan RDS Proxy, gunakan perintah seperti berikut ini.
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.
PREFIX=
my_identifier
aws kms create-key --description "$PREFIX-test-key" --policy '{ "Id":"$PREFIX-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 seperti berikut ini.
aws secretsmanager list-secrets
Saat Anda membuat proxy menggunakanCLI, Anda meneruskan Amazon Resource Names (ARNs) dari satu atau beberapa rahasia ke --auth
parameter. Contoh Linux berikut menunjukkan cara menyiapkan laporan hanya dengan nama dan setiap rahasia ARN yang dimiliki oleh AWS akun Anda. Contoh ini menggunakan parameter --output table
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 memverifikasi bahwa Anda telah menyimpan kredensial yang benar dan dalam format yang benar dalam rahasia, gunakan perintah seperti berikut. Gantikan nama pendek atau rahasia untuk
. ARN your_secret_name
aws secretsmanager get-secret-value --secret-id
your_secret_name
Outputnya harus menyertakan garis yang menampilkan nilai JSON -encoded seperti berikut ini.
"SecretString": "{\"username\":\"
your_username
\",\"password\":\"your_password
\"}",