Создание политики S3 Bucket, которая разрешает доступ к Cloudfront, но ограничивает доступ кому-либо еще

У меня есть следующая политика:

{
        "Version": "2008-10-17",
        "Id": "PolicyForCloudFrontPrivateContent",
        "Statement": [
            {
                "Sid": "Stmt1395852960432",
                "Action": "s3:*",
                "Effect": "Deny",
                "Resource": "arn:aws:s3:::my-bucket/*",
                "Principal": {
                    "AWS": [
                        "*"
                    ]
                }
            },
            {
                "Sid": "1",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1IYJC432545JN"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::my-bucket/*"
            }
        ]
    }

Тем не менее, это отклоняет запросы от всех запрашивающих, даже Cloudfront. Как правильно это сделать?

Проблема в том, что объекты создаются клиентом с публичным чтением. В настоящее время у меня нет непосредственного контроля над клиентом, чтобы изменить этот параметр. Так что я хочу иметь политику, которая переопределяет отдельные объекты ACL. Такпо умолчанию отрицать здесь не работает.

Ответы на вопрос(2)

Ваш ответ на вопрос