Manajemen kata sandi dengan Aurora dan AWS Secrets Manager - Amazon Aurora

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

Manajemen kata sandi dengan Aurora dan AWS Secrets Manager

Aurora terintegrasi dengan Secrets Manager untuk mengelola kata sandi pengguna utama untuk cluster DB multi-AZ Anda.

Wilayah dan ketersediaan versi

Ketersediaan dan dukungan fitur bervariasi di seluruh versi spesifik dari setiap mesin basis data dan di seluruh Wilayah AWS. Untuk informasi selengkapnya tentang ketersediaan versi dan Wilayah dengan integrasi Secrets Manager dengan Amazon Aurora, lihat Daerah yang Didukung dan engine Aurora DB untuk integrasi Secrets Manager.

Batasan untuk integrasi Secrets Manager dengan Aurora

Mengelola kata sandi pengguna utama dengan Secrets Manager tidak didukung untuk fitur berikut:

  • Penyebaran RDS Biru/Hijau Amazon

  • Klaster DB yang merupakan bagian dari basis data global Aurora

  • Aurora Serverless v1 Klaster DB

  • Aurora baca replika

Ikhtisar mengelola kata sandi pengguna master dengan AWS Secrets Manager

Dengan AWS Secrets Manager, Anda dapat mengganti kredensi hard-code dalam kode Anda, termasuk kata sandi database, dengan panggilan ke API Secrets Manager untuk mengambil rahasia secara terprogram. Untuk informasi selengkapnya tentang Secrets Manager, lihat Panduan Pengguna AWS Secrets Manager.

Ketika Anda menyimpan rahasia database di Secrets Manager, Anda akan Akun AWS dikenakan biaya. Untuk informasi tentang harga, lihat AWS Secrets Manager Harga.

Anda dapat menentukan bahwa Aurora mengelola kata sandi pengguna utama di Secrets Manager untuk DB cluster saat Anda melakukan salah satu operasi berikut:

  • Membuat replika baca klaster DB

  • Mengubah klaster DB

  • Kembalikan cluster DB dari Amazon S3 (Aurora Milik saya saja) SQL

Saat Anda menentukan bahwa Aurora mengelola kata sandi pengguna utama di Secrets Manager, Aurora menghasilkan kata sandi dan menyimpannya di Secrets Manager. Anda dapat berinteraksi langsung dengan rahasia untuk mengambil kredensial untuk pengguna utama. Anda juga dapat menentukan kunci yang dikelola pelanggan untuk mengenkripsi rahasia, atau menggunakan KMS kunci yang disediakan oleh Secrets Manager.

Aurora mengelola pengaturan untuk rahasia dan memutar rahasia setiap tujuh hari secara default. Anda dapat mengubah beberapa pengaturan, seperti jadwal rotasi. Jika Anda menghapus klaster DB yang mengelola rahasia di Secrets Manager, rahasia dan metadata terkaitnya juga akan dihapus.

Untuk terhubung ke klaster DB dengan kredensial dalam rahasia, Anda dapat mengambil rahasia dari Secrets Manager. Untuk informasi selengkapnya, lihat Mengambil rahasia dari AWS Secrets Manager dan Connect ke SQL database dengan kredensi dalam AWS Secrets Manager rahasia di Panduan Pengguna.AWS Secrets Manager

Manfaat mengelola kata sandi pengguna utama dengan Secrets Manager

Mengelola kata sandi pengguna master Aurora dengan Secrets Manager memberikan manfaat berikut:

  • Aurora secara otomatis menghasilkan kredensil basis data.

  • Aurora secara otomatis menyimpan dan mengelola kredensi database di. AWS Secrets Manager

  • Aurora memutar kredensi database secara teratur, tanpa memerlukan perubahan aplikasi.

  • Secrets Manager mengamankan kredensial basis data dari akses manusia dan tampilan teks biasa.

  • Secrets Manager memungkinkan pengambilan kredensial basis data rahasia untuk koneksi basis data.

  • Secrets Manager memungkinkan kontrol halus akses ke kredenal database dalam rahasia menggunakan. IAM

  • Anda dapat secara opsional memisahkan enkripsi database dari enkripsi kredensil dengan kunci yang berbeda. KMS

  • Anda dapat menghilangkan rotasi dan manajemen manual kredensial basis data.

  • Anda dapat memantau kredensi database dengan mudah dengan dan AWS CloudTrail Amazon. CloudWatch

