用于Terraform后端的S3存储桶的访问被拒绝

时间:2020-11-02 12:58:22

标签: amazon-s3 terraform-provider-aws

我的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"
#   }
# }

1 个答案:

答案 0 :(得分:0)

运行 aws configure ,然后运行。 由于某种原因,即使考虑了错误的原因,我还是在〜.aws / credentials 文件中设置了正确的 aws配置文件

我意识到使用错误帐户的方式是在 导出TF_LOG = DEBUG

之后运行地形应用
相关问题