Terraform InvalidConfigurationRequest: доступ запрещен для корзины S3

Я пытаюсь развернуть некоторый код terraform в среде AWS, для которой у меня есть настройка доступа администратора. Цель этого кода — отправить журналы из балансировщика нагрузки приложения в корзину S3. Код может создать ведро без проблем, но когда дело доходит до его части, я получаю следующую ошибку: введите здесь описание изображения

У меня возникли проблемы, как обойти эту ошибку. Ниже приведен мой код для создания балансировщика нагрузки, корзины S3, а также политика, которую я реализовал для ведения журнала. Любые советы будут полезны. Заранее спасибо.

Ведро S3

data "aws_elb_service_account" "javahome" {}

resource "aws_s3_bucket" "alb_access_logs" {
  bucket = var.alb_s3_logs
  acl    = "private"
  region = var.region
  tags = {
    Name        = "jalb-access-logs"
    Environment = terraform.workspace
  }
  policy = templatefile("${path.module}/scripts/iam/alb-s3-access-logs.json", {
    bucket_name = var.alb_s3_logs
    prefix      = var.prefix
    policy_arn  = data.aws_elb_service_account.javahome.arn
    }
  )
}

Балансировщик нагрузки приложений

resource "aws_lb" "javahome" {


name               = var.alb_name
  internal           = false
  load_balancer_type = var.lb_type
  security_groups    = [aws_security_group.elb_sg.id]
  subnets            = local.pub_sub_ids

  access_logs {
    bucket  = aws_s3_bucket.alb_access_logs.bucket
    prefix  = var.prefix
    enabled = true
  }

  tags = {
    Environment = terraform.workspace
  }
}

Политика

{
"Version": "2012-10-17",
"Id": "javahome-alb-pilicy",
"Statement": [
    {
        "Sid": "root-access",
        "Effect": "Allow",
        "Principal": {
            "AWS": "${policy_arn}"
        },
        "Action": "s3:PutObject",
        "Resource": "arn:aws:s3:::${bucket_name}/${prefix}/AWSLogs/*"
    },
    {
        "Sid": "log-delivery",
        "Effect": "Allow",
        "Principal": {
            "Service": "delivery.logs.amazonaws.com"
        },
        "Action": "s3:PutObject",
        "Resource": "arn:aws:s3:::${bucket_name}/${prefix}/AWSLogs/*",
        "Condition": {
            "StringEquals": {
                "s3:x-amz-acl": "bucket-owner-full-control"
            }
        }
    },
    {
        "Sid": "log-delivery-access-check",
        "Effect": "Allow",
        "Principal": {
            "Service": "delivery.logs.amazonaws.com"
        },
        "Action": "s3:GetBucketAcl",
        "Resource": "arn:aws:s3:::${bucket_name}"
    }
]

}


person Imran Sandozi    schedule 08.12.2019    source источник
comment
Отвечает ли это на ваш вопрос? Проблема с разрешениями Terraform ELB S3   -  person ydaetskcoR    schedule 09.12.2019
comment
Материал доставки журналов, который у вас есть, предназначен для записи журналов доступа S3 в корзину S3, а не для журналов доступа ELB. Связанный ответ выше показывает, как правильно настроить это для журналов доступа ELB.   -  person ydaetskcoR    schedule 09.12.2019