配置Terraform AWS Provider-Linux时出错



[--------------------更新---------------------------]

我现在尝试了一个将地形与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后端时出错

要运行terraform init,必须为凭据(aws密钥(添加-backend-config选项。

有几件事需要检查。

  1. .aws文件夹下应该有一个名为凭据的文件,该文件的内容应该具有访问密钥和密钥。

    [tu]
    aws_access_key_id = ***************
    aws_secret_access_key = ************************
    
  2. 如果上面的文件中有正确的密钥,并且仍然会出现同样的错误,那么我建议你应该在你的提供商块中提到访问密钥和密钥,比如这个

    provider "aws" {
    access_key = var.aws_access_key
    secret_key = var.aws_secret_key
    region = var.region
    }
    

并将上述变量值存储在.tfwars文件中

aws_access_key ="****your access key****"
aws_secret_key = "***your secret key****"

希望有了这些设置,它应该可以工作,即使在这个问题持续存在之后,我在你的.aws/config中看到你提到了mfa-arn

如果启用了多因素身份验证,请尝试在后端.tf文件中添加mfa会话令牌以及我在上面提到的提供程序块

terraform {
required_version = ">=0.12.0"
backend "s3" {
region  = "us-east-1"
key     = "terraform.tfstate"
bucket  = "terraformstatebucket3107"
token   = "*****Your MFA SessionToken*****"
}
}

要获得MFA会话令牌,请查看此处

在尝试使用Terraform Cloud作为状态的后端存储运行时遇到此问题。

确保在Terraform Cloud中设置环境变量或将执行模式设置为"0";"本地";所以使用您的本地系统。

我花了一段时间对找不到的配置文件进行故障排除,因为我已经将其设置为运行";"远程";其他的都是正确的。

Terraform云执行模式选项屏幕截图

相关内容

  • 没有找到相关文章

最新更新