【发布时间】:2021-10-22 08:03:10
【问题描述】:
我正在使用 aws_ssm_parameter 创建一个新模块,但是当我运行 terraform 计划时,它会返回添加的值而不是参数名称。
terraform plan 后的输出:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# module.parameter.aws_ssm_parameter.parameter["Variable-Sensitive-1=12345,Sensitive-Variable-2=67890"] will be created
+ resource "aws_ssm_parameter" "default" {
+ arn = (known after apply)
+ data_type = (known after apply)
+ id = (known after apply)
+ key_id = (known after apply)
+ name = "/dev/parameter-development/test"
+ overwrite = true
+ tags = {
+ env = "Development"
}
+ tier = "Standard"
+ type = "SecureString"
+ value = (sensitive value)
+ version = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.
模块配置:
main.tf
locals {
parameter = { for e in var.parameter : e.value => merge(var.parameter_defaults, e) }
}
resource "aws_ssm_parameter" "default" {
for_each = local.parameter
name = each.value.name
description = each.value.description
type = each.value.type
tier = each.value.tier
value = each.value.value
overwrite = each.value.overwrite
allowed_pattern = each.value.allowed_pattern
tags = var.tags
}
变量:
变量.tf
variable "parameter" {
type = list(map(string))
default = []
}
variable "parameter_defaults" {
type = map(any)
default = {
description = null
type = "SecureString"
tier = "Standard"
overwrite = "true"
allowed_pattern = null
}
}
环境发展:
module "default" {
source = "../../module/default"
parameter = [
{
name = "/dev/parameter-development/test"
value = "Variable-Sensitive-1=12345,Sensitive-Variable-2=67890"
type = "SecureString"
overwrite = "true"
}
]
tags = {
env = "Development"
}
}
如何隐藏这些敏感值?
我的设置方式有问题吗?
【问题讨论】:
-
您可以使用敏感选项。 hashicorp.com/blog/…
-
将
e.value更改为e.name。通过值访问您循环的资源索引没有意义,而是通过名称更有意义,即使它不是敏感数据。 -
谢谢,兄弟!这就是问题所在!
标签: amazon-web-services parameters terraform terraform-provider-aws aws-ssm