Untuk informasi selengkapnya tentang manfaat Secrets Manager, lihat Panduan Pengguna AWS Secrets Manager.

Izin yang diperlukan untuk integrasi Secrets Manager

Pengguna harus memiliki izin yang diperlukan untuk melakukan operasi yang terkait dengan integrasi Secrets Manager. Anda dapat membuat IAM kebijakan yang memberikan izin untuk melakukan API operasi tertentu pada sumber daya tertentu yang mereka butuhkan. Anda kemudian dapat melampirkan kebijakan tersebut ke set IAM izin atau peran yang memerlukan izin tersebut. Untuk informasi selengkapnya, lihat Manajemen identitas dan akses untuk Aurora.

Untuk membuat, memodifikasi, atau memulihkan operasi, pengguna yang menentukan bahwa Aurora mengelola kata sandi pengguna utama di Secrets Manager harus memiliki izin untuk melakukan operasi berikut:

  • kms:DescribeKey

  • secretsmanager:CreateSecret

  • secretsmanager:TagResource

kms:DescribeKeyIzin diperlukan untuk mengakses kunci yang dikelola pelanggan Anda untuk MasterUserSecretKmsKeyId dan untuk menjelaskan. aws/secretsmanager

Untuk membuat, memodifikasi, atau memulihkan operasi, pengguna yang menentukan kunci yang dikelola pelanggan untuk mengenkripsi rahasia dalam Secrets Manager harus memiliki izin untuk melakukan operasi berikut:

  • kms:Decrypt

  • kms:GenerateDataKey

  • kms:CreateGrant

Untuk mengubah operasi, pengguna yang merotasi kata sandi pengguna utama dalam Secrets Manager harus memiliki izin untuk melakukan operasi berikut:

  • secretsmanager:RotateSecret

Menegakkan manajemen Aurora dari kata sandi pengguna utama di AWS Secrets Manager

Anda dapat menggunakan tombol IAM kondisi untuk menegakkan manajemen Aurora dari kata sandi pengguna utama di. AWS Secrets Manager Kebijakan berikut tidak mengizinkan pengguna untuk membuat atau memulihkan instans DB atau kluster DB kecuali kata sandi pengguna utama dikelola oleh Aurora di Secrets Manager.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": ["rds:CreateDBInstance", "rds:CreateDBCluster", "rds:RestoreDBInstanceFromS3", "rds:RestoreDBClusterFromS3"], "Resource": "*", "Condition": { "Bool": { "rds:ManageMasterUserPassword": false } } } ] }
catatan

Kebijakan ini memberlakukan manajemen kata sandi pada AWS Secrets Manager saat pembuatan. Namun, Anda masih dapat menonaktifkan integrasi Secrets Manager dan mengatur kata sandi utama secara manual dengan mengubah klaster.

Untuk mencegahnya, sertakan rds:ModifyDBInstance, rds:ModifyDBCluster dalam blok tindakan kebijakan. Perhatikan bahwa tindakan ini akan mencegah pengguna menerapkan perubahan lebih lanjut pada klaster yang ada yang Secrets Manager-nya tidak diaktifkan.

Untuk informasi selengkapnya tentang menggunakan kunci kondisi dalam IAM kebijakan, lihat Kunci kondisi kebijakan untuk Aurora danContoh Kebijakan: Menggunakan kunci kondisi.

Mengelola kata sandi pengguna utama untuk klaster DB dengan Secrets Manager

