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, SNS Themen auf Amazon veröffentlichen oder das Ereignis an Kinesis-Streams weiterleiten. Um API Aufrufe gegen die Ressourcen zu tätigen, die Sie besitzen, sind die entsprechenden EventBridge Berechtigungen erforderlich. EventBridge Verwendet für Lambda-SNS, Amazon-SQS, Amazon- 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-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 APIReferenzhandbuch zu CloudWatch Protokollen.

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.

SNSAmazon-Berechtigungen

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

Anmerkung

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

Um Berechtigungen hinzuzufügen, die das Veröffentlichen EventBridge von 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 JSONKonvertierer für Zeichenketten, 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 Reference.

SQSAmazon-Berechtigungen

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

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 hat eine leere Richtlinie.

Wenn die SQS Warteschlange bereits eine Richtlinie enthält, 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. Um SQS Warteschlangenattribute aufzulisten. 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 JSONKonvertierer für Zeichenketten, um die vorherige Anweisung in eine Zeichenfolge umzuwandeln. 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 SQSAmazon-Richtlinienbeispiele im Amazon Simple Queue Service Developer Guide.

EventBridge Einzelheiten zu Pipes

EventBridge Pipes unterstützt keine ressourcenbasierten Richtlinien und hat auch keineAPIs, die ressourcenbasierte Richtlinien unterstützen.

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