Tansformasi AWS::SecretsManager - AWS CloudFormation

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, berdasarkan nilai RotationTypeproperti sumber daya. AWS::SecretsManager::RotationSchedule

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::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::RotationSchedule sumber daya saat digunakan dengan HostedRotationLambda properti, termasuk DependsOn atribut.

    catatan

    Kedua versi mendukung DeletionPolicy dan UpdateReplacePolicy 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-16di Blog AWS Keamanan.

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: !Ref logical name of AWS::SecretsManager::Secret resource HostedRotationLambda: RotationType: MySQLSingleUser RotationLambdaName: name of Lambda function to be created VpcSecurityGroupIds: !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

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