Anda dapat mengonfigurasi manajemen Aurora dari kata sandi pengguna utama di Secrets Manager saat Anda melakukan tindakan berikut:

Anda dapat menggunakan RDS konsol, AWS CLI, atau RDS API untuk melakukan tindakan ini.

Ikuti instruksi untuk membuat atau memodifikasi cluster DB dengan konsol: RDS

Saat Anda menggunakan RDS konsol untuk melakukan salah satu operasi ini, Anda dapat menentukan bahwa kata sandi pengguna utama dikelola oleh Aurora di Secrets Manager. Untuk melakukannya saat membuat atau memulihkan klaster DB, pilih Kelola kredensial utama di AWS Secrets Manager dalam Pengaturan kredensial. Saat Anda mengubah klaster DB, pilih Kelola kredensial utama di AWS Secrets Manager dalam Pengaturan.

Gambar berikut adalah contoh pengaturan Kelola kredensial utama di AWS Secrets Manager saat Anda membuat atau memulihkan klaster DB.

Kelola kredensi master di AWS Secrets Manager

Ketika Anda memilih opsi ini, Aurora menghasilkan kata sandi pengguna utama dan mengelolanya sepanjang siklus hidupnya di Secrets Manager.

Mengelola kredensi master dalam pilihan AWS Secrets Manager

Anda dapat memilih untuk mengenkripsi rahasia dengan KMS kunci yang disediakan Secrets Manager atau dengan kunci terkelola pelanggan yang Anda buat. Setelah Aurora mengelola kredensi database untuk cluster DB, Anda tidak dapat mengubah KMS kunci yang digunakan untuk mengenkripsi rahasia.

Anda dapat memilih pengaturan lain untuk memenuhi kebutuhan Anda.

Untuk informasi selengkapnya tentang pengaturan yang tersedia saat Anda membuat klaster DB, lihat Pengaturan untuk klaster Aurora DB. Untuk informasi selengkapnya tentang pengaturan yang tersedia saat Anda mengubah klaster DB, lihat Pengaturan untuk Amazon Aurora.

Untuk menentukan bahwa Aurora mengelola kata sandi pengguna utama di Secrets Manager, tentukan --manage-master-user-password opsi di salah satu perintah berikut:

Saat Anda menentukan --manage-master-user-password opsi dalam perintah ini, Aurora menghasilkan kata sandi pengguna utama dan mengelolanya sepanjang siklus hidupnya di Secrets Manager.

Untuk mengenkripsi rahasia, Anda dapat menentukan kunci yang dikelola pelanggan atau menggunakan KMS kunci default yang disediakan oleh Secrets Manager. Gunakan opsi --master-user-secret-kms-key-id untuk menentukan kunci yang dikelola pelanggan. Pengidentifikasi AWS KMS kunci adalah kunci, ID kunciARN, aliasARN, atau nama alias untuk kunci tersebut. KMS Untuk menggunakan KMS kunci yang berbeda Akun AWS, tentukan kunci ARN atau aliasARN. Setelah Aurora mengelola kredensi database untuk cluster DB, Anda tidak dapat mengubah KMS kunci yang digunakan untuk mengenkripsi rahasia.

Anda dapat memilih pengaturan lain untuk memenuhi kebutuhan Anda.

Untuk informasi selengkapnya tentang pengaturan yang tersedia saat Anda membuat klaster DB, lihat Pengaturan untuk klaster Aurora DB. Untuk informasi selengkapnya tentang pengaturan yang tersedia saat Anda mengubah klaster DB, lihat Pengaturan untuk Amazon Aurora.

Contoh ini membuat cluster DB dan menentukan bahwa Aurora mengelola kata sandi di Secrets Manager. Rahasianya dienkripsi menggunakan KMS kunci yang disediakan oleh Secrets Manager.

Untuk Linux, macOS, atau Unix:

