Amazon S3: Gewährt Verbundbenutzern programmgesteuert und in der Konsole Zugriff auf ihr Amazon-S3-Stammverzeichnis - AWS Identity and Access Management

Amazon S3: Gewährt Verbundbenutzern programmgesteuert und in der Konsole Zugriff auf ihr Amazon-S3-Stammverzeichnis

Dieses Beispiel zeigt, wie Sie eine identitätsbasierte Richtlinie erstellen können, die es Verbundprinzipalen ermöglicht, auf ihr eigenes Startverzeichnis-Bucket-Objekt in S3 zuzugreifen. Das Stammverzeichnis ist ein Bucket mit einem home-Ordner sowie Ordnern für einzelne Verbundprinzipale. Diese Richtlinie definiert Berechtigungen für den programmgesteuerten Zugriff und den Konsolenzugriff. Um diese Richtlinie zu verwenden, ersetzen Sie den kursiv gedruckten Platzhaltertext in der Beispielrichtlinie durch Ihre eigenen Informationen. Befolgen Sie dann die Anweisungen unter Erstellen einer Richtlinie oder Bearbeiten einer Richtlinie.

Die Variable ${aws:userid} in dieser Richtlinie wird in role-id:specified-name aufgelöst. Der Teil role-id der Verbundprinzipal-ID ist ein eindeutiger Bezeichner für die Rolle des Verbundprinzipals während der Erstellung. Weitere Informationen finden Sie unter Eindeutige Bezeichner. specified-name ist der RoleSessionName-Parameter, der an die AssumeRoleWithWebIdentity-Anforderung übergeben wurde, als der Verbundprinzipal seine Rolle annahm.

Sie können diese Rollen-ID mit folgendem AWS CLI-Befehl anzeigen: aws iam get-role --role-name specified-name. Stellen Sie sich z. B. vor, Sie geben als Anzeigenamen John an und die CLI gibt die Rolle-ID AROAXXT2NJT7D3SIQN7Z6 zurück. In diesem Fall ist AROAXXT2NJT7D3SIQN7Z6:John die ID des Verbundprinzipals. Diese Richtlinie erlaubt dann dem Verbundprinzipal John den Zugriff auf den Amazon-S3-Bucket mit dem Präfix AROAXXT2NJT7D3SIQN7Z6:John.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "S3ConsoleAccess", "Effect": "Allow", "Action": [ "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringLike": { "s3:prefix": [ "", "home/", "home/${aws:userid}/*" ] } } }, { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}", "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}/*" ] } ] }