[英]AWS Terraform: │ Error: error configuring Terraform AWS Provider: error validating provider credentials: error calling sts:GetCallerIdentity:
[英]Error configuring Terraform AWS Provider - Linux
[ - - - - - - - - - - - - 更新 - - - - - - - - - - - - - -]
我现在尝试了一个将 terraform 与 s3 集成的教程。 创建了 S3 存储桶,我创建了一个 IAM 用户,我正在使用它的访问密钥和秘密密钥。 尽管如此,在terraform init
之后,我不断收到有关提供程序的错误:
后端.tf
terraform {
required_version = ">=0.12.0"
backend "s3" {
region = "us-east-1"
key = "terraform.tfstate"
profile = "tu"
bucket = "terraformstatebucket3107"
}
}
.aws 文件夹中的配置文件
[tu]
region = us-east-1
output = json
.aws 文件夹中的凭证文件
[tu]
aws_access_key_id = AKIA*****************
aws_secret_access_key = nn3M1*****************
错误:
Initializing the backend...
Error: error configuring S3 Backend: no valid credential sources for S3 Backend found.
Please see https://www.terraform.io/docs/backends/types/s3.html
for more information about providing credentials.
Error: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
所以,我已经尝试了这里建议的所有解决方案,但不幸的是,它们都没有解决我的问题。 经过一番挖掘,我找到了一个适合我的解决方案。 那是使用-backend-config
选项执行terraform init
命令,如下所示:
terraform init -backend-config="access_key=<your access key>" -backend-config="secret_key=<your secret key>"
这是我找到此解决方案的问题: 配置 Terraform S3 后端时出错
您需要检查几件事。
.aws文件夹下应该有一个带有名称凭据的文件,并且该文件的内容应该具有访问密钥和密钥。
[tu] aws_access_key_id = *************** aws_secret_access_key = ************************
如果上述文件存在正确的密钥,并且仍然出现相同的错误,那么我建议您应该在提供程序块中提及访问密钥和秘密密钥,如下所示
provider "aws" { access_key = var.aws_access_key secret_key = var.aws_secret_key region = var.region }
并将上述变量值存储在.tfvars文件中
aws_access_key ="****your access key****"
aws_secret_key = "***your secret key****"
希望通过这些设置它应该可以工作,即使这个问题仍然存在,然后我在你的 .aws/config 中看到你提到了mfa arn 。
如果启用了多因素身份验证,则尝试在backend.tf文件中添加mfa 会话令牌以及我上面提到的提供程序块
terraform {
required_version = ">=0.12.0"
backend "s3" {
region = "us-east-1"
key = "terraform.tfstate"
bucket = "terraformstatebucket3107"
token = "*****Your MFA SessionToken*****"
}
}
要获取 MFA SessionToken,请在此处查看
运行terraform init
您必须为您的凭据(aws 密钥)添加-backend-config
选项。
尝试使用 Terraform Cloud 作为状态的后端存储运行时遇到了这个问题。
确保在 Terraform Cloud 中设置环境变量或将执行模式设置为“本地”,以便使用本地系统。
由于我已将其设置为运行“远程”并且其他所有内容实际上都是正确的,因此我花了一段时间对未找到的配置文件进行故障排除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.