Erteilen von Berechtigungen zur Veröffentlichung von Ereignis-Benachrichtigungsmeldungen an einem Ziel - Amazon Simple Storage Service

Erteilen von Berechtigungen zur Veröffentlichung von Ereignis-Benachrichtigungsmeldungen an einem Ziel

Sie müssen dem Amazon-S3-Prinzipal die erforderlichen Berechtigungen erteilen, um die relevante API aufzurufen, um Nachrichten in einem SNS-Thema, einer SQS-Warteschlange oder einer Lambda-Funktion zu veröffentlichen. So kann Amazon S3 Ereignisbenachrichtigungsmeldungen an einem Ziel veröffentlichen.

Informationen zur Fehlerbehebung beim Veröffentlichen von Ereignisbenachrichtigungen in einem Ziel finden Sie unter Fehlerbehebung bei der Veröffentlichung von Amazon-S3-Ereignisbenachrichtigungen in einem Thema von Amazon Simple Notification Service.

Erteilen von Berechtigungen zum Aufrufen einer AWS Lambda-Funktion

Amazon S3 veröffentlicht Ereignismitteilungen in AWS Lambda durch Aufruf einer Lambda-Funktion und Übergabe der Ereignismitteilung als Argument.

Wenn Sie die Amazon-S3-Konsole verwenden, um Ereignisbenachrichtigungen in einem Amazon-S3-Bucket für eine Lambda-Funktion zu konfigurieren, richtet die Konsole die erforderlichen Berechtigungen für die Lambda-Funktion ein. Dies ist so, dass Amazon S3 über Berechtigungen verfügt, die Funktion aus dem Bucket aufzurufen. Weitere Informationen finden Sie unter Aktivieren und Konfigurieren von Ereignis-Benachrichtigungen mit der Amazon-S3-Konsole.

Sie können Amazon S3 auch Berechtigungen von AWS Lambda erteilen, um Ihre Lambda-Funktion aufzurufen. Weitere Informationen finden Sie unter Tutorial: Using AWS Lambda with Amazon S3 im AWS Lambda-Entwicklerhandbuch.

Erteilen von Berechtigungen, Meldungen in einem SNS-Thema oder einer SQS-Warteschlange zu veröffentlichen

Um Amazon S3 die Erlaubnis zu erteilen, Nachrichten im SNS-Thema oder in der SQS-Warteschlange zu veröffentlichen, fügen Sie eine AWS Identity and Access Management (IAM) Richtlinie an das SNS-Zielthema oder die SQS-Warteschlange an.

Ein Beispiel dafür, wie Sie einem SNS-Thema oder einer SQS-Warteschlange eine Richtlinie anfügen, finden Sie unter Walkthrough: Konfigurieren eines Buckets für Benachrichtigungen (SNS-Thema oder SQS-Warteschlange). Weitere Informationen über Berechtigungen finden Sie in den folgenden Themen:

IAM-Richtlinie für ein SNS-Zielthema

Im Folgenden finden Sie ein Beispiel für eine AWS Identity and Access Management (IAM) Richtlinie, die Sie an das SNS-Zielthema anfügen. Anweisungen zur Verwendung dieser Richtlinie zum Einrichten eines Amazon-SNS-Zielthemas für Ereignisbenachrichtigungen finden Sie unter Walkthrough: Konfigurieren eines Buckets für Benachrichtigungen (SNS-Thema oder SQS-Warteschlange).

JSON
{ "Version":"2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "Example SNS topic policy", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "arn:aws:sns:us-east-1:111122223333:example-sns-topic", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }

IAM-Richtlinie für eine SQS-Zielwarteschlange

Im Folgenden finden Sie ein Beispiel für eine IAM-Richtlinie, die Sie an die SQS-Zielwarteschlange anfügen. Anweisungen zur Verwendung dieser Richtlinie zum Einrichten einer Amazon-SQS-Zielwarteschlange für Ereignisbenachrichtigungen finden Sie unter Walkthrough: Konfigurieren eines Buckets für Benachrichtigungen (SNS-Thema oder SQS-Warteschlange).

Wen Sie diese Richtlinie verwenden möchten, müssen Sie den ARN der Amazon-SQS-Warteschlange, den Bucket-Namen und die AWS-Konto-ID des Bucket-Eigentümers aktualisieren.

JSON
{ "Version":"2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SQS:SendMessage" ], "Resource": "arn:aws:sqs:us-east-1:111122223333:queue-name", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }

Für die IAM-Richtlinien für Amazon SNS und Amazon SQS kann die StringLike-Bedingung statt der ArnLike-Bedingung in der Richtlinie angegeben werden.

Wenn ArnLike verwendet wird, müssen die Teile Partition, Dienst, Konto-ID, Ressourcentyp und Teil-Ressourcen-ID des ARN genau mit dem ARN im Anfragekontext übereinstimmen. Nur die Region und der Ressourcenpfad erlauben einen Teilabgleich.

Wenn StringLike anstelle von ArnLikeverwendet wird, ignoriert der Abgleich die ARN-Struktur und erlaubt einen Teilabgleich, unabhängig von dem Teil, der durch das Platzhalterzeichen ersetzt wird. Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente im IAM-Benutzerhandbuch.

"Condition": {        "StringLike": { "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket" } }

AWS KMS-Schlüsselrichtlinie

Wenn die SQS-Warteschlange oder SNS-Themen mit einem AWS Key Management Service (AWS KMS) vom Kunden verwalteten Schlüssel verschlüsselt sind, müssen Sie dem Amazon-S3-Serviceprinzipal die Berechtigung erteilen, mit den verschlüsselten Themen oder der Warteschlange zu arbeiten. Um dem Amazon-S3-Service-Prinzipal die Berechtigung zu erteilen, fügen Sie der Schlüsselrichtlinie für den vom Kunden verwalteten Schlüssel die folgende Anweisung hinzu.

JSON
{ "Version":"2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ] }

Weitere Informationen zu AWS KMS-Schlüssel-Richtlinien finden Sie unter Using key policies in AWS KMS im- AWS Key Management ServiceEntwicklerhandbuch.

Weitere Informationen zur Verwendung der serverseitigen Verschlüsselung mit AWS KMS für Amazon SQS und Amazon SNS finden Sie in den folgenden Themen: