【问题标题】:How to hide terraform aws_ssm_parameter values如何隐藏 terraform aws_ssm_parameter 值
【发布时间】:2020-12-13 18:26:30
【问题描述】:

我创建了一个 SSM 参数,其类型为 SecureString,键值为 (pasword=Passwor@d123)。我正在尝试使用在计划输出中打印值的数据资源来获取值。

data "aws_ssm_parameter" "foo" {
 name = "password"
}

module "lamda_env_vars" {
New_password = data.aws_ssm_parameter.foo.value
}

plan output:-

New_paswword = Password@123

我尝试了如下加密。

data "aws_ssm_parameter" "foo" {
 name = "password"
with_decryption = false
}

module "lambda_env_vars" {
New_password = data.aws_ssm_parameter.foo.value
}

plan output:-
New_password = Q#iuws##)9ssdhs(some encryptrd value)

这里的问题是相同的加密哈希码被分配为我的 lambda 函数的值。

如何在改造计划时屏蔽值并为我的 lambda 函数获取纯文本值?

【问题讨论】:

    标签: amazon-web-services terraform terraform-provider-aws aws-ssm


    【解决方案1】:

    通常,您只需将 SSM 的 SecretString 参数的名称作为环境变量传递给您的 lambda 函数。然后 lambda 函数会自己从 SSM 参数存储中获取它。

    如果您想使用 with_decryption = false 的方法,那么您的 lambda 函数必须调用 KMS decrypt API 才能真正将密文解密为纯文本版本。

    在这两种情况下,您的函数的执行角色都需要拥有 KMS 和/或 SSM Parameter Store 的权限。

    【讨论】:

    • 在使用with_decryption = false 时,KMS 如何将图像值通过 terraform 正确加密。我们没有传递任何 KMS 密钥来加密数据资源。
    • @siva 嗨。它由 KMS 完成。 TF 中的with_decryption 属性直接映射到AWS REST API 中的WithDecryption 参数。
    • @Macin 知道了 aws_ssm_parameter 资源默认使用默认 KMS 密钥进行加密。
    • @siva 我认为最好用相关描述、错误消息或用例提出新问题。
    猜你喜欢
    • 1970-01-01
    • 2021-10-22
    • 2019-12-12
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 2011-12-28
    相关资源
    最近更新 更多