Ini adalah Panduan Referensi AWS CloudFormation Template baru. Harap perbarui bookmark dan tautan Anda. Untuk bantuan memulai CloudFormation, lihat Panduan AWS CloudFormation Pengguna.
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::SecretsManagerTransformasi 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.
Sintaksis
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-23Resources:...
AWS::SecretsManagerTransformasi 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::RotationSchedulesumber daya saat digunakan denganHostedRotationLambdaproperti, termasukDependsOnatribut.catatan
Kedua versi mendukung
DeletionPolicydanUpdateReplacePolicyatribut.
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 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 resourceProperties: SecretId: !Reflogical name of AWS::SecretsManager::Secret resourceHostedRotationLambda: RotationType: MySQLSingleUser RotationLambdaName:name of Lambda function to be createdVpcSecurityGroupIds: !GetAttlogical name of AWS::EC2::SecurityGroup resource.GroupId VpcSubnetIds: Fn::Join: - "," - - Ref:logical name of primary subnet- Ref:logical name of secondary subnetRotationRules: 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 informasi umum tentang penggunaan makro, lihat Melakukan pemrosesan kustom pada CloudFormation templat dengan makro templat di AWS CloudFormation Panduan Pengguna.