CloudFormation Secrets
我想坚持"所有基础设施都是代码"的政策。但是,我看不到使用 CloudFormation 对机密执行此操作的方法。
SecretsManager 要求您以纯文本形式指定 SecretString。即使您从某处注入解密的值,纯文本字符串也会显示在模板视图的 CF 控制台中:/
在 SSM 中使用加密字符串也是不可能的。文档说,"AWS CloudFormation 不支持创建 SecureString 参数类型。"
真的没有办法使用 CloudFormation 将机密作为代码安全地管理吗?
您可以使用 CloudFormation 中的 Secret 资源来创建 SecretsManager 密钥。有一种方法可以在 SecretString 中生成一个值(它使用 GenerateRandomPassword API)。查看 GenerateSecretString 属性。
这应该可以帮助您生成密码,而无需在模板中进行硬编码。
还有一个 RotationSchedule 资源可帮助您为您的密钥设置自动轮换。
要使用存储在 SecretsManager 密钥或 Parameter Store 参数中的密钥值,请使用动态引用。动态 refs 保证秘密值不记录在 CFN 中或显示在控制台中。
目前无法在 Parameter Store/Systems Manager 中创建/生成 SecureString 参数。