Amazon S3 copyObject Erlaubnis
I ' V bekam-Benutzer mit allen Berechtigungen.
{
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
Ich bin mit der aws-sdk-php-2 zu setzen und kopieren von Objekten im bucket.
http://docs.aws.amazon.com/aws-sdk-php-2/latest/class-Aws.S3.S3Client.html
Code funktioniert perfekt
$client->putObject(array(
'Bucket' => 'kiosk',
'Key' => 'test/orders/test.csv',
'SourceFile' => $sourcePath,
));
Nach prüfen ob das Objekt erstellt, auf S3 über https://console.aws.amazon.com/s3 ich bin nächste Skript ausführen.
$result = $client->copyObject(array(
'Bucket' => 'kiosk',
'CopySource' => 'test/orders/test.csv',
'Key' => 'test/test.csv',
));
Und ich bin immer fatal error:
Fatal error: Uncaught Aws\S3\Exception\S3Exception: AWS Error Code: AllAccessDisabled, Status Code: 403, AWS Request ID: XXX, AWS Error Type: client, AWS Error Message: All access to this object has been disabled, User-Agent: aws-sdk-php2/2.2.1 Guzzle/3.3.1 curl/7.19.7 PHP/5.4.13 thrown in phar:///usr/share/pear/AWSSDKforPHP/aws.phar/src/Aws/Common/Exception/NamespaceExceptionFactory.php on line 89
Nach upload-Datei manuell console.aws.amazon.com/s3 ich sehe andere Fehlermeldung, wenn Sie versuchen zu kopieren:
Fatal error: Uncaught Aws\S3\Exception\AccessDeniedException: AWS Error Code: AccessDenied, Status Code: 403, AWS Request ID: XXX, AWS Error Type: client, AWS Error Message: Access Denied, User-Agent: aws-sdk-php2/2.2.1 Guzzle/3.3.1 curl/7.19.7 PHP/5.4.13 thrown in phar:///usr/share/pear/AWSSDKforPHP/aws.phar/src/Aws/Common/Exception/NamespaceExceptionFactory.php on line 89
Ich versuche auch zum festlegen von Berechtigungen auf Datei-und Ordner über console.aws.amazon.com/s3
:
Empfänger: Jeder, Öffnen/Herunterladen und Anzeigen, die Erlaubnis und die Berechtigung Bearbeiten
Aber immer noch die gleiche Fehlermeldung.
InformationsquelleAutor der Frage jwachol | 2013-06-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, das ist eine alte Frage, aber ich lief in das gleiche Problem kürzlich, während der Arbeit an einem älteren Projekt.
Alle meine anderen S3-Aufrufe gearbeitet, außer für
copyObject
weiter werfen ZUGRIFF VERWEIGERT Fehler. Nachdem einige Graben, ich endlich herausgefunden,warum.Ich war vorbei, nur der key und die Annahme, dass der Eimer übergeben wurde, was sowohl die Quelle und Ziel verwenden würden. Stellt sich heraus, dass ist eine falsche Annahme. Die Quelle muss die bucket-Namen vorangestellt.
Hier war meine Lösung:
Er sagt "Zugriff Verweigert", weil es denkt, dass der erste Teil des Schlüssel/Ordner ist eigentlich der name der Glocke, die entweder nicht vorhanden oder Sie haben wirklich nicht den Zugang zu.
Hoffe, das hilft ein paar Leuten!
InformationsquelleAutor der Antwort Jeremy Harris
Herausgefunden, was das Problem ist hier, dass ein AWS-Neuling kämpfte ich mich hier ein bisschen, bis ich erkannte, dass die einzelnen Richtlinien für die Benutzer, die Sie setzen muss, um klar zu ermöglichen, den service, den Sie verwenden.
In diesem Fall hatte ich nicht den Benutzer erlaubt sein in S3.
Springen IAM then goto-Benutzer und klicken Sie auf den jeweiligen Benutzer, der die Anmeldeinformationen, die Sie verwenden. Von dort aus springen die Registerkarte "Berechtigungen", klicken Sie dann auf Anfügen User Policy und finden Sie die S3-Richtlinie wählen Sie unter Gruppenrichtlinien-Vorlage. Das sollte dein problem lösen.
Hoffe, das hilft!
InformationsquelleAutor der Antwort Petrogad