1

假设我在 Cloud Formation(或 SAM)模板中有以下秘密,我将其作为堆栈的一部分部署到我的 AWS IAM 账户(当然,SecretString 的敏感值由运行云形成部署的脚本动态分配) :

Resources:
 
  MySecret:
    Type: AWS::SecretsManager::Secret
    Properties:
      Name: MySecret
      Description: Embarssing fact I want to keep secret
      SecretString: "I_think_Twighlight_Sparkle_is_cool"

当我检查 aws 控制台上的堆栈页面时,我注意到“模板”选项卡以纯文本形式显示了整个模板,包括这个秘密。

这对我来说似乎非常不受欢迎,我想知道是否有某种方法可以减轻我遗漏的情况。虽然只有有权访问 IAM 帐户的人才能访问 aws 控制台,但除非有人特别要求查看它们,否则以纯文本形式弹出秘密似乎是不可取的。

有人知道减轻这种情况的好方法吗?

4

2 回答 2

2

根据您的解释,我假设您只想在从控制台查看时隐藏纯文本值。使用您的方法可以获得的最接近的方法是在参数中使用NoEcho

您可以做的一个示例是将要屏蔽的字符串移动到参数中,然后将参数属性 NoEcho 设置为 True,然后您只需在资源中引用该参数值。

但是,这不会解决您的值在模板中可见的问题,正如文档指出的那样:

“我们建议您在堆栈模板中使用动态参数来引用在 CloudFormation 之外存储和管理的敏感信息”

这就是说,使用您当前的架构,您无法隐藏模板中的值。相反,您需要引用模板之外的值或创建一个精心制作的自定义资源来创建您的秘密值。除此之外,正如您所指出的,可以通过 IAM 权限进行限制。

于 2020-07-16T04:00:37.040 回答
0

另一种选择是使用Secrets Manager来管理机密并在 CF 模板中使用这些机密。

于 2020-07-19T15:52:43.013 回答