View a markdown version of this page

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-Themen veröffentlichen oder das Ereignis an Kinesis-Streams weiterleiten. Um API-Aufrufe für die Ressourcen zu tätigen, die Ihnen gehören, sind die entsprechenden EventBridge Berechtigungen erforderlich. EventBridge Verwendet für Amazon CloudWatch Logs-Ressourcen ressourcenbasierte Richtlinien. Für Lambda-, Amazon SNS- und Amazon SQS-Ressourcen EventBridge kann entweder eine IAM-Ausführungsrolle oder eine ressourcenbasierte Richtlinie verwendet werden. Verwendet für Kinesis-Streams identitätsbasierte Richtlinien. EventBridge Verwendung identitätsbasierter Richtlinien (IAM-Richtlinien) für Amazon EventBridge

Wichtig

Geben Sie für Amazon CloudWatch Logs-Ziele RoleArn in der Zielkonfiguration keine an. Für Lambda-, Amazon SNS- und Amazon SQS-Ziele können Sie entweder eine IAM-Ausführungsrolle oder eine ressourcenbasierte Richtlinie verwenden. Wenn Sie ein Ziel RoleArn für Lambda, Amazon SNS oder Amazon SQS angeben, stellen Sie sicher, dass die Rolle über die erforderlichen Berechtigungen verfügt (z. B.,, oder). lambda:InvokeFunction sns:Publish sqs:SendMessage Wenn keine Ausführungsrolle konfiguriert ist, EventBridge verwendet ressourcenbasierte Richtlinien für die Zielressource.

Sie verwenden den AWS CLI , um Ihren Zielen Berechtigungen hinzuzufügen. Informationen zur Installation und Konfiguration von finden Sie AWS Command Line Interface im AWS Command Line Interface Benutzerhandbuch unter Getting Set Up with the. 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.

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

CloudWatch Protokolliert Berechtigungen

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

Wenn Sie die verwenden AWS-Managementkonsole , um CloudWatch Protokolle als Ziel einer Regel hinzuzufügen, wird die ressourcenbasierte Richtlinie automatisch erstellt. Wenn Sie die verwenden, AWS CLI um das Ziel hinzuzufügen, und die Richtlinie noch nicht existiert, müssen Sie sie erstellen.

Das folgende Beispiel für eine ressourcenbasierte Richtlinie ermöglicht EventBridge das Schreiben in alle Protokollgruppen, deren Namen mit beginnen. /aws/events/ Wenn Sie für diese Protokolltypen eine andere Benennungsrichtlinie verwenden, passen Sie den Ressourcen-ARN entsprechend an.

{ "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com", "delivery.logs.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:region:account-id:log-group:/aws/events/*:*" }
Um eine Ressourcenrichtlinie für CloudWatch Protokolle zu erstellen, verwenden Sie die AWS CLI
  • Geben Sie in der Eingabeaufforderung den folgenden Befehl ein.

    aws logs put-resource-policy --policy-name EventBridgeToCWLogsPolicy \ --policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":["events.amazonaws.com","delivery.logs.amazonaws.com"]},"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Resource":"arn:aws:logs:region:account-id:log-group:/aws/events/*:*"}]}'

Weitere Informationen finden Sie PutResourcePolicy im 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.

Anmerkung

Alternativ können Sie eine IAM-Ausführungsrolle auf dem Ziel mit entsprechender Genehmigung konfigurieren. lambda:InvokeFunction Resource-based Richtlinien sind nur erforderlich, wenn auf dem Ziel keine Ausführungsrolle konfiguriert ist.

{ "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 mithilfe von 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, die das Aufrufen von Lambda-Funktionen ermöglichen EventBridge , finden Sie im Entwicklerhandbuch unter AddPermission und Verwenden von Lambda mit geplanten Ereignissen. AWS Lambda

Amazon-SNS-Berechtigungen

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

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:SourceAccount\":\"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:SourceAccount\":\"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 SetTopicAttributes Aktion in der Amazon Simple Notification Service API-Referenz.

Amazon-SQS-Berechtigungen

Um einer EventBridge Regel das Aufrufen einer Amazon SQS-Warteschlange zu ermöglichen, verwenden Sie die Befehle aws sqs get-queue-attributes undaws 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 jedoch den Pipe-Zugriff über einen Schnittstellen-VPC-Endpunkt konfigurieren, unterstützt dieser VPC-Endpunkt Ressourcenrichtlinien, mit denen Sie den Zugriff auf Pipe-APIs verwalten können. EventBridge Weitere Informationen finden Sie unter Amazon EventBridge mit Interface VPC-Endpunkten verwenden.