aws rds create-db-cluster \ --db-cluster-identifier sample-cluster \ --engine aurora-mysql \ --engine-version 8.0 \ --master-username admin \ --manage-master-user-password

Untuk Windows:

aws rds create-db-cluster ^ --db-cluster-identifier sample-cluster ^ --engine aurora-mysql ^ --engine-version 8.0 ^ --master-username admin ^ --manage-master-user-password

Untuk menentukan bahwa Aurora mengelola kata sandi pengguna utama di Secrets Manager, atur ManageMasterUserPassword parameter ke true salah satu operasi berikut:

Ketika Anda mengatur ManageMasterUserPassword parameter ke true dalam salah satu operasi ini, Aurora menghasilkan kata sandi pengguna utama dan mengelolanya sepanjang siklus hidupnya di Secrets Manager.

Untuk mengenkripsi rahasia, Anda dapat menentukan kunci yang dikelola pelanggan atau menggunakan KMS kunci default yang disediakan oleh Secrets Manager. Gunakan parameter MasterUserSecretKmsKeyId untuk menentukan kunci yang dikelola pelanggan. Pengidentifikasi AWS KMS kunci adalah kunci, ID kunciARN, aliasARN, atau nama alias untuk kunci tersebut. KMS Untuk menggunakan KMS kunci yang berbeda Akun AWS, tentukan kunci ARN atau aliasARN. Setelah Aurora mengelola kredensi database untuk cluster DB, Anda tidak dapat mengubah KMS kunci yang digunakan untuk mengenkripsi rahasia.

Merotasi rahasia kata sandi pengguna utama untuk klaster DB

Ketika Aurora memutar rahasia kata sandi pengguna master, Secrets Manager menghasilkan versi rahasia baru untuk rahasia yang ada. Rahasia versi baru berisi kata sandi pengguna utama baru. Aurora mengubah kata sandi pengguna utama untuk cluster DB agar sesuai dengan kata sandi untuk versi rahasia baru.

Anda dapat segera merotasi rahasia, alih-alih menunggu rotasi yang dijadwalkan. Untuk merotasi rahasia kata sandi pengguna utama di Secrets Manager, ubah klaster DB . Untuk informasi tentang cara mengubah klaster DB, lihat Memodifikasi klaster DB Amazon Aurora.

Anda dapat memutar rahasia kata sandi pengguna master segera dengan RDS konsol AWS CLI,, atau RDSAPI. Kata sandi baru selalu sepanjang 28 karakter dan berisi setidaknya satu karakter huruf besar dan kecil, satu angka, dan satu tanda baca.

Untuk memutar rahasia kata sandi pengguna master menggunakan RDS konsol, ubah cluster DB dan pilih Putar rahasia segera di Pengaturan.

Merotasi rahasia kata sandi pengguna utama secara langsung

Memodifikasi cluster DB dengan menggunakan konsol,CLI, dan API. Anda harus memilih Terapkan langsung di halaman konfirmasi.

Untuk memutar rahasia kata sandi pengguna master menggunakan AWS CLI, gunakan modify-db-clusterperintah dan tentukan --rotate-master-user-password opsi. Anda harus menentukan opsi --apply-immediately saat merotasi kata sandi utama.

Contoh ini merotasi rahasia kata sandi pengguna utama.

Untuk Linux, macOS, atau Unix:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --rotate-master-user-password \ --apply-immediately

Untuk Windows:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --rotate-master-user-password ^ --apply-immediately

Anda dapat memutar rahasia kata sandi pengguna master menggunakan odifyDBCluster operasi M dan mengatur RotateMasterUserPassword parameternyatrue. Anda harus mengatur parameter ApplyImmediately ke true saat merotasi kata sandi utama.

Melihat detail tentang rahasia untuk klaster DB

