Я бы хотел экспортировать снимки из 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
Я обнаружил две проблемы (с кодом, который не был объединен), которые относятся к этому:
- ACL поддержки ковша
- Реализация грантов acl
Полагаю, это невозможно, пока не будет решена одна из этих двух проблем.