【问题标题】:How to add a key into an existing AWS::SecretsManager::Secret如何将密钥添加到现有 AWS::SecretsManager::Secret
【发布时间】:2020-02-27 05:00:45
【问题描述】:

我有一个创建 RDS 实例的 CloudFormation 模板。首先,我创建一个AWS::SecretsManager::Secret 并将值保存在那里,我将在AWS::RDS::DBInstance 中以某个秘密名称将它们用作MasterUserPassword MasterUsernameDBName。但我也想将在创建 DBInstance 后获得的 RDS 实例主机名放入这个秘密中。

是否可以更新 CloudFormation 中的现有密钥?

我拥有的模板示例:

Resources:
  RDSInstanceSecret:
    Type: AWS::SecretsManager::Secret
    Properties:
      Name: "mysecret"
      GenerateSecretString:
        SecretStringTemplate: !Sub '{"username":"root", "dbname":"db"}'
        GenerateStringKey: 'password'
        PasswordLength: 16
        ExcludeCharacters: '"@/\'
  RDSInstance:
    DependsOn: RDSInstanceSecret
    Properties:
      DBName: !Join ['', ['{{resolve:secretsmanager:', !Ref RDSInstanceSecret, ':SecretString:dbname}}' ]]
      Engine: "postgres"
      EngineVersion: "9.6"
      MasterUserPassword: !Join ['', ['{{resolve:secretsmanager:', !Ref RDSInstanceSecret, ':SecretString:password}}' ]]
      MasterUsername: !Join ['', ['{{resolve:secretsmanager:', !Ref RDSInstanceSecret, ':SecretString:username}}' ]]

Outputs:
  EndpointRDS:
    Value: !Sub '${RDSInstance.Endpoint.Address}:${RDSInstance.Endpoint.Port}'  # I would like to save it to RDSInstanceSecret

我目前的想法是在创建实例后创建另一个 Secret,并将来自第一个 Secret + RDS 端点的所有密钥放在那里。但这会留下一个无用的秘密资源。

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation aws-secrets-manager


    【解决方案1】:

    我认为您正在寻找 CFN AWS::SecretsManager::SecretTargetAttachment 资源,该资源将数据库类型和连接详细信息添加到密钥中。

    【讨论】:

      猜你喜欢
      • 2020-12-16
      • 1970-01-01
      • 2020-07-21
      • 2020-06-18
      • 2021-04-11
      • 1970-01-01
      • 2014-09-04
      • 2020-07-11
      • 2017-05-02
      相关资源
      最近更新 更多