Mengatur rotasi otomatis untuk rahasia non-database 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.

Mengatur rotasi otomatis untuk rahasia non-database AWS Secrets Manager

Tutorial ini menjelaskan cara mengatur Rotasi oleh fungsi Lambda rahasia non-database. Rotasi adalah proses memperbarui rahasia secara berkala. Ketika Anda memutar rahasia, Anda memperbarui kredensi di kedua rahasia dan database atau layanan yang menjadi rahasia itu.

Untuk rahasia database, lihatRotasi otomatis untuk rahasia database (konsol).

Awas

Untuk mengaktifkan rotasi otomatis, Anda harus memiliki izin untuk membuat peran IAM eksekusi untuk fungsi rotasi Lambda dan melampirkan kebijakan izin padanya. Anda membutuhkan keduanya iam:CreateRole dan iam:AttachRolePolicy izin. Pemberian izin ini memungkinkan identitas untuk memberikan izin apa pun kepada diri mereka sendiri.

Langkah 1: Buat fungsi rotasi generik

Untuk memulai, buat fungsi rotasi Lambda. Ini tidak akan memiliki kode di dalamnya untuk memutar rahasia Anda, jadi Anda akan menulisnya di langkah selanjutnya. Untuk informasi tentang cara kerja fungsi rotasi, lihatFungsi rotasi Lambda.

Di Wilayah yang didukung, Anda dapat menggunakan AWS Serverless Application Repository untuk membuat fungsi dari template. Untuk daftar Wilayah yang didukung, lihat AWS Serverless Application Repository FAQs. Di Wilayah lain, Anda membuat fungsi dari awal dan menyalin kode template ke dalam fungsi.

Untuk membuat fungsi rotasi generik
  1. Untuk menentukan AWS Serverless Application Repository apakah didukung di Wilayah Anda, lihat AWS Serverless Application Repository titik akhir dan kuota di Referensi AWS Umum.

  2. Lakukan salah satu hal berikut ini:

    • Jika AWS Serverless Application Repository didukung di Wilayah Anda:

      1. Di konsol Lambda, pilih Aplikasi dan kemudian pilih Buat aplikasi.

      2. Pada halaman Buat aplikasi, pilih tab Aplikasi Tanpa Server.

      3. Di kotak pencarian di bawah Aplikasi publik, masukkanSecretsManagerRotationTemplate.

      4. Pilih Tampilkan aplikasi yang membuat IAM peran khusus atau kebijakan sumber daya.

      5. Pilih SecretsManagerRotationTemplateubin.

      6. Pada halaman Tinjau, konfigurasikan, dan terapkan, di ubin Pengaturan aplikasi, isi bidang yang diperlukan.

        • Untuk titik akhir, masukkan titik akhir untuk Wilayah Anda, termasuk. https:// Untuk daftar titik akhir, lihatAWS Secrets Manager titik akhir.

        • Untuk menempatkan fungsi Lambda dalam aVPC, sertakan vpcSecurityGroupId dan. vpcSubnetIds

      7. Pilih Deploy.

    • Jika AWS Serverless Application Repository tidak didukung di Wilayah Anda:

      1. Di konsol Lambda, pilih Functions dan kemudian pilih Create function.

      2. Di halaman Buat fungsi, lakukan langkah berikut:

        1. Pilih Tulis dari awal.

        2. Untuk nama Fungsi, masukkan nama untuk fungsi rotasi Anda.

        3. Untuk Runtime, pilih Python 3.9.

        4. Pilih Buat fungsi.

Langkah 2: Tulis kode fungsi rotasi

Pada langkah ini, Anda menulis kode yang memperbarui rahasia dan layanan atau database yang menjadi rahasia itu. Untuk informasi tentang fungsi rotasi, termasuk tips menulis fungsi rotasi Anda sendiri, lihatFungsi rotasi Lambda. Anda juga dapat menggunakan Templat fungsi rotasi sebagai referensi.

Langkah 3: Konfigurasikan rahasia untuk rotasi

Pada langkah ini, Anda mengatur jadwal rotasi untuk rahasia Anda dan menghubungkan fungsi rotasi ke rahasia.

