amazon-s3 - 用于 terraform 后端的 s3 存储桶的访问被拒绝
问题描述
我的地形代码如下:
# PROVIDERS
provider "aws" {
profile = var.aws_profile
region = var.region
}
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 1.0.4"
}
}
}
terraform {
backend "s3" {
bucket = "terraform-backend-20200102"
key = "test.tfstate"
}
}
# DATA
data "aws_availability_zones" "available" {}
data "template_file" "public_cidrsubnet" {
count = var.subnet_count
template = "$${cidrsubnet(vpc_cidr,8,current_count)}"
vars = {
vpc_cidr = var.network_address_space
current_count = count.index
}
}
# RESOURCES
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
name = var.name
version = "2.62.0"
cidr = var.network_address_space
azs = slice(data.aws_availability_zones.available.names, 0, var.subnet_count)
public_subnets = []
private_subnets = data.template_file.public_cidrsubnet[*].rendered
tags = local.common_tags
}
但是,当我运行 terraform init 时,它给了我一个错误。
$ terraform.exe init -reconfigure
Initializing modules...
Initializing the backend...
region
AWS region of the S3 Bucket and DynamoDB Table (if used).
Enter a value: ap-southeast-2
Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Error refreshing state: AccessDenied: Access Denied
status code: 403, request id: A2EB50094A12E22F, host id: JFwXo11eiAW3N0JL1Yoi/i1k03aqzSIwj34NOgMT/ScgmBEC/nncjsK/GKik0SFIT6Ym8Mr/j6U=
/vpc_create
$ aws s3 ls --profile=tcp-aws-sandbox-31
2020-11-02 23:05:48 terraform-backend-20200102
请注意,我可以从aws s3 ls命令列出我的存储桶,那么为什么 terraform 有任何问题!?
PS:我正在尝试转到本地状态文件,因此注释掉了后端块,但它仍然给我一个错误,请协助。
# terraform {
# backend "s3" {
# bucket = "terraform-backend-20200102"
# key = "test.tfstate"
# }
# }
解决方案
跑aws configure然后它工作了。出于某种原因,它使用了错误的帐户,尽管我在~.aws/credentials文件中设置了正确的aws 配置文件。
我意识到它使用错误帐户的方式是在export TF_LOG=DEBUG之后运行terraform apply
推荐阅读
- c# - 由于使用 Swagger 发布 ASP.NET Core / .NET 5.0,因此无法在本地调试 API
- apache-spark - 使用 Kubernetes Airflow SparkSubmitOperator 提交存在于 AWS s3 上的 pyspark 应用程序
- c++ - 如何按顺序遍历将 AVL 树输出到文件?
- django - Django:如何使用相同的抽象类两次具有相同的字段但不同的名称?
- php - 如何在 laravel 迁移中定义整数大小
- python - Django 中 Pandas 数据框的分页
- pandas - 熊猫数据框到 wxGrid
- c - 我们如何将包含预定义宏的字符串存储到 C 中的变量中?
- python - 我在使用 postgresql discord.py 的自定义前缀命令中出现错误
- html - 为什么这张幻灯片中的第三张图片几乎跳过了?