我遇到了一个问题,我没有找到任何关于避免从源代码中设置后端配置或 Terraform 的 access_key 的很好的文档。
这是最好的方法吗? : Hashicorp Terraform 远程状态和 Azure
有人有一个很好的解决方案吗?
backend "azurerm" {
resource_group_name = "tfstate"
storage_account_name = "<storage_account_name>"
container_name = "tfstate"
key = "terraform.tfstate"
access_key = "value" # This is a bad value to expose
}
祝你有美好的一天。
您可以利用 TF_VAR_name
环境变量可以用来设置变量。环境变量必须采用 TF_VAR_name 格式,并且最后将检查该变量的值。
因此您需要创建
variable "access_key"
,然后设置环境变量 TF_VAR_access_key 并分配您的访问密钥。
您的 terraform 代码将是
backend "azurerm" {
resource_group_name = "tfstate"
storage_account_name = "<storage_account_name>"
container_name = "tfstate"
key = "terraform.tfstate"
access_key = var.access_key
}
和您的管道
- bash: |
# run terraform here
env:
TF_VAR_access_key: $(access_key)
access_key
应作为秘密存储在变量组中,或从密钥库加载。