Untuk mengkonfigurasi rotasi dan membuat fungsi rotasi kosong
  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. Dalam kotak dialog Edit konfigurasi rotasi, lakukan hal berikut:

    1. Nyalakan Rotasi otomatis.

    2. Di bawah Jadwal rotasi, masukkan jadwal Anda di zona UTC waktu baik di pembuat ekspresi Jadwal atau sebagai ekspresi Jadwal. Secrets Manager menyimpan jadwal Anda sebagai cron() ekspresi rate() atau. Jendela rotasi secara otomatis dimulai pada tengah malam kecuali Anda menentukan waktu Mulai. Anda dapat memutar rahasia sesering setiap empat jam. Untuk informasi selengkapnya, lihat Jadwal rotasi.

    3. (Opsional) Untuk durasi Jendela, pilih panjang jendela di mana Anda ingin Secrets Manager memutar rahasia Anda, 3h misalnya untuk jendela tiga jam. Jendela tidak boleh meluas ke jendela rotasi berikutnya. Jika Anda tidak menentukan Durasi jendela, untuk jadwal rotasi dalam jam, jendela akan ditutup secara otomatis setelah satu jam. Untuk jadwal rotasi dalam beberapa hari, jendela secara otomatis ditutup pada akhir hari.

    4. (Opsional) Pilih Putar segera ketika rahasia disimpan untuk memutar rahasia Anda ketika Anda menyimpan perubahan Anda. Jika Anda menghapus kotak centang, maka rotasi pertama akan dimulai pada jadwal yang Anda tetapkan.

    5. Di bawah fungsi Rotasi, pilih fungsi Lambda yang Anda buat di Langkah 1.

    6. Pilih Simpan.

Langkah 4: Izinkan fungsi rotasi untuk mengakses Secrets Manager dan database atau layanan Anda

Fungsi rotasi Lambda memerlukan izin untuk mengakses rahasia di Secrets Manager, dan memerlukan izin untuk mengakses database atau layanan Anda. Pada langkah ini, Anda memberikan izin ini ke peran eksekusi Lambda. Jika rahasia dienkripsi dengan KMS kunci selain Kunci yang dikelola AWS aws/secretsmanager, maka Anda perlu memberikan izin peran eksekusi Lambda untuk menggunakan kunci. Anda dapat menggunakan konteks ARN enkripsi Rahasia untuk membatasi penggunaan fungsi dekripsi, sehingga peran fungsi rotasi hanya memiliki akses untuk mendekripsi rahasia yang bertanggung jawab untuk berputar. Untuk contoh kebijakan, lihatIzin untuk rotasi.

Untuk petunjuknya, lihat Peran eksekusi Lambda di Panduan AWS Lambda Pengembang.

Langkah 5: Izinkan Secrets Manager untuk menjalankan fungsi rotasi

Untuk mengizinkan Secrets Manager menjalankan fungsi rotasi pada jadwal rotasi yang Anda atur, Anda harus memberikan lambda:InvokeFunction izin kepada kepala layanan Secrets Manager dalam kebijakan sumber daya fungsi Lambda.

Dalam kebijakan sumber daya untuk fungsi rotasi Anda, sebaiknya sertakan kunci konteks aws:SourceAccountuntuk membantu mencegah Lambda digunakan sebagai wakil yang bingung. Untuk beberapa AWS layanan, untuk menghindari skenario wakil yang membingungkan, AWS merekomendasikan agar Anda menggunakan kunci kondisi aws:SourceAccountglobal aws:SourceArndan global. Namun, jika Anda menyertakan aws:SourceArn kondisi dalam kebijakan fungsi rotasi Anda, fungsi rotasi hanya dapat digunakan untuk memutar rahasia yang ditentukan oleh ituARN. Sebaiknya hanya sertakan kunci konteks aws:SourceAccount agar Anda dapat menggunakan fungsi rotasi untuk beberapa rahasia.

Untuk melampirkan kebijakan sumber daya ke fungsi Lambda, lihat Menggunakan kebijakan berbasis sumber daya untuk Lambda.

Kebijakan berikut memungkinkan Secrets Manager untuk menjalankan fungsi Lambda.

{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "secretsmanager.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" } }, "Resource": "LambdaRotationFunctionARN" } ] }

Langkah 6: Siapkan akses jaringan untuk fungsi rotasi

Pada langkah ini, Anda mengizinkan fungsi rotasi untuk terhubung ke Secrets Manager dan layanan atau database rahasianya. Fungsi rotasi harus memiliki akses ke keduanya untuk dapat memutar rahasia. Lihat Akses jaringan untuk fungsi rotasi Lambda.

Langkah selanjutnya

Saat Anda mengonfigurasi rotasi di Langkah 3, Anda mengatur jadwal untuk memutar rahasia. Jika rotasi gagal saat dijadwalkan, Secrets Manager akan mencoba rotasi beberapa kali. Anda juga dapat memulai rotasi segera dengan mengikuti instruksi diPutar rahasia segera.

Jika rotasi gagal, lihatMemecahkan masalah rotasi.