У меня есть несколько дистрибутивов AWS Cloudfront, распределенных по разным аккаунтам AWS.
Я хотел бы хранить журналы доступа из этих дистрибутивов в одной корзине S3 в одной учетной записи AWS.
Это возможно, но это не задокументировано (что я могу найти).
Неясно, какое обновление ACL требуется в ведре журнала или какая (если есть) политика сегмента требуется.
Мне кажется, что мне нужно обновить ACL в корзине, чтобы предоставить FULL_CONTROL канонический идентификатор любой учетной записи в другой учетной записи AWS, которую Cloudfront использует для записи журналов.
Если кто-то еще настроил это и может помочь, я буду очень признателен.
(Обновлено для использования в будущем)
Допустим, ваш дистрибутив CloudFront находится в учетной записи 123456789012 с ведением журнала, настроенным для корзины. your-logging-bucket
в другом аккаунте.
Создать Политика сегмента S3 который дает учетной записи CloudFront 123456789012 разрешения на выполнение s3:GetBucketAcl
и s3:PutBucketAcl
на your-logging-bucket
.
Это обязательный Политика ведра:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root" << the CloudFront account
},
"Action": [
"s3:GetBucketAcl",
"s3:PutBucketAcl"
],
"Resource": "arn:aws:s3:::your-logging-bucket"
}
]
}
С этим Политика сегмента S3 на месте * создать новую раздачу CloudFront в учетной записи 1223456789012 и в создать мастера разрешить вход в your-logging-bucket
. Благодаря указанной выше политике сегмента он создаст для вас соответствующие списки управления доступом.
Вы можете проверить, что официальный аккаунт CloudFront c4c1ede66af...8632f77d2d0
получил доступ, просмотрев S3 -> your-logging-bucket -> Permissions -> ACL
Настройте все остальные дистрибутивы CF в учетной записи 123 ... для входа в your-logging-bucket
- теперь он должен работать и для всех ранее существовавших дисков CF.
Надеюсь, это поможет :)