Menyiapkan kredensi database untuk Proxy AWS Secrets Manager RDS - Amazon Aurora:

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 Aurora DB.

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 Aurora DB cluster 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.

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" --region region_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 \ --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 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 untukyour_secret_name. ARN

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\"}",