gpt4 book ai didi

terraform - 如何在本地执行提供程序中隐藏数据源中的敏感变量

转载 作者:行者123 更新时间:2023-12-05 06:51:08 40 4
gpt4 key购买 nike

我正在尝试通过本地提供程序使用 docker 镜像初始化数据库。

resource "null_resource" "db_setup" {

provisioner "local-exec" {

command = <<EOT
docker run \
-e DB_CONNECTION="mysql" \
-e DB_HOST=${module.mysql_others.endpoint} \
-e DB_DATABASE=${data.aws_ssm_parameter.DATABASE.value} \
-e DB_USERNAME=${data.aws_ssm_parameter.USERNAME.value} \
-e DB_PASSWORD=${data.aws_ssm_parameter.PASSWORD.value} \
random_docker_image:latest \
./database_seed
EOT

}
}

当我应用 terraform 时,我得到了所有明文命令。有什么办法可以避免吗?

最佳答案

您可以使用带有局部变量的 sensitive 函数将变量“标记”为敏感。

locals {
sensitive_db_password = sensitive(data.aws_ssm_parameter.PASSWORD.value)
}

resource "null_resource" "db_setup" {
provisioner "local-exec" {
command = <<EOT
docker run \
-e DB_CONNECTION="mysql" \
-e DB_HOST=${module.mysql_others.endpoint} \
-e DB_DATABASE=${data.aws_ssm_parameter.DATABASE.value} \
-e DB_USERNAME=${data.aws_ssm_parameter.USERNAME.value} \
-e DB_PASSWORD=${local.sensitive_db_password} \
random_docker_image:latest \
./database_seed
EOT
}
}

输出将被抑制。

文档:https://www.terraform.io/language/functions/sensitive

关于terraform - 如何在本地执行提供程序中隐藏数据源中的敏感变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66244257/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com