La création d'un compartiment S3 politique qui permet l'accès à Cloudfront mais limite l'accès à quelqu'un d'autre

J'ai la politique suivante:

{
        "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/*"
            }
        ]
    }

Cependant, c'est de refuser les demandes de tous les demandeurs, même Cloudfront. Quelle est la bonne façon de le faire?

Le problème est que les objets sont créés par le client avec le service public de la lecture. J'ai actuellement n'ont pas de contrôle direct du client pour modifier ce paramètre. Donc, ce que je veux, c'est avoir une politique qui remplace objet ACL. Donc par défaut refuser ici ne fonctionne pas.

OriginalL'auteur Snowman | 2014-03-26