我想坚持“所有基础设施都是代码”的政策。但是,对于CloudFormation的秘密,我看不出有这样做的方法。
SecretsManager要求您以纯文本形式指定SecretString。即使您从某个位置注入解密的值,纯文本字符串也会显示在CF控制台的模板视图中:/
在SSM中也不能使用加密的字符串。文档说:“ AWS CloudFormation不支持创建SecureString参数类型。”
真的没有办法使用CloudFormation安全地将机密作为代码进行管理吗?
答案 0 :(得分:4)
您可以在CloudFormation中使用Secret资源来创建SecretsManager机密。有一种在SecretString中生成值的方法(使用GenerateRandomPassword API)。查看GenerateSecretString属性。
这应该可以帮助您生成密码,而无需在模板中对其进行硬编码。
还有一个RotationSchedule资源可以帮助您为秘密设置自动轮播。
要使用存储在SecretsManager机密或参数存储参数中的机密值,请使用dynamic references。动态引用保证秘密值不会登录到CFN或不会显示在控制台中。
当前无法在参数存储/系统管理器中创建/生成SecureString参数。