Wenn ich versuche, ein Bild auf ein "Auto" -Objekt hochzuladen, wird mir der Zugriff auf S3 verweigert. Aber die Site-Images, die sich im Assets-Ordner befinden, sind seit dem Hinzufügen von S3 gut dargestellt. Der spezifische Fehler, den ich bekomme, ist dies:
%Vor%Mit "Teil des geheimen Schlüssels" offensichtlich redigiert. Ich habe versucht, einen anderen Benutzer zu erstellen und neue Schlüssel zu verwenden, aber das hat nicht funktioniert. Nicht wohin von hier gehen.
app / uploaders / Bilduploader
%Vor%carrier_wave.rb
%Vor%Ich glaube, das sind alle relevanten Dateien, lassen Sie mich wissen, ob es noch mehr zu sehen gibt. Nicht sicher, ob die Angabe einer Region oder eines Power Users helfen würde, scheint nicht so zu sein.
[BEARBEITEN: Ich würde an dieser Stelle auf die andere Antwort zurückgreifen, besonders wenn Sie sich in einer Prod-Umgebung befinden. Dies war ein Workaround, der für mich funktionierte, als ich vor einigen Jahren ein zerbrechliches Spielzeug baute, aber ich stimme der Gewährung von minimalen Berechtigungen zu, wenn Sicherheit ein Problem darstellt.]
Ich hatte den gleichen Fehler, und die Lösung bestand darin, administrative Zugriffsrichtlinien von der AWS Management Console aus anzuhängen:
1) Melden Sie sich unter Ссылка
bei der AWS Management Console an2) Klicken Sie im Navigationsbereich auf der linken Seite auf "Richtlinien"
3) Wählen Sie die Richtlinie "AdministratorAccess"
4) Klicken Sie auf Richtlinienaktionen & gt; Anhängen am oberen Rand der Seite
5) Wählen Sie den Benutzer aus, der mit meinem S3_ACCESS_KEY, S3_SECRET_KEY und S3_BUCKET
verknüpft ist6) Klicken Sie auf "Richtlinie anhängen"
Es war nicht ausreichend, nur alle Berechtigungen aus meinem Bucket in Ссылка zu vergeben.
Die andere Antwort, die Sie anweist, AdministratorAccess für den IAM-Benutzer zu gewähren, ist aus Sicherheitsgründen eine schlechte Idee. Jeder Benutzer mit Zugriff auf diese Schlüssel kann Aktionen in Ihrem Konto ausführen, einschließlich Löschen der gesamten Infrastruktur.
Ich habe nicht den genauen Mindestsatz von Berechtigungen, die Carrierwave / Fog benötigt, ausgearbeitet, aber ein kleinerer Satz, den ich bearbeitet habe, sieht so aus:
Erstellen Sie eine AWS IAM-Richtlinie mit einem Richtliniendokument wie:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::BUCKETNAME/*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::BUCKETNAME"
},
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"*"
]
}
]
}
Beachten Sie, dass es kein Fehler ist, S3-Aktionen für BUCKETNAME
und BUCKETNAME/*
anzugeben. Die erste bezieht sich auf API-Aktionen, die im Bucket ausgeführt werden, und die zweite auf gespeicherte Objekte im Bucket.
Tags und Links ruby-on-rails amazon-s3 carrierwave railstutorial.org