Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan rahasia untuk mengakses titik akhir AWS Database Migration Service
Untuk AWS DMS, rahasia adalah kunci terenkripsi yang dapat Anda gunakan untuk mewakili sekumpulan kredensi pengguna untuk mengautentikasi, melalui otentikasi rahasia, koneksi database untuk sumber yang didukung atau titik akhir target. AWS DMS Untuk endpoint Oracle yang juga menggunakan Oracle Automatic Storage Management (ASM), AWS DMS memerlukan rahasia tambahan yang mewakili kredensi pengguna untuk mengakses Oracle ASM.
Anda dapat membuat rahasia atau rahasia yang AWS DMS memerlukan otentikasi rahasia menggunakan AWS Secrets Manager, layanan untuk membuat, menyimpan, dan mengambil kredensil dengan aman untuk mengakses aplikasi, layanan, dan sumber daya TI di cloud dan di lokasi. Ini termasuk dukungan untuk rotasi berkala otomatis dari nilai rahasia terenkripsi tanpa intervensi Anda, sehingga memberikan tingkat keamanan tambahan untuk kredensial Anda. Mengaktifkan rotasi nilai rahasia AWS Secrets Manager juga memastikan bahwa rotasi nilai rahasia ini terjadi tanpa efek apa pun pada migrasi database apa pun yang bergantung pada rahasia. Untuk mengautentikasi koneksi basis data titik akhir secara rahasia, buat rahasia yang identitas atau ARN-nya Anda tetapkan untuk SecretsManagerSecretId
, yang Anda sertakan dalam pengaturan titik akhir Anda. Untuk mengautentikasi Oracle ASM sebagai bagian dari titik akhir Oracle secara rahasia, buat rahasia yang identitas atau ARN-nya Anda tetapkan untuk SecretsManagerOracleAsmSecretId
, yang juga Anda sertakan dalam pengaturan titik akhir Anda.
catatan
Anda tidak dapat menggunakan kredensi master yang dikelola oleh Amazon RDS Aurora. Kredensi ini tidak termasuk informasi host atau port, yang AWS DMS perlu membuat koneksi. Sebagai gantinya, buat pengguna baru dan rahasia. Untuk informasi tentang membuat pengguna dan rahasia, lihat Menggunakan AWS Management Console untuk membuat peran akses rahasia dan rahasia berikut.
Untuk informasi selengkapnya AWS Secrets Manager, lihat Apa itu AWS Secrets Manager? dalam AWS Secrets Manager User Guide.
AWS DMS mendukung otentikasi rahasia untuk database on-premise atau AWS-managed berikut pada sumber yang didukung dan titik akhir target:
-
Amazon DocumentDB
-
IBM Db2 LUW
-
Microsoft SQL Server
-
MongoDB
-
MySQL
-
Oracle
-
PostgreSQL
-
Amazon Redshift
-
SAP ASE
Untuk koneksi ke salah satu basis data ini, Anda memiliki pilihan untuk memasukkan salah satu dari rangkaian nilai berikut, tetapi tidak keduanya, sebagai bagian dari pengaturan titik akhir Anda:
-
Nilai teks yang jelas untuk mengautentikasi koneksi basis data menggunakan pengaturan
UserName
,Password
,ServerName
, danPort
. Untuk titik akhir Oracle yang juga menggunakan Oracle ASM, sertakan nilai teks yang jelas tambahan untuk mengautentikasi ASM menggunakan pengaturanAsmUserName
,AsmPassword
, danAsmServerName
. -
Autentikasi rahasia menggunakan nilai untuk pengaturan
SecretsManagerSecretId
danSecretsManagerAccessRoleArn
. Untuk titik akhir Oracle yang menggunakan Oracle ASM, sertakan nilai tambahan untuk pengaturanSecretsManagerOracleAsmSecretId
danSecretsManagerOracleAsmAccessRoleArn
. Nilai rahasia untuk pengaturan ini dapat mencakup berikut ini untuk:-
SecretsManagerSecretId
– Amazon Resource Name (ARN) lengkap, ARN parsial, atau nama yang dikenal dari rahasia yang telah Anda buat untuk akses basis data titik akhir di AWS Secrets Manager. -
SecretsManagerAccessRoleArn
— ARN dari peran akses rahasia yang telah Anda buat di IAM untuk menyediakan AWS DMS akses keSecretsManagerSecretId
rahasia ini atas nama Anda. -
SecretsManagerOracleAsmSecretId
– Amazon Resource Name (ARN) lengkap, ARN parsial, atau nama yang dikenal dari rahasia yang telah Anda buat untuk akses Oracle ASM di AWS Secrets Manager. -
SecretsManagerOracleAsmAccessRoleArn
– ARN dari peran akses rahasia yang telah Anda buat di IAM untuk memberikan akses AWS DMS ke rahasiaSecretsManagerOracleAsmSecretId
atas nama Anda.
catatan
Anda juga dapat menggunakan peran akses rahasia tunggal untuk menyediakan AWS DMS akses ke
SecretsManagerSecretId
rahasia danSecretsManagerOracleAsmSecretId
rahasia. Jika Anda membuat peran akses rahasia tunggal ini untuk kedua rahasia, pastikan bahwa Anda menetapkan ARN yang sama untuk peran akses ini untukSecretsManagerAccessRoleArn
danSecretsManagerOracleAsmAccessRoleArn
. Misalnya, jika peran akses rahasia Anda untuk kedua rahasia memiliki ARN yang ditugaskan untuk variabel,ARN2xsecrets
, Anda dapat mengatur pengaturan ARN ini sebagai berikut:SecretsManagerAccessRoleArn = ARN2xsecrets; SecretsManagerOracleAsmAccessRoleArn = ARN2xsecrets;
Untuk informasi lebih lanjut tentang nilai-nilai tersebut, lihat Menggunakan AWS Management Console untuk membuat peran akses rahasia dan rahasia.
-
Setelah Anda telah membuat dan menentukan pengaturan rahasia dan titik akhir akses-peran rahasia yang diperlukan untuk titik akhir Anda, perbarui izin pada akun pengguna yang akan menjalankan permintaan CreateEndpoint
atau ModifyEndpoint
API dengan detail rahasia ini. Pastikan bahwa izin akun ini mencakup IAM:GetRole
izin pada peran akses rahasia dan SecretsManager:DescribeSecret
izin pada rahasia. AWS DMS memerlukan izin ini untuk memvalidasi peran akses dan rahasianya.
Untuk memberikan dan memverifikasi izin pengguna yang diperlukan
-
Masuk ke AWS Management Console dan buka AWS Identity and Access Management konsol dihttps://console.aws.amazon.com/iam/
. -
Pilih Pengguna, lalu pilih ID Pengguna yang digunakan untuk membuat panggilan
CreateEndpoint
danModifyEndpoint
API. -
Dari tab Izin, pilih {} JSON.
-
Pastikan pengguna memiliki izin yang ditampilkan berikut ini.
{ "Statement": [{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "
SECRET_ACCESS_ROLE_ARN
" }, { "Effect": "Allow", "Action": "secretsmanager:DescribeSecret", "Resource": "SECRET_ARN
" } ] } -
Jika pengguna tidak memiliki izin tersebut, tambahkan izin.
-
Jika Anda menggunakan IAM role untuk melakukan panggilan DMS API, ulangi langkah-langkah di atas untuk masing-masing peran.
-
Buka terminal dan gunakan AWS CLI untuk memvalidasi bahwa izin diberikan dengan benar dengan mengasumsikan Peran atau Pengguna yang digunakan di atas.
-
Validasi izin pengguna pada SecretAccessRole menggunakan perintah IAM
get-role
.aws iam get-role --role-name
ROLE_NAME
Ganti
ROLE_NAME
dengan namaSecretsManagerAccessRole
.Jika perintah mengembalikan pesan kesalahan, pastikan izin diberikan dengan benar.
-
Memvalidasi izin pengguna pada rahasia menggunakan perintah Secrets Manager
describe-secret
.aws secretsmanager describe-secret --secret-id
SECRET_NAME OR SECRET_ARN
--region=REGION_NAME
Pengguna bisa menjadi nama yang dikenal, ARN parsial atau ARN lengkap. Untuk informasi lebih lanjut, lihat uraikan-rahasia.
Jika perintah mengembalikan pesan kesalahan, pastikan izin diberikan dengan benar.
-
Menggunakan AWS Management Console untuk membuat peran akses rahasia dan rahasia
Anda dapat menggunakan AWS Management Console untuk membuat rahasia untuk otentikasi titik akhir dan untuk membuat kebijakan dan peran AWS DMS untuk memungkinkan mengakses rahasia atas nama Anda.
Untuk membuat rahasia menggunakan AWS Management Console yang AWS DMS dapat digunakan untuk mengautentikasi database untuk sumber dan koneksi titik akhir target
-
Masuk ke AWS Management Console dan buka AWS Secrets Manager konsol dihttps://console.aws.amazon.com/secretsmanager/
. -
Pilih Simpan rahasia baru.
-
Di bawah Pilih tipe rahasia pada halaman Simpan rahasia baru, pilih Jenis rahasia lainnya, lalu pilih Plaintext.
catatan
Ini adalah satu-satunya tempat yang Anda butuhkan untuk memasukkan kredensial teks yang jelas untuk terhubung ke basis data titik akhir Anda mulai saat ini hingga seterusnya.
-
Di bidang Plaintext:
-
Untuk rahasia yang identitasnya Anda tetapkan pada
SecretsManagerSecretId
, masukkan struktur JSON berikut ini.{ "username":
db_username
, "password":db_user_password
, "port":db_port_number
, "host":db_server_name
}catatan
Ini adalah daftar minimum anggota JSON yang diperlukan untuk mengautentikasi basis data titik akhir. Anda dapat menambahkan pengaturan titik akhir JSON tambahan sebagai anggota JSON dalam huruf kecil yang Anda inginkan. Namun, AWS DMS mengabaikan setiap anggota JSON tambahan untuk autentikasi titik akhir.
Di sini,
adalah nama pengguna yang mengakses basis data ,db_username
adalah kata sandi dari pengguna basis data,db_user_password
adalah nomor port untuk mengakses database, dandb_port_number
adalah nama server basis data (alamat) di web, seperti dalam contoh berikut.db_server_name
{ "username": "admin", "password": "some_password", "port": "8190", "host": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com" }
-
Untuk rahasia yang identitasnya Anda tetapkan pada
SecretsManagerOracleAsmSecretId
, masukkan struktur JSON berikut ini.{ "asm_user":
asm_username
, "asm_password":asm_user_password
, "asm_server":asm_server_name
}catatan
Ini adalah daftar minimum anggota JSON yang diperlukan untuk mengautentikasi Oracle ASM untuk titik akhir Oracle. Daftar ini juga merupakan daftar lengkap yang dapat Anda tentukan berdasarkan pengaturan titik akhir Oracle ASM yang tersedia.
Di sini,
adalah nama pengguna yang mengakses Oracle ASM,asm_username
adalah kata sandi pengguna Oracle ASM, danasm_user_password
adalah nama server (alamat) Oracle ASM di web, termasuk port, seperti dalam contoh berikut.asm_server_name
{ "asm_user": "oracle_asm_user", "asm_password": "oracle_asm_password", "asm_server": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com:8190/+ASM" }
-
-
Pilih kunci AWS KMS enkripsi untuk mengenkripsi rahasia. Anda dapat menerima kunci enkripsi default yang dibuat untuk layanan Anda dengan AWS Secrets Manager atau memilih AWS KMS kunci yang Anda buat.
-
Tentukan nama untuk mereferensikan rahasia ini dan deskripsi opsional. Ini adalah nama yang dikenal yang Anda gunakan sebagai nilai untuk
SecretsManagerSecretId
atauSecretsManagerOracleAsmSecretId
. -
Jika Anda ingin mengaktifkan rotasi otomatis dalam rahasia, Anda perlu memilih atau membuat AWS Lambda fungsi dengan izin untuk memutar kredensil untuk rahasia seperti yang dijelaskan. Namun, sebelum mengatur rotasi otomatis untuk menggunakan fungsi Lambda Anda, pastikan bahwa pengaturan konfigurasi untuk fungsi tersebut menambahkan empat karakter berikut ke nilai variabel lingkungan
EXCLUDE_CHARACTERS
.;.:+{}
AWS DMS tidak mengizinkan karakter ini dalam kata sandi yang digunakan untuk kredensil titik akhir. Mengonfigurasi fungsi Lambda Anda untuk mengecualikan karakter tersebut mencegah AWS Secrets Manager dari menghasilkan karakter tersebut sebagai bagian dari nilai kata sandi yang dirotasi. Setelah Anda mengatur rotasi otomatis untuk menggunakan fungsi Lambda Anda, AWS Secrets Manager segera putar rahasia untuk memvalidasi konfigurasi rahasia Anda.
catatan
Tergantung pada konfigurasi mesin basis data Anda, basis data Anda mungkin tidak mengambil kredensial yang dirotasi. Dalam hal ini, Anda perlu memulai ulang tugas secara manual untuk menyegarkan kredensial.
-
Tinjau dan simpan rahasia Anda AWS Secrets Manager. Anda kemudian dapat mencari setiap rahasia dengan nama ramahnya AWS Secrets Manager, lalu mengambil ARN rahasia sebagai nilai
SecretsManagerSecretId
untukSecretsManagerOracleAsmSecretId
atau sesuai untuk mengautentikasi akses ke koneksi database endpoint Anda dan Oracle ASM (jika digunakan).
Untuk membuat kebijakan akses rahasia dan peran untuk mengatur SecretsManagerAccessRoleArn
atauSecretsManagerOracleAsmAccessRoleArn
, yang memungkinkan akses AWS DMSAWS Secrets Manager untuk mengakses rahasia Anda yang sesuai
-
Masuk ke AWS Management Console dan buka konsol AWS Identity and Access Management (IAM) di https://console.aws.amazon.com/iam/
. -
Pilih Kebijakan, lalu pilih Buat kebijakan.
-
Pilih JSON dan masukkan kebijakan berikut untuk mengaktifkan akses ke dan dekripsi rahasia Anda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource":
secret_arn
, }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource":kms_key_arn
, } ] }Di sini,
adalah ARN rahasia Anda, yang bisa Anda dapatkan darisecret_arn
SecretsManagerSecretId
atauSecretsManagerOracleAsmSecretId
yang sesuai, dan
adalah ARN kunci AWS KMS yang Anda gunakan untuk mengenkripsi rahasia Anda, seperti dalam contoh berikut.kms_key_arn
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:us-east-2:123456789012:secret:MySQLTestSecret-qeHamH" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/761138dc-0542-4e58-947f-4a3a8458d0fd" } ] }
catatan
Jika Anda menggunakan kunci enkripsi default yang dibuat oleh AWS Secrets Manager, Anda tidak perlu menentukan AWS KMS izin untuk
.kms_key_arn
Jika Anda ingin kebijakan Anda menyediakan akses ke kedua rahasia, cukup tentukan objek sumber daya JSON tambahan untuk yang lain
secret_arn
.Jika rahasia Anda ada di akun yang berbeda, maka
SecretsManagerAccessRoleArn
peran tersebut memerlukan kebijakan tambahan untuk memverifikasi rahasia lintas akun. Untuk kasus penggunaan seperti itu, tambahkan tindakansecretsmanager:DescribeSecret
ke kebijakan. Untuk detail selengkapnya tentang menyiapkan rahasia lintas akun, lihat Rahasia Izin untuk AWS Secrets Manager untuk pengguna di akun lain. -
Tinjau dan buat kebijakan dengan nama yang dikenal dan deskripsi opsional.
-
Pilih Peran, lalu pilih Buat peran.
-
Pilih layanan AWS sebagai jenis entitas terpercaya.
-
Pilih DMS dari daftar layanan sebagai layanan terpercaya, lalu pilih Berikutnya: Izin.
-
Cari dan lampirkan kebijakan yang Anda buat di langkah 4, lalu lanjutkan dengan menambahkan tag dan tinjau peran Anda. Pada titik ini, edit hubungan kepercayaan agar peran tersebut menggunakan prinsipal layanan AWS DMS regional Anda sebagai entitas tepercaya. Prinsipal ini memiliki format berikut.
dms.
region-name
.amazonaws.com.rproxy.goskope.comDi sini,
adalah nama wilayah Anda, sepertiregion-name
us-east-1
. Dengan demikian, kepala layanan AWS DMS regional untuk wilayah ini mengikuti.dms.us-east-1.amazonaws.com
-
Setelah mengedit entitas terpercaya untuk peran tersebut, buat peran dengan nama yang dikenal dan deskripsi opsional. Anda sekarang dapat mencari peran baru Anda dengan nama yang dikenal di IAM, kemudian mengambil ARN peran sebagai nilai
SecretsManagerAccessRoleArn
atauSecretsManagerOracleAsmAccessRoleArn
untuk mengautentikasi koneksi basis data titik akhir Anda.
Untuk menggunakan secrets manager dengan instans replikasi di subnet privat
-
Buat VPC endpoint secret manager dan perhatikan DNS untuk titik akhir. Untuk informasi lebih lanjut tentang cara membuat VPC endpoint secret manager, lihat Menghubungkan ke Secrets Manager melalui VPC endpoint di Panduan Pengguna Secrets Manager AWS .
-
Lampirkan grup keamanan instans replikasi ke VPC endpoint secret manager.
-
Untuk aturan keluar grup keamanan instans replikasi, izinkan semua lalu lintas untuk tujuan
0.0.0.0/0
. -
Atur atribut koneksi tambahan titik akhir,
secretsManagerEndpointOverride=
untuk memberikan DNS VPC endpoint secret manager, seperti yang ditunjukkan dalam contoh berikut.secretsManager endpoint DNS
secretsManagerEndpointOverride=vpce-1234a5678b9012c-12345678.secretsmanager.eu-west-1.vpce.amazonaws.com