Pindahkan kredensyal basis data hardcode ke AWS Secrets Manager - AWS Secrets Manager

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

Pindahkan kredensyal basis data hardcode ke AWS Secrets Manager

Jika Anda memiliki kredensyal database plaintext dalam kode Anda, kami sarankan Anda memindahkan kredensialnya ke Secrets Manager dan kemudian segera memutarnya. Memindahkan kredensyal ke Secrets Manager memecahkan masalah kredensyal yang terlihat oleh siapa saja yang melihat kode, karena ke depan, kode Anda mengambil kredensyal langsung dari Secrets Manager. Memutar rahasia memperbarui kata sandi dan kemudian mencabut kata sandi hardcode saat ini sehingga tidak lagi valid.

Untuk database Amazon RDS, Amazon Redshift, dan Amazon DocumentDB, gunakan langkah-langkah di halaman ini untuk memindahkan kredensyal hardcode ke Secrets Manager. Untuk jenis kredensyal dan rahasia lainnya, lihat. Pindahkan rahasia hardcode ke AWS Secrets Manager

Sebelum Anda mulai, Anda perlu menentukan siapa yang membutuhkan akses ke rahasia. Sebaiknya gunakan dua peran IAM untuk mengelola izin rahasia Anda:

  • Peran yang mengelola rahasia dalam organisasi Anda. Untuk informasi selengkapnya, lihat Izin administrator Secrets Manager. Anda akan membuat dan memutar rahasia menggunakan peran ini.

  • Peran yang dapat menggunakan kredensyal saat runtime, RoleToRetrieveSecretAtRuntimedalam tutorial ini. Kode Anda mengasumsikan peran ini untuk mengambil rahasia.

Langkah 1: Buat Rahasianya

Langkah pertama adalah menyalin kredensi hardcode yang ada menjadi rahasia di Secrets Manager. Untuk latensi terendah, simpan rahasia di Wilayah yang sama dengan database.

Untuk membuat rahasia
  1. Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/.

  2. Pilih Store a new secret (Simpan rahasia baru).

  3. Pada halaman Pilih jenis rahasia, lakukan hal berikut:

    1. Untuk tipe Rahasia, pilih jenis kredensyal database yang akan disimpan:

      • Basis data Amazon RDS

      • Basis data Amazon DocumentDB

      • Gudang data Amazon Redshift.

      • Untuk jenis rahasia lainnya, lihat Mengganti rahasia hardcode.

    2. Untuk Credentials, masukkan kredensyal hardcode yang ada untuk database.

    3. Untuk kunci Enkripsi, pilih aws/secretsmanager untuk menggunakan for Kunci yang dikelola AWS Secrets Manager. Tidak ada biaya untuk menggunakan kunci ini. Anda juga dapat menggunakan kunci yang dikelola pelanggan Anda sendiri, misalnya untuk mengakses rahasia dari yang lain Akun AWS. Untuk informasi tentang biaya penggunaan kunci yang dikelola pelanggan, lihatHarga.

    4. Untuk Database, pilih database Anda.

    5. Pilih Berikutnya.

  4. Pada halaman Konfigurasi rahasia, lakukan hal berikut:

    1. Masukkan nama Rahasia deskriptif dan Deskripsi.

    2. Di Izin sumber daya, pilih Edit izin. Tempel kebijakan berikut, yang memungkinkan RoleToRetrieveSecretAtRuntimeuntuk mengambil rahasia, lalu pilih Simpan.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountId:role/RoleToRetrieveSecretAtRuntime" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }
    3. Di bagian bawah halaman, pilih Selanjutnya.

  5. Pada halaman Konfigurasi rotasi, matikan rotasi untuk saat ini. Anda akan menyalakannya nanti. Pilih Berikutnya.

  6. Pada halaman Ulasan, tinjau detail rahasia Anda, lalu pilih Store.

Langkah 2: Perbarui kode Anda

Kode Anda harus mengambil peran IAM RoleToRetrieveSecretAtRuntimeuntuk dapat mengambil rahasia. Untuk informasi selengkapnya, lihat Beralih ke peran IAM (AWS API).

Selanjutnya, Anda memperbarui kode Anda untuk mengambil rahasia dari Secrets Manager menggunakan kode contoh yang disediakan oleh Secrets Manager.

Untuk menemukan kode sampel
  1. Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/.

  2. Pada halaman Rahasia, pilih rahasia Anda.

  3. Gulir ke bawah ke kode Contoh. Pilih bahasa Anda, lalu salin cuplikan kode.

Dalam aplikasi Anda, hapus kredensi hardcode dan tempel cuplikan kode. Bergantung pada bahasa kode Anda, Anda mungkin perlu menambahkan panggilan ke fungsi atau metode dalam cuplikan.

Uji apakah aplikasi Anda berfungsi seperti yang diharapkan dengan rahasia menggantikan kredensi hardcode.

Langkah 3: Putar rahasianya

Langkah terakhir adalah mencabut kredensi hardcode dengan memutar rahasianya. Rotasi adalah proses memperbarui rahasia secara berkala. Ketika Anda memutar rahasia, Anda memperbarui kredensyal di kedua rahasia dan database. Secrets Manager dapat secara otomatis memutar rahasia untuk Anda pada jadwal yang Anda tetapkan.

Bagian dari pengaturan rotasi adalah memastikan bahwa fungsi rotasi Lambda dapat mengakses Secrets Manager dan database Anda. Saat Anda mengaktifkan rotasi otomatis, Secrets Manager membuat fungsi rotasi Lambda di VPC yang sama dengan database Anda sehingga memiliki akses jaringan ke database. Fungsi rotasi Lambda juga harus dapat melakukan panggilan ke Secrets Manager untuk memperbarui rahasia. Kami menyarankan Anda membuat titik akhir Secrets Manager di VPC sehingga panggilan dari Lambda ke Secrets Manager tidak meninggalkan infrastruktur. AWS Untuk petunjuk, lihat Menggunakan titik AWS Secrets Manager VPC akhir.

Untuk mengaktifkan rotasi
  1. Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/.

  2. Pada halaman Rahasia, pilih rahasia Anda.

  3. Pada halaman Detail rahasia, di bagian konfigurasi Rotasi, pilih Edit rotasi.

  4. Dalam kotak dialog Edit konfigurasi rotasi, lakukan hal berikut:

    1. Nyalakan Rotasi otomatis.

    2. Di bawah jadwal Rotasi, masukkan jadwal Anda di zona waktu UTC.

    3. Pilih Putar segera ketika rahasia disimpan untuk memutar rahasia Anda ketika Anda menyimpan perubahan Anda.

    4. Di bawah fungsi Rotasi, pilih Buat fungsi Lambda baru dan masukkan nama untuk fungsi baru Anda. Secrets Manager menambahkan SecretsManager "" ke awal nama fungsi Anda.

    5. Untuk strategi Rotasi, pilih Single user.

    6. Pilih Simpan.

Untuk memeriksa bahwa rahasianya diputar
  1. Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/.

  2. Pilih Rahasia, lalu pilih rahasianya.

  3. Pada halaman Detail rahasia, gulir ke bawah dan pilih Ambil nilai rahasia.

    Jika nilai rahasia berubah, maka rotasi berhasil. Jika nilai rahasia tidak berubah, Anda perlu Memecahkan masalah rotasi melihat CloudWatch Log untuk fungsi rotasi.

Uji apakah aplikasi Anda berfungsi seperti yang diharapkan dengan rahasia yang diputar.

Langkah selanjutnya

Setelah Anda menghapus rahasia hardcode dari kode Anda, beberapa ide untuk dipertimbangkan selanjutnya: