Verwendung ressourcenbasierter Richtlinien für Amazon EventBridge - Amazon EventBridge

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung ressourcenbasierter Richtlinien für Amazon EventBridge

Wenn eine Regel ausgeführt wird EventBridge, werden alle mit der Regel verknüpften Ziele aufgerufen. Regeln können AWS Lambda Funktionen aufrufen, in Amazon SNS SNS-Themen veröffentlichen oder das Ereignis an Kinesis-Streams weiterleiten. Um API-Aufrufe für die Ressourcen, die Sie besitzen, durchführen zu können, sind die entsprechenden EventBridge Berechtigungen erforderlich. EventBridge Verwendet für Lambda-, Amazon SNS-, Amazon SQS- und Amazon CloudWatch Logs-Ressourcen ressourcenbasierte Richtlinien. EventBridge Verwendet für Kinesis-Streams identitätsbasierte Richtlinien.

Sie verwenden die AWS CLI , um Ihren Zielen Berechtigungen hinzuzufügen. Informationen zur Installation und Konfiguration von finden Sie unter Getting Setup with the AWS Command Line Interface im AWS Command Line Interface Benutzerhandbuch. AWS CLI

Amazon-API-Gateway-Berechtigungen

Um Ihren Amazon API Gateway Gateway-Endpunkt mithilfe einer EventBridge Regel aufzurufen, fügen Sie der Richtlinie Ihres API Gateway-Endpunkts die folgende Berechtigung hinzu.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "execute-api:Invoke", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:events:region:account-id:rule/rule-name" } }, "Resource": [ "execute-api:/stage/GET/api" ] } ] }

CloudWatch Protokolliert Berechtigungen

Wenn CloudWatch Logs das Ziel einer Regel ist, EventBridge erstellt Log-Streams und CloudWatch Logs speichert den Text der Ereignisse als Protokolleinträge. Damit EventBridge der Protokollstream erstellt und die Ereignisse protokolliert werden können, müssen CloudWatch Logs eine ressourcenbasierte Richtlinie enthalten, die das Schreiben in Logs EventBridge ermöglicht. CloudWatch

Wenn Sie das AWS Management Console zum Hinzufügen von CloudWatch Protokollen als Ziel einer Regel verwenden, wird die ressourcenbasierte Richtlinie automatisch erstellt. Wenn Sie das Ziel mithilfe von AWS CLI hinzufügen und die Richtlinie noch nicht vorhanden ist, müssen Sie sie erstellen.

Das folgende Beispiel EventBridge ermöglicht das Schreiben in alle Protokollgruppen, deren Namen mit beginnen/aws/events/. Wenn Sie bei Protokollen dieser Art eine andere Benennungsrichtlinie verwenden, müssen Sie das Beispiel entsprechend anpassen.

{ "Statement": [ { "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Principal": { "Service": ["events.amazonaws.com", "delivery.logs.amazonaws.com"] }, "Resource": "arn:aws:logs:region:account:log-group:/aws/events/*:*", "Sid": "TrustEventsToStoreLogEvent" } ], "Version": "2012-10-17" }

Weitere Informationen finden Sie PutResourcePolicyim Referenzhandbuch zur CloudWatch Logs-API.

AWS Lambda Berechtigungen

Um Ihre AWS Lambda Funktion mithilfe einer EventBridge Regel aufzurufen, fügen Sie der Richtlinie Ihrer Lambda-Funktion die folgende Berechtigung hinzu.

{ "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:region:account-id:function:function-name", "Principal": { "Service": "events.amazonaws.com" }, "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:events:region:account-id:rule/rule-name" } }, "Sid": "InvokeLambdaFunction" }
Um die oben genannten Berechtigungen hinzuzufügen, die das EventBridge Aufrufen von Lambda-Funktionen mit dem AWS CLI
  • Geben Sie in der Eingabeaufforderung den folgenden Befehl ein.

    aws lambda add-permission --statement-id "InvokeLambdaFunction" \ --action "lambda:InvokeFunction" \ --principal "events.amazonaws.com" \ --function-name "arn:aws:lambda:region:account-id:function:function-name" \ --source-arn "arn:aws:events:region:account-id:rule/rule-name"

Weitere Informationen zum Festlegen von Berechtigungen, mit denen EventBridge Lambda-Funktionen aufgerufen werden können, finden Sie unter AddPermissionund Using Lambda with Scheduled Events im AWS Lambda Developer Guide.

Amazon-SNS-Berechtigungen

Um die Veröffentlichung EventBridge in einem Amazon SNS SNS-Thema zu ermöglichen, verwenden Sie die aws sns set-topic-attributes Befehle aws sns get-topic-attributes und.

Anmerkung

Sie können Condition Blöcke in Amazon SNS SNS-Themenrichtlinien nicht für EventBridge verwenden.

Um Berechtigungen hinzuzufügen, die das Veröffentlichen von EventBridge SNS-Themen ermöglichen
  1. Verwenden Sie den folgenden Befehl, um die Attribute eines SNS-Themas aufzulisten.

    aws sns get-topic-attributes --topic-arn "arn:aws:sns:region:account-id:topic-name"

    Das folgende Beispiel zeigt das Ergebnis eines neuen SNS-Themas.

    { "Attributes": { "SubscriptionsConfirmed": "0", "DisplayName": "", "SubscriptionsDeleted": "0", "EffectiveDeliveryPolicy": "{\"http\":{\"defaultHealthyRetryPolicy\":{\"minDelayTarget\":20,\"maxDelayTarget\":20,\"numRetries\":3,\"numMaxDelayRetries\":0,\"numNoDelayRetries\":0,\"numMinDelayRetries\":0,\"backoffFunction\":\"linear\"},\"disableSubscriptionOverrides\":false}}", "Owner": "account-id", "Policy": "{\"Version\":\"2012-10-17\",\"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:GetTopicAttributes\",\"SNS:SetTopicAttributes\",\"SNS:AddPermission\",\"SNS:RemovePermission\",\"SNS:DeleteTopic\",\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:Publish\"],\"Resource\":\"arn:aws:sns:region:account-id:topic-name\",\"Condition\":{\"StringEquals\":{\"AWS:SourceOwner\":\"account-id\"}}}]}", "TopicArn": "arn:aws:sns:region:account-id:topic-name", "SubscriptionsPending": "0" } }
  2. Verwenden Sie einen JSON-in-Zeichenfolgen-Konverter, um die folgende Anweisung in eine Zeichenfolge zu konvertieren.

    { "Sid": "PublishEventsToMyTopic", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:region:account-id:topic-name" }

    Nachdem Sie die Anweisung in eine Zeichenfolge konvertiert haben, sieht sie wie im folgenden Beispiel aus.

    {\"Sid\":\"PublishEventsToMyTopic\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sns:Publish\",\"Resource\":\"arn:aws:sns:region:account-id:topic-name\"}
  3. Fügen Sie die Zeichenfolge, die Sie im vorherigen Schritt erstellt haben, der "Statement"-Sammlung innerhalb des "Policy"-Attributs hinzu.

  4. Verwenden Sie den Befehl aws sns set-topic-attributes, um die neue Richtlinie einzurichten.

    aws sns set-topic-attributes --topic-arn "arn:aws:sns:region:account-id:topic-name" \ --attribute-name Policy \ --attribute-value "{\"Version\":\"2012-10-17\",\"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:GetTopicAttributes\",\"SNS:SetTopicAttributes\",\"SNS:AddPermission\",\"SNS:RemovePermission\",\"SNS:DeleteTopic\",\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:Publish\"],\"Resource\":\"arn:aws:sns:region:account-id:topic-name\",\"Condition\":{\"StringEquals\":{\"AWS:SourceOwner\":\"account-id\"}}}, {\"Sid\":\"PublishEventsToMyTopic\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sns:Publish\",\"Resource\":\"arn:aws:sns:region:account-id:topic-name\"}]}"

Weitere Informationen finden Sie unter der SetTopicAttributesAktion in der Amazon Simple Notification Service API-Referenz.

Amazon-SQS-Berechtigungen

Verwenden Sie die Befehle und, damit eine EventBridge Regel eine Amazon SQS SQS-Warteschlange aufrufen kann. aws sqs get-queue-attributes aws sqs set-queue-attributes

Wenn die Richtlinie für die SQS-Warteschlange leer ist, müssen Sie zuerst eine Richtlinie erstellen und dann können Sie ihr die Berechtigungsanweisung hinzufügen. Eine neue SQS-Warteschlange verfügt über eine leere Richtlinie.

Wenn die SQS-Warteschlange bereits über eine Richtlinie verfügt, müssen Sie die ursprüngliche Richtlinie kopieren und sie mit einer neuen Anweisung kombinieren, um ihr die Berechtigungsanweisung hinzuzufügen.

Um Berechtigungen hinzuzufügen, die es EventBridge Regeln ermöglichen, eine SQS-Warteschlange aufzurufen
  1. So listen Sie SQS-Warteschlangenattribute auf. Geben Sie in der Eingabeaufforderung den folgenden Befehl ein.

    aws sqs get-queue-attributes \ --queue-url https://sqs.region.amazonaws.com/account-id/queue-name \ --attribute-names Policy
  2. Fügen Sie die folgende Anweisung hinzu.

    { "Sid": "AWSEvents_custom-eventbus-ack-sqs-rule_dlq_sqs-rule-target", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:region:account-id:queue-name", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:events:region:account-id:rule/bus-name/rule-name" } } }
  3. Verwenden Sie einen JSON-in-Zeichenfolgen-Konverter, um die vorherige Anweisung in eine Zeichenfolge zu konvertieren. Nachdem Sie die Richtlinie in eine Zeichenfolge konvertiert haben, sieht sie wie folgt aus.

    {\"Sid\": \"EventsToMyQueue\", \"Effect\": \"Allow\", \"Principal\": {\"Service\": \"events.amazonaws.com\"}, \"Action\": \"sqs:SendMessage\", \"Resource\": \"arn:aws:sqs:region:account-id:queue-name\", \"Condition\": {\"ArnEquals\": {\"aws:SourceArn\": \"arn:aws:events:region:account-id:rule/rule-name\"}}
  4. Erstellen Sie eine Datei mit dem Namen set-queue-attributes.json und folgendem Inhalt.

    { "Policy": "{\"Version\":\"2012-10-17\",\"Id\":\"arn:aws:sqs:region:account-id:queue-name/SQSDefaultPolicy\",\"Statement\":[{\"Sid\": \"EventsToMyQueue\", \"Effect\": \"Allow\", \"Principal\": {\"Service\": \"events.amazonaws.com\"}, \"Action\": \"sqs:SendMessage\", \"Resource\": \"arn:aws:sqs:region:account-id:queue-name\", \"Condition\": {\"ArnEquals\": {\"aws:SourceArn\": \"arn:aws:events:region:account-id:rule/rule-name\"}}}]}" }
  5. Legen Sie das Richtlinienattribut fest, indem Sie die soeben erstellte set-queue-attributes.json-Datei als Eingabe wie im folgenden Befehl gezeigt verwenden.

    aws sqs set-queue-attributes \ --queue-url https://sqs.region.amazonaws.com/account-id/queue-name \ --attributes file://set-queue-attributes.json

Weitere Informationen finden Sie unter Beispiele für Amazon-SQS-Richtlinien im Entwicklerhandbuch für Amazon Simple Queue Service.

EventBridge Einzelheiten zu Pipes

EventBridge Pipes unterstützt keine ressourcenbasierten Richtlinien und hat keine APIs, die ressourcenbasierte Richtlinienbedingungen unterstützen.

Wenn Sie den Pipe-Zugriff jedoch über einen Schnittstellen-VPC-Endpunkt konfigurieren, unterstützt dieser VPC-Endpunkt Ressourcenrichtlinien, mit denen Sie den Zugriff auf EventBridge Pipe-APIs verwalten können. Weitere Informationen finden Sie unter Amazon EventBridge mit Interface VPC-Endpunkten verwenden