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:
- Langkah 1: Buat fungsi rotasi generik
- Langkah 2: Tulis kode fungsi rotasi
- Langkah 3: Konfigurasikan rahasia untuk rotasi
- Langkah 4: Izinkan fungsi rotasi untuk mengakses Secrets Manager dan database atau layanan Anda
- Langkah 5: Izinkan Secrets Manager untuk menjalankan fungsi rotasi
- Langkah 6: Siapkan akses jaringan untuk fungsi rotasi
- Langkah selanjutnya
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
Untuk membuat fungsi rotasi generik
-
Untuk menentukan AWS Serverless Application Repository apakah didukung di Wilayah Anda, lihat AWS Serverless Application Repository titik akhir dan kuota di Referensi AWS Umum.
-
Lakukan salah satu hal berikut ini:
Jika AWS Serverless Application Repository didukung di Wilayah Anda:
Di konsol Lambda, pilih Aplikasi dan kemudian pilih Buat aplikasi.
Pada halaman Buat aplikasi, pilih tab Aplikasi Tanpa Server.
Di kotak pencarian di bawah Aplikasi publik, masukkan
SecretsManagerRotationTemplate
.Pilih Tampilkan aplikasi yang membuat IAM peran khusus atau kebijakan sumber daya.
Pilih SecretsManagerRotationTemplateubin.
-
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
Pilih Deploy.
Jika AWS Serverless Application Repository tidak didukung di Wilayah Anda:
Di konsol Lambda, pilih Functions dan kemudian pilih Create function.
Di halaman Buat fungsi, lakukan langkah berikut:
Pilih Tulis dari awal.
Untuk nama Fungsi, masukkan nama untuk fungsi rotasi Anda.
Untuk Runtime, pilih Python 3.9.
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
Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/
. -
Pada halaman Rahasia, pilih rahasia Anda.
-
Pada halaman Detail rahasia, di bagian konfigurasi Rotasi, pilih Edit rotasi. Dalam kotak dialog Edit konfigurasi rotasi, lakukan hal berikut:
Nyalakan Rotasi otomatis.
-
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()
ekspresirate()
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. -
(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. (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.
Di bawah fungsi Rotasi, pilih fungsi Lambda yang Anda buat di Langkah 1.
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:SourceAccount
untuk 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:SourceAccount
global aws:SourceArn
dan 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.