【问题标题】:Access denied for s3 bucket for terraform backend用于 terraform 后端的 s3 存储桶的访问被拒绝
【发布时间】:2020-11-05 10:53:19
【问题描述】:

我的 terraform 代码如下:

# 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 有任何问题!?

P.S:我正在尝试转到本地状态文件,因此注释掉了后端块,但它仍然给我一个错误,请协助。

# terraform {
#   backend "s3" {
#     bucket = "terraform-backend-20200102"
#     key    = "test.tfstate"
#   }
# }

【问题讨论】:

    标签: amazon-s3 terraform-provider-aws


    【解决方案1】:

    运行 aws configure 然后它就起作用了。 出于某种原因,它使用了错误的帐户,尽管我在 ~.aws/credentials 文件中设置了正确的 aws 配置文件

    当我运行 terraform apply export TF_LOG=DEBUG

    时,我意识到它使用了错误的帐户

    【讨论】:

    • 使用该环境变量帮助我调试问题。事实证明,由于在创建 S3 存储桶时出现重复名称错误,我在尝试创建存储桶时收到“拒绝访问错误”
    猜你喜欢
    • 2020-04-01
    • 2019-02-03
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    相关资源
    最近更新 更多