2017-10-25 4 views
0

Wenn ich durch meinen Eimer gehe Berechtigungen -> Zugangskontrolle -> Öffentlicher Zugang, kann ich die Option "Jeder" ankreuzen.AWS s3 "öffentlicher Zugang"

Bedeutet das, dass buchstäblich alle Zugriff auf diese Bucket-Dateien (mit der URL) haben?

Wie kann ich allen Benutzern, die über meinen Benutzerpool verbunden sind, Zugriff gewähren, unabhängig davon, ob sie Eigentümer einer Datei sind oder nicht?

Antwort

1

Ja, wenn Sie Zugriffskontrolle öffentlich geben, dann sollte es von der ganzen Welt zugänglich sein. Sie können eine Bucket-Richtlinie festlegen, um den Zugriff auf Ihren Bucket zu beschränken. In der Bucket-Richtlinie können Sie die Benutzer angeben, die Sie verbinden möchten. Hier finden Sie eine Probe Eimer unter Politik,

{ 
 
\t "Version": "2012-10-17", 
 
\t "Id": "Policy12345", 
 
\t "Statement": [ 
 
\t \t { 
 
\t \t \t "Sid": "Stmt12345", 
 
\t \t \t "Effect": "Allow", 
 
\t \t \t "Principal": "*", //* means public . Specify your users here 
 
\t \t \t "Action": "s3:GetObject", 
 
\t \t \t "Resource": "arn:aws:s3:::BUCKETNAME/*" 
 
\t \t } 
 
\t ] 
 
}

Im ‚Haupt‘ Abschnitt erwähnen Sie die Benutzer eine Verbindung herstellen möchten (durch Komma getrennt). Sagen Sie zum Beispiel, wenn Sie zu ARN haben dann im Prinzip an,

"Principal" : {"AWS": ["arn:aws:iam::111122223333:root","arn:aws:iam::444455556666‌​:root"]} 

und wenn es nur eine dann,

"Principal" : {"AWS" : "arn:aws:iam::111122223333:root"} 

Bitte mehr Details über Eimer Politik here

sehen Wenn Sie möchten, Object-Level-Berechtigung anstelle von Bucket-Level-Berechtigung, dann gehen Sie zur Access-Control-Liste. Weitere Informationen finden Sie unter here

+0

Vielen Dank! Wenn ich den Zugriff auf einen Benutzerpool einschränken möchte, muss ich den 'Pool ARN' verwenden, aber was, wenn ich ihn noch mehr auf eine Gruppe meines Benutzerpools beschränken möchte? (sie haben keine Rollen) – Niavart

+1

Diese Gruppe würde einen ARN haben, so dass Sie dort Gruppe ARN angeben können und es sollte funktionieren. Eine Beispielgruppe ARN wäre wie 'arn: aws: iam :: 123456789012: group/Entwickler' –

+0

Ich habe Rollen ARN zu meinen Gruppen hinzugefügt (Liste, lese, schreibe nach s3). Wie auch immer, als ich versuchte, den obigen Code hinzuzufügen und '*' durch die Gruppenrolle ARN und BUCKETNAME durch den Bucket-Namen zu ersetzen, aber eine "Ungültige Bucket-Richtlinensyntax" vom Principal kam ...? – Niavart