amazon-web-services - 如何让 Terraform 读取 AWS 凭证文件?

标签 amazon-web-services amazon-s3 terraform-provider-aws aws-credentials terraform-aws-modules

我正在尝试使用 terraform 创建一个 AWS S3 存储桶,这是我的代码:

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 ,我收到一个错误,上面写着

ERROR: error configuring Terraform AWS Provider: no valid credential sources for Terraform AWS Provider found


然后,我还尝试通过安装 AWS CLI 创建“凭据”文件,我运行了命令
aws configure --profile terraform
哪里terraform是我的用户名。所以,它让我输入 aws_access_key_idaws_secret_access_key .输入所有凭据后,我运行命令 terraform init ,运行成功,但是当我运行时 terraform plan ,它再次显示错误,其中说:

ERROR: error configuring Terraform AWS Provider: no valid credential sources for Terraform AWS Provider found

最佳答案

我花了很多时间试图弄清楚如何让 Terraform 读取 ~/.aws/credentials。唯一对我有用的选项是指定 AWS_PROFILE 环境变量以将其指向凭证文件的特定部分。

AWS_PROFILE=prod terraform plan
或者
export AWS_PROFILE=prod 
terraform plan
事实证明 shared_credentials_file 和/或 个人资料 provider 部分中的选项被忽略对我来说似乎是一个错误。

关于amazon-web-services - 如何让 Terraform 读取 AWS 凭证文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64124063/

相关文章:

amazon-web-services - 为什么我无法从 AWS Lambda 运行我的 ECS 任务?

python-2.7 - 如何使用 AWS Lambda python 创建 S3 存储桶?

java - 我想通过 putobjectrequest 使用 java 将文本文件写入 s3 存储桶

java - 无法播放使用预签名 URL 上传到 AWS S3 的 mp4 视频

amazon-web-services - 尝试在 awsgosdk 的帮助下在 terratest 中调用 cloudwatch loggroupname 和 logstreamname

amazon-web-services - terraform 中的字符串列表/元组在 IAM 策略资源中不起作用

amazon-web-services - ECS Fargate 计划任务未运行

amazon-web-services - t2.micro 可以处理的流量

amazon-web-services - 安全组定义中不允许自引用

php - AWS AssumeRole - 用户无权执行 : sts:AssumeRole on resource