Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tansformasi AWS::SecretsManager
Topik ini menjelaskan cara menggunakan AWS::SecretsManager
transformasi dan jenis AWS::SecretsManager::RotationSchedulesumber daya untuk menentukan fungsi Lambda untuk melakukan rotasi rahasia.
AWS::SecretsManager
Transformasi adalah CloudFormation makro yang, ketika direferensikan dalam template tumpukan Anda, secara otomatis menghasilkan fungsi Lambda untuk rotasi rahasia saat Anda membuat atau memperbarui tumpukan menggunakan set perubahan. Fungsi Lambda ditempatkan di tumpukan bersarang di template yang diproses. Ini menggunakan template fungsi dari repositori Fungsi Lambda AWS Secrets Manager
Rotasi
Penggunaan
Untuk menggunakan AWS::SecretsManager
transformasi, Anda harus mendeklarasikannya di tingkat atas template Anda CloudFormation . Anda tidak dapat menggunakan AWS::SecretsManager
sebagai perubahan yang tertanam di bagian templat lainnya.
Deklarasi harus menggunakan string literal AWS::SecretsManager-2020-07-23
atau AWS::SecretsManager-2024-09-16
sebagai nilainya. Anda tidak dapat menggunakan parameter atau fungsi untuk menentukan nilai perubahan.
Sintaks
Untuk mendeklarasikan transformasi ini di CloudFormation template Anda, gunakan sintaks berikut:
JSON
{ "Transform":"AWS::SecretsManager-
2020-07-23
", "Resources":{...
} }
YAML
Transform: AWS::SecretsManager-
2020-07-23
Resources:...
AWS::SecretsManager
Transformasi adalah deklarasi mandiri tanpa parameter tambahan. Sebagai gantinya, Anda mengonfigurasi HostedRotationLambdaproperti AWS::SecretsManager::RotationSchedulesumber daya di template tumpukan Anda. HostedRotationLambdaProperti menentukan fungsi Lambda untuk melakukan rotasi rahasia.
Fitur baru di AWS::SecretsManager-2024-09-16
Versi terbaru dari AWS::SecretsManager
transform (AWS::SecretsManager-2024-09-16
) memperkenalkan penyempurnaan berikut:
-
Upgrade Lambda Otomatis — Saat Anda memperbarui CloudFormation tumpukan, fungsi Lambda Anda sekarang secara otomatis memperbarui konfigurasi runtime dan dependensi internalnya. Ini memastikan Anda menggunakan versi kode yang paling aman dan andal yang mengelola rotasi rahasia di Secrets Manager.
-
Support untuk atribut tambahan — Transformasi baru mendukung atribut sumber daya tambahan untuk jenis
AWS::SecretsManager::RotationSchedule
sumber daya saat digunakan denganHostedRotationLambda
properti, termasukDependsOn
atribut.catatan
Kedua versi mendukung
DeletionPolicy
danUpdateReplacePolicy
atribut.
Untuk mempelajari lebih lanjut tentang versi AWS::SecretsManager
transformasi baru ini, lihat Memperkenalkan versi AWS Secrets Manager transformasi yang disempurnakan: AWS::SecretsManager-2024-09-16
Contoh
Contoh template paral berikut menunjukkan cara menggunakan AWS::SecretsManager
transform (AWS::SecretsManager-2024-09-16
) dan AWS::SecretsManager::RotationSchedulesumber daya dalam template Anda. Dalam contoh ini, secara otomatis CloudFormation akan menghasilkan fungsi Lambda untuk MySQL rotasi rahasia pengguna tunggal.
Rahasianya diatur untuk berputar secara otomatis setiap hari pada tengah malam (UTC). Proses rotasi dapat memakan waktu hingga 2 jam untuk menyelesaikannya. Memperbarui jadwal rotasi tidak akan memulai rotasi langsung.
JSON
{ "AWSTemplateFormatVersion":"2010-09-09", "Transform":"AWS::SecretsManager-2024-09-16", "Resources":{
...
"MySecretRotationSchedule
":{ "Type":"AWS::SecretsManager::RotationSchedule", "DependsOn":"logical name of AWS::SecretsManager::SecretTargetAttachment resource
", "Properties":{ "SecretId":{ "Ref":"logical name of AWS::SecretsManager::Secret resource
" }, "HostedRotationLambda":{ "RotationType":"MySQLSingleUser", "RotationLambdaName":"name of Lambda function to be created
", "VpcSecurityGroupIds":{ "Fn::GetAtt":[ "logical name of AWS::EC2::SecurityGroup resource
", "GroupId" ] }, "VpcSubnetIds":{ "Fn::Join":[ ",", [ { "Ref":"logical name of primary subnet
" }, { "Ref":"logical name of secondary subnet
" } ] ] } }, "RotationRules":{ "ScheduleExpression":"cron(0 0 * * ? *)", "Duration":"2h" }, "RotateImmediatelyOnUpdate":false } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::SecretsManager-2024-09-16 Resources:
...
MySecretRotationSchedule
: Type: AWS::SecretsManager::RotationSchedule DependsOn:logical name of AWS::SecretsManager::SecretTargetAttachment resource
Properties: SecretId: !Reflogical name of AWS::SecretsManager::Secret resource
HostedRotationLambda: RotationType: MySQLSingleUser RotationLambdaName:name of Lambda function to be created
VpcSecurityGroupIds: !GetAttlogical name of AWS::EC2::SecurityGroup resource
.GroupId VpcSubnetIds: Fn::Join: - "," - - Ref:logical name of primary subnet
- Ref:logical name of secondary subnet
RotationRules: ScheduleExpression: cron(0 0 * * ? *) Duration: 2h RotateImmediatelyOnUpdate: false
Sumber daya terkait
Untuk contoh CloudFormation template lengkap yang dapat Anda gunakan untuk mengatur rotasi rahasia, lihat bagian Contoh AWS::SecretsManager::RotationSchedule
sumber daya.
Untuk pertimbangan umum tentang penggunaan makro, lihat. Pertimbangan