5

我想坚持“所有基础设施都是代码”的政策。但是,我看不到使用 CloudFormation 对机密执行此操作的方法。

SecretsManager 要求您以纯文本形式指定 SecretString。即使您从某处注入解密的值,纯文本字符串也会显示在模板视图的 CF 控制台中:/

在 SSM 中使用加密字符串也是不可能的。文档说,“AWS CloudFormation 不支持创建 SecureString 参数类型。”

真的没有办法使用 CloudFormation 将机密作为代码安全地管理吗?

4

1 回答 1

4

您可以使用 CloudFormation 中的Secret资源来创建 SecretsManager 密钥。有一种方法可以在 SecretString 中生成一个值(它使用GenerateRandomPassword API)。查看GenerateSecretString属性。

这应该可以帮助您生成密码,而无需在模板中硬编码。

还有一个RotationSchedule资源可帮助您为您的密钥设置自动轮换。

要使用存储在 SecretsManager 密钥或 Parameter Store 参数中的密钥值,请使用动态引用。动态 refs 保证秘密值不记录在 CFN 中或显示在控制台中。

目前无法在 Parameter Store/Systems Manager 中创建/生成SecureString参数。

于 2020-01-22T19:05:05.473 回答