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
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
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' –
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