Terraform 获取Terrafrorm中AWS bucket的ListObjects访问被拒绝

Terraform 获取Terrafrorm中AWS bucket的ListObjects访问被拒绝,terraform,aws-cli,terraform-provider-aws,Terraform,Aws Cli,Terraform Provider Aws,我在terraform中有以下代码: data "file" "policy" { count = "${length(var.s3_bucket_name)}" template = <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListAllMyBuckets"], "Resource": ["*"

我在terraform中有以下代码:

data "file" "policy" {
  count = "${length(var.s3_bucket_name)}"

  template = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListAllMyBuckets"],
      "Resource": ["*"]
    },
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": [
        "arn:aws:s3:::${var.s3_bucket_name[count.index]}", 
        "arn:aws:s3:::${var.s3_bucket_name[count.index]}/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:ListObjects",
        "s3:GetObject"],
      "Resource": [
        "arn:aws:s3:::${var.s3_bucket_name[count.index]}", 
        "arn:aws:s3:::${var.s3_bucket_name[count.index]}/*"
      ]
    }
  ]
}
EOF
}
数据“文件”策略{
count=“${length(var.s3\u bucket\u name)}”

template=您在应用terraform并通过用户访问存储桶后出现错误,对吗?如果是,您如何通过cli、boto3等执行ListObjects操作?@error404via cli->aws s3 sync${path.module}/../upload/file s3://bucket1/folder1/@error404代码用于在bucket中输入文件,而不是ec2实例在创建过程中访问文件。ohk..如果我理解正确,您将创建一个角色并将其附加到ec2实例,然后执行aws s3 sync将一些文件上载到s3。如果是,请查看。。。
data "file" "policy" {
  count = "${length(var.s3_bucket_name)}"

  template = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:ListObjects",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::${var.s3_bucket_name[count.index]}", 
        "arn:aws:s3:::${var.s3_bucket_name[count.index]}/*"
      ]
    }
  ]
}
EOF
}