AWS は、Amazon Aurora (サーバーレスも?) を含む、サポートされている一部の RDS エンジンに対して、完全に構成され、すぐに使用できるローテーション サポートを提供しています。
CloudFormation テンプレートでパスワードのローテーションをセットアップしようとしていますAWS::SecretsManager::RotationSchedule
(これは完全に機能するテンプレートではなく、単なる図であることに注意してください):
DBCluster:
Type: AWS::RDS::DBCluster
Properties:
Engine : aurora
EngineMode : serverless
EngineVersion : 5.6.10a
Secret:
Type: AWS::SecretsManager::Secret
Properties:
GenerateSecretString:
SecretStringTemplate: '{"username": "admin"}'
GenerateStringKey: password
PasswordLength: 20
ExcludeCharacters: '"@/\'
SecretTargetAttachment:
Type: AWS::SecretsManager::SecretTargetAttachment
Properties:
SecretId: !Ref Secret
TargetId: !Ref DBCluster
TargetType: AWS::RDS::DBCluster
SecretRotation:
Type: AWS::SecretsManager::RotationSchedule
Properties:
SecretId: !Ref UserAdminSecret
RotationLambdaARN: <ARN_GET_FROM_SERVERLESS_APPLICATION_REPOSITORY>
RotationRules:
AutomaticallyAfterDays: 1
ただし、AWS Lambda ローテーション関数は次のメッセージで失敗します。
「このローテーション ラムダを使用するには、データベース エンジンを 'mysql' に設定する必要があります」: KeyError
AWS が提供する AWS Lambda ローテーション機能では、Aurora Serverless がサポートされていないようです。
既存の Lambda ローテーション テンプレートを使用して Aurora Serverless シークレット ローテーションをセットアップする簡単な方法はありますか?
Aurora Serverless 用に独自のローテーション関数を作成するための例はありますか?
PS: この質問は、cloudformation からの Aurora サーバーレス クラスターの作成に関連するものですか?