如何隐藏 terraform aws_ssm_parameter 值
How to hide terraform aws_ssm_parameter values
我创建了一个 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 函数获取纯文本值?
通常,您只需将 SSM 的 SecretString
参数的名称 作为环境变量传递给您的 lambda 函数。然后 lambda 函数将从 SSM Parameter Store 中获取它自己。
如果您想使用 with_decryption = false
的方法,那么您的 lambda 函数将不得不 调用 KMS decrypt API 来实际解密将密文转换为纯文本版本。
在这两种情况下,您函数的 执行角色 需要具有 KMS and/or SSM Parameter Store 的权限。
我创建了一个 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 函数获取纯文本值?
通常,您只需将 SSM 的 SecretString
参数的名称 作为环境变量传递给您的 lambda 函数。然后 lambda 函数将从 SSM Parameter Store 中获取它自己。
如果您想使用 with_decryption = false
的方法,那么您的 lambda 函数将不得不 调用 KMS decrypt API 来实际解密将密文转换为纯文本版本。
在这两种情况下,您函数的 执行角色 需要具有 KMS and/or SSM Parameter Store 的权限。