2016-09-08 4 views
0

Ich werde Amazon S3 Bucket Service in unser Projekt integrieren. Ich verwende PHP-Klasse hier aufgelistet. https://github.com/tpyo/amazon-s3-php-class.Amazon S3 php Klasse funktioniert ohne Anmeldeinformationen

Ich verwende 'putObjectFile' Methode in es & es funktioniert gut.

Problem: Jetzt, wenn ich diese Klasse verwende, ohne Sicherheitsnachweise zu übergeben.

Wie, $s3 = new S3();

Es ist auch perfekt funktioniert, sollte das nicht.

Also, ich weiß nicht, welche Einstellungen im Eimer bleiben. Es sollte nur funktionieren, wenn ich perfekte Anmeldeinformationen erhalte.

Hier ist die meinem Eimer Politik

{ "Id": "POLICY_ID", "Version": "2012-10-17", "Statement": [ { "Sid": "SID_ID", "Action": "s3:*", "Effect": "Allow", "Resource": "arn:aws:s3:::BUCKET_NAME/*", "Principal": "*" } ] }

Antwort

0

Sie auf einer EC2-Instanz die Code-Hosting sind, die eine IAM-Rolle hat, dass die EC2-Instanz vollen Zugriff auf den s3 Eimer gibt. Auf diese Weise können Sie auf einen Bucket ohne Anmeldeinformationen zugreifen.

Vom AWS documention:

Wenn Sie nicht explizit Anmeldeinformationen an den Client-Objekt zur Verfügung stellen kann und keine Umgebungsvariable Anmeldeinformationen verfügbar sind, versucht das SDK Instanzprofil Anmeldeinformationen aus einer Amazon EC2-Instanz Metadaten-Server abzurufen. Diese Anmeldeinformationen sind nur verfügbar, wenn sie auf Amazon EC2-Instanzen ausgeführt werden, die mit einer IAM-Rolle konfiguriert wurden.