Anda dapat mengambil rahasia Anda menggunakan console (https://console.aws.amazon.com/secretsmanager/) atau perintah AWS CLI (get-secret-valueSecrets Manager).

Anda dapat menemukan Amazon Resource Name (ARN) dari rahasia yang dikelola oleh Aurora di Secrets Manager dengan RDS konsol, the AWS CLI, atau file. RDS API

Untuk melihat detail tentang rahasia yang dikelola oleh Aurora di Secrets Manager
  1. Masuk ke AWS Management Console dan buka RDS konsol Amazon di https://console.aws.amazon.com/rds/.

  2. Di panel navigasi, pilih Basis Data.

  3. Pilih nama klaster DB untuk menampilkan detailnya.

  4. Pilih tab Konfigurasi.

    Di Master Credentials ARN, Anda dapat melihat rahasianya. ARN

    Lihat detail tentang rahasia yang dikelola oleh Aurora di Secrets Manager

    Anda dapat mengikuti tautan Mengelola di Secrets Manager untuk melihat dan mengelola rahasia di konsol Secrets Manager.

Anda dapat menggunakan RDS AWS CLI describe-db-clustersperintah untuk menemukan informasi berikut tentang rahasia yang dikelola oleh Aurora di Secrets Manager:

  • SecretArn— ARN Rahasia

  • SecretStatus – Status rahasia

    Kemungkinan nilai statusnya meliputi:

    • creating – Rahasia sedang dibuat.

    • active – Rahasia tersedia untuk penggunaan normal dan rotasi.

    • rotating – Rahasia sedang dirotasi.

    • impaired – Rahasia dapat digunakan untuk mengakses kredensial basis data, tetapi tidak dapat dirotasi. Sebuah rahasia mungkin memiliki status ini jika, misalnya, izin diubah sehingga tidak RDS dapat lagi mengakses rahasia atau KMS kunci untuk rahasia.

      Ketika rahasia memiliki status ini, Anda dapat memperbaiki kondisi yang menyebabkan status tersebut. Jika Anda memperbaiki kondisi yang menyebabkan status, status tersebut tetap impaired hingga rotasi berikutnya. Sebagai alternatif, Anda dapat mengubah klaster DB untuk menonaktifkan manajemen otomatis kredensial basis data, dan kemudian mengubah klaster DB lagi untuk mengaktifkan manajemen otomatis kredensial basis data. Untuk memodifikasi cluster DB, gunakan --manage-master-user-password opsi dalam modify-db-clusterperintah.

  • KmsKeyId— KMS Kunci ARN yang digunakan untuk mengenkripsi rahasia

Tentukan opsi --db-cluster-identifier untuk menampilkan output untuk klaster DB tertentu. Contoh ini menunjukkan output untuk rahasia yang digunakan oleh klaster DB.

aws rds describe-db-clusters --db-cluster-identifier mydbcluster

Contoh berikut menunjukkan output untuk rahasia:

"MasterUserSecret": { "SecretArn": "arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx", "SecretStatus": "active", "KmsKeyId": "arn:aws:kms:eu-west-1:123456789012:key/0987dcba-09fe-87dc-65ba-ab0987654321" }

Ketika Anda memiliki rahasiaARN, Anda dapat melihat detail tentang rahasia menggunakan CLI perintah get-secret-valueSecrets Manager.

Contoh ini menunjukkan detail untuk rahasia dalam output sampel sebelumnya.

Untuk Linux, macOS, atau Unix:

aws secretsmanager get-secret-value \ --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'

Untuk Windows:

aws secretsmanager get-secret-value ^ --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'

Anda dapat melihatARN, status, dan KMS kunci untuk rahasia yang dikelola oleh Aurora di Secrets Manager menggunakan escribeDBClusters RDS operasi D dan mengatur DBClusterIdentifier parameter ke pengidentifikasi cluster DB. Detail tentang rahasia disertakan dalam output.

Ketika Anda memiliki rahasiaARN, Anda dapat melihat detail tentang rahasia menggunakan operasi GetSecretValueSecrets Manager.