Terraform: предоставить пользователю ElastiCache права на экспорт в S3 Bucket - PullRequest
1 голос
/ 27 июня 2019

Я бы хотел экспортировать снимки из ElastiCache в S3. Это относительно легко настроить вручную, следуя документации . Тем не менее, я хотел бы сделать это программно с помощью terraform.

В документации указано:

5. Choose Access Control List.

<snip />

8. Set the permissions on the bucket by choosing Yes for:
   a. List objects
   b. Write objects
   c. Read bucket permissions

Мне не удалось найти нигде в документации Terraform , где я могу установить эти разрешения в корзине. Я нашел некоторую документацию , которая сопоставляет вышеуказанные разрешения с разрешениями политик IAM, и я применил их в политике корзины. К сожалению, я все еще получаю следующую ошибку:

Произошла ошибка (InvalidParameterValue) при вызове операции CopySnapshot: Elasticache не были предоставлены разрешения ReadACP для моих резервных копий корзины S3

КОД

Настройка S3 Bucket:

data "aws_iam_policy_document" "my_backups" {
  statement {
    actions = [
      "s3:GetBucketAcl",
      "s3:ListBucket",
      "s3:PutObject",
      "s3:DeleteObject",
    ]

    resources = [
      "arn:aws:s3:::my-backups",
      "arn:aws:s3:::my-backups/*",
    ]

    principals {
      type        = "CanonicalUser"
      identifiers = ["540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353"]
    }
  }
}

resource "aws_s3_bucket" "my_backups" {
  bucket = "my-backups"
  policy = "${data.aws_iam_policy_document.my_backups.json}"
}

GitHub

Я обнаружил две проблемы (с кодом, который не был объединен), которые относятся к этому:

  1. ACL поддержки ковша
  2. Реализация грантов acl

Полагаю, это невозможно, пока не будет решена одна из этих двух проблем.

1 Ответ

0 голосов
/ 27 июня 2019

На основании ошибки выясняется, что вы являетесь участником ElasticCache и не можете прочитать разрешения политики управления доступом в сегменты. Вам необходимо добавить некоторые дополнительные разрешения специально для этой страницы https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access

{
"Statement":
    {
    "Effect": "Allow",
    "Action": [
        "s3:GetBucketLocation",
        "s3:ListAllMyBuckets"
        ],
    "Resource": "arn:aws:s3:::*"
    }
    "Version": "2012-10-17"
}
...