J'ai une règle de redirection personnalisée pour mon seau sur S3:règles de redirection personnalisées sur le rendement S3 403 lors de l'utilisation CloudFront
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals/>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>https</Protocol>
<HostName>example2.com</HostName>
<ReplaceKeyPrefixWith>services/create?key=</ReplaceKeyPrefixWith>
<HttpRedirectCode>307</HttpRedirectCode>
</Redirect>
</RoutingRule>
</RoutingRules>
Et mon seau a une bonne politique:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example.com/*"
}
]
}
Cela fonctionne bien quand j'y accède via son URL interne http://example.com.s3-website-us-east-1.amazonaws.com
et qu'il me redirige vers mon autre serveur correctement.
Cependant, cela ne fonctionne pas avec mon installation CloudFront. Lorsque j'essaie d'y accéder directement (http://example.com/images/dummy.jpg
), je reçois un 403 AccessDenied.
Correct. [* "Sur la page Créer une distribution, dans la section Paramètres d'origine, pour Origine du nom de domaine, saisissez le point de terminaison d'hébergement de site Web statique Amazon S3 pour votre compartiment, par exemple, * example.com.s3-website-us-east-1. ** Remarque ** * Veillez à indiquer le point de terminaison d'hébergement de site Web statique, pas le nom du compartiment. "*] (http://docs.aws.amazon.com/AmazonS3/latest/ dev/website-hosting-cloudfront-walkthrough.html) Si vous sélectionnez le compartiment dans la liste, CloudFront se connecte au point de terminaison REST du compartiment, au lieu du point de terminaison du site Web. –