Sou*_*aul 4 amazon-s3 amazon-web-services terraform-provider-aws terraform-aws-modules aws-credentials
我正在尝试使用 terraform 创建一个 AWS S3 存储桶,这是我的代码:
provider "aws" {
profile = "default"
region = "ap-south-1"
}
resource "aws_s3_bucket" "first_tf" {
bucket = "svk-pl-2909202022"
acl = "private"
}
Run Code Online (Sandbox Code Playgroud)
我使用记事本手动创建了“凭据”文件,并使用 Powershell 删除了“.txt”扩展名并将该文件存储在C:\Users\terraform\.aws.
[default]
aws_access_key_id=**************
aws_secret_access_key=************
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行时terraform plan,我收到一个错误消息
错误:配置 Terraform AWS Provider 时出错:找不到 Terraform AWS Provider 的有效凭证源
然后,我还尝试通过安装 AWS CLI 创建“凭据”文件,我运行了命令
aws configure --profile terraform
Run Code Online (Sandbox Code Playgroud)
terraform我的用户名在哪里。所以,它要求我输入aws_access_key_id和aws_secret_access_key。输入所有凭据后,我运行了命令terraform init,该命令运行成功,但是当我运行时terraform plan,它再次显示错误,内容为:
错误:配置 Terraform AWS Provider 时出错:找不到 Terraform AWS Provider 的有效凭证源
手动创建配置文件时
provider "aws" {
region = "your region"
shared_credentials_file = "path_file_credentials like C:\Users\terraform\.aws\credentials"
profile = "profile_name"
}
Run Code Online (Sandbox Code Playgroud)
当您不想手动放置共享文件时
需要在这条路上 %USERPROFILE%.aws\credentials
provider "aws" {
region = "your region"
profile = "profile_name"
}
Run Code Online (Sandbox Code Playgroud)
如果你想把你的凭据放在一个 tf 文件中
provider "aws" {
region = "us-west-2"
access_key = "my-access-key"
secret_key = "my-secret-key"
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我花了很多时间试图弄清楚如何让 Terraform 读取 ~/.aws/credentials。唯一对我有用的选项是指定 AWS_PROFILE 环境变量以将其指向凭证文件的特定部分。
AWS_PROFILE=prod terraform plan
Run Code Online (Sandbox Code Playgroud)
或者
export AWS_PROFILE=prod
terraform plan
Run Code Online (Sandbox Code Playgroud)
提供程序部分中的shared_credentials_file和/或配置文件选项被忽略的事实对我来说似乎是一个错误。
| 归档时间: |
|
| 查看次数: |
6214 次 |
| 最近记录: |