ich eine benutzerdefinierte Umleitungsregel für meinen Eimer auf S3 haben:Benutzerdefinierte Umleitungsregeln auf S3 liefert 403, wenn Cloudfront mit
<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>
Und mein Eimer hat eine richtige Politik:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example.com/*"
}
]
}
Dies funktioniert gut wenn ich über die interne URL http://example.com.s3-website-us-east-1.amazonaws.com
darauf zugreife und es mich auf meinen anderen Server richtig umleitet.
Es funktioniert jedoch nicht mit meinem CloudFront-Setup. Wenn ich versuche, direkt darauf zuzugreifen (http://example.com/images/dummy.jpg
), erhalte ich eine 403 AccessDenied.
Korrekt. [* "Geben Sie auf der Seite Distribution erstellen im Bereich Ursprungseinstellungen für Origin Domain Name den Hosting-Endpunkt für die statische Website von Amazon S3 für Ihren Bucket ein. Beispiel: * example.com.s3-website-us-east-1. amazonaws.com ** Hinweis ** * Achten Sie darauf, den statischen Website-Hosting-Endpunkt anzugeben, nicht den Namen des Buckets. "*] (http://docs.aws.amazon.com/AmazonS3/latest/ dev/website-hosting-cloudfront-walkthrough.html) Wenn Sie den Bucket aus der Liste auswählen, stellt CloudFront eine Verbindung zum REST-Endpunkt des Buckets anstelle des Website-Endpunkts her. –