在AWS控制台模板选项卡中隐藏CloudFormation / SAM机密

时间:2020-07-15 20:28:35

标签: amazon-cloudformation serverless-application-model

假设我在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控制台,但除非特别要求看到这些秘密,否则以纯文本形式显示秘密似乎是不可取的。

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

2 个答案:

答案 0 :(得分:2)

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

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

但是,这不能解决您的问题,因为文档指出了该值在模板内可见:

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

这是说,使用您当前的体系结构,您将无法隐藏模板中的值。取而代之的是,您将需要引用模板之外的值或创建详细的custom resource来创建您的秘密值。如前所述,除此之外,还可以通过IAM权限进行限制。

答案 1 :(得分:0)

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