/ / Django Storage S3-Bucket Zugriff mit IAM-Rolle - django, amazon-ec2, amazon-s3, django-speicher

Django Storage S3-Bucket Zugriff mit IAM-Rolle - django, amazon-ec2, amazon-s3, django-speicher

Ich habe eine EC2-Instanz mit einer IAM-Rolle verbunden. Diese Rolle hat vollen Zugriff auf s3. Die aws CLI funktioniert perfekt, und auch die Meta-Daten Curl-Check, um die temporären Access und Secret Keys zu erhalten.

Ich habe auch gelesen, dass wenn die Access und Secret Schlüssel im Einstellungsmodul fehlen, Boto automatisch die temporären Schlüssel von der Metadaten-URL erhält.

Ich kann jedoch nicht über den Browser auf die im Bucket gespeicherten css / js-Dateien zugreifen. Wenn ich eine Bucket-Richtlinie hinzufüge, die einen Prinzipal von * zulässt, funktioniert alles.

Ich habe folgende Politik ausprobiert:

{
"Version": "2012-10-17",
"Id": "PolicyNUM",
"Statement": [
{
"Sid": "StmtNUM",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::account-id:role/my-role"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]

}

Aber alle css / js werden immer noch 403 "s. Was kann ich ändern, damit es funktioniert?

Antworten:

1 für die Antwort № 1

Anfragen von Ihrem Browser haben nicht die Fähigkeitum die erforderlichen Authz-Header zu senden, die Boto anderswo für Sie verarbeitet. Die Bucket-Richtlinie kann den Principal nicht ermitteln und verweigert die Anforderung ordnungsgemäß.

Fügen Sie eine andere SID hinzu, um Prinzipal * Zugriff auf alles unter / public zu ermöglichen.


-1 für die Antwort № 2

Der Grund dafür ist, dass AWS Ihre Dateien auf binary / octet-stream setzt.

Überprüfen Sie dies Lösung damit umgehen.