rob*_*liv 4 terraform terraform-provider-aws
我正在尝试配置 Terraform,以便它使用 AWS Secrets 的环境变量。
terraform.tfvars:
access_key = "${var.TF_VAR_AWS_AK}"
secret_key = "${var.TF_VAR_AWS_SK}"
aws_region = "eu-north-1"
Run Code Online (Sandbox Code Playgroud)
主要.tf:
provider "aws" {
region = "${var.aws_region}"
access_key = "${var.access_key}"
secret_key = "${var.secret_key}"
}
Run Code Online (Sandbox Code Playgroud)
在控制台中(在 Windows 10 上):
set TF_VAR_AWS_AK = asd12345asd12345
set TF_VAR_AWS_SK = asd12345asd12345
terraform plan
Run Code Online (Sandbox Code Playgroud)
错误信息:
Error: Variables not allowed
on terraform.tfvars line 1:
1: access_key = "${var.TF_VAR_AWS_AK}"
Variables may not be used here.
Error: Variables not allowed
on terraform.tfvars line 2:
2: secret_key = "${var.TF_VAR_AWS_SK}"
Variables may not be used here.
Run Code Online (Sandbox Code Playgroud)
不确定问题出在哪里。TF 文档说可以使用环境变量来存储秘密。
要使用环境变量配置提供程序和后端,您根本不需要在配置中编写任何特殊内容。相反,您可以只设置与相关提供程序相关的常规环境变量。
例如,您似乎正在使用 AWS,在这种情况下,您可以使用AWS_ACCESS_KEY_ID
/AWS_SECRET_ACCESS_KEY
环境变量,也可以填充凭证文件,与 AWS SDK 相同。然后,您可以跳过所有变量声明,只需减少提供程序块,如下所示:
provider "aws" {
region = "${var.aws_region}"
}
Run Code Online (Sandbox Code Playgroud)
Terraform 的 AWS 提供商支持与 AWS CLI 相同的一组凭证源,而无需任何 Terraform 特定的配置。这是为 AWS 提供商配置凭证的推荐方法,因为这样您只需设置一次 AWS 凭证,就可以使用 AWS SDK、Terraform 以及与 AWS 交互并支持其约定的任何其他软件。
AWS 提供商文档中提供了有关 AWS 提供商身份验证选项的更多信息。
归档时间: |
|
查看次数: |
5908 次 |
最近记录: |