Amazon web services 如何使Terraform读取AWS凭据文件?
我正在尝试使用terraform创建AWS S3 bucket,以下是我的代码:Amazon web services 如何使Terraform读取AWS凭据文件?,amazon-web-services,amazon-s3,terraform-provider-aws,aws-credentials,terraform-aws-modules,Amazon Web Services,Amazon S3,Terraform Provider Aws,Aws Credentials,Terraform Aws Modules,我正在尝试使用terraform创建AWS S3 bucket,以下是我的代码: provider "aws" { profile = "default" region = "ap-south-1" } resource "aws_s3_bucket" "first_tf" { bucket = "svk-pl-2909202022" acl = &q
provider "aws" {
profile = "default"
region = "ap-south-1"
}
resource "aws_s3_bucket" "first_tf" {
bucket = "svk-pl-2909202022"
acl = "private"
}
我使用记事本手动创建了凭据文件,还使用Powershell删除了.txt扩展名,并将该文件存储在C:\Users\terraform\.aws中,该文件如下所示:
[default]
aws_access_key_id=**************
aws_secret_access_key=************
但当我尝试运行terraform plan时,我得到一个错误
错误:配置Terraform AWS提供程序时出错:找不到Terraform AWS提供程序的有效凭据源
然后,我还尝试通过安装AWS CLI创建该凭据文件,我运行了以下命令
aws configure --profile terraform
aws configure --profile=prod
terraform是我的用户名。所以,它要求我输入aws_访问密钥和aws_机密密钥。输入所有凭据后,我运行了命令terraform init,该命令成功运行,但当我运行terraform plan时,它再次显示错误,显示:
错误:配置Terraform AWS提供程序时出错:找不到Terraform AWS提供程序的有效凭据源
当您手动创建配置文件时
provider "aws" {
region = "your region"
shared_credentials_file = "path_file_credentials like C:\Users\terraform\.aws\credentials"
profile = "profile_name"
}
当您不想手动放置共享文件时
provider "aws" {
region = "your region"
shared_credentials_file = "path_file_credentials like C:\Users\terraform\.aws\credentials"
profile = "profile_name"
}
需要在此路径%USERPROFILE%.aws\credentials中
如果您想将您的凭据放入tf文件中
provider "aws" {
region = "us-west-2"
access_key = "my-access-key"
secret_key = "my-secret-key"
}
当您手动创建配置文件时
provider "aws" {
region = "your region"
shared_credentials_file = "path_file_credentials like C:\Users\terraform\.aws\credentials"
profile = "profile_name"
}
当您不想手动放置共享文件时
provider "aws" {
region = "your region"
shared_credentials_file = "path_file_credentials like C:\Users\terraform\.aws\credentials"
profile = "profile_name"
}
需要在此路径%USERPROFILE%.aws\credentials中
如果您想将您的凭据放入tf文件中
provider "aws" {
region = "us-west-2"
access_key = "my-access-key"
secret_key = "my-secret-key"
}
我花了很多时间试图弄清楚如何让Terraform读取~/.aws/凭证。唯一对我有效的选项是指定AWS_PROFILE environment var以将其指向凭证文件的特定部分
AWS_PROFILE=prod terraform plan
或
共享凭证文件和/或provider部分中的概要文件选项被忽略这一事实对我来说似乎是个错误。我花了很多时间试图弄清楚如何让Terraform读取~/.aws/凭证。唯一对我有效的选项是指定AWS_PROFILE environment var以将其指向凭证文件的特定部分
AWS_PROFILE=prod terraform plan
或
在我看来,忽略“提供程序”部分中的共享凭据文件和/或配置文件选项似乎是一个错误。存储凭据文件的路径错误 C:\Users\your username\.aws 您可以将以下文件添加到上述位置 证书 配置
如果使用boto3,则不需要将任何东西配置到terraform或python中。Terraform和boto3将自动找到所需的凭据文件。存储凭据文件的路径错误
AWS_PROFILE=prod terraform plan
C:\Users\your username\.aws
您可以将以下文件添加到上述位置
证书
配置
如果使用boto3,则不需要将任何东西配置到terraform或python中。Terraform和boto3将自动找到所需的凭证文件。您必须使用命令在凭证文件中设置自定义部分
aws configure --profile terraform
AWS_PROFILE=prod terraform plan
aws configure --profile=prod
为了像这样使用env变量。您必须使用命令在凭证文件中设置一个自定义节
aws configure --profile terraform
aws configure --profile=prod
为了像这样使用env变量。即使在答案中,也没有理由写粗体大写文字。即使在答案中,也没有理由写粗体大写文字。