Utilisation de politiques basées sur les ressources pour Amazon EventBridge - Amazon EventBridge

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de politiques basées sur les ressources pour Amazon EventBridge

Lorsqu'une règle s'exécute EventBridge, toutes les cibles associées à la règle sont invoquées. Les règles peuvent appeler AWS Lambda des fonctions, publier sur SNS des rubriques Amazon ou relayer l'événement vers Kinesis Streams. Pour API passer des appels sur les ressources que vous possédez, vous EventBridge devez disposer des autorisations appropriées. Pour les ressources Lambda, Amazon, SNS Amazon et Amazon CloudWatch LogsSQS, EventBridge utilise des politiques basées sur les ressources. Pour les flux Kinesis, EventBridge utilise des politiques basées sur l'identité.

Vous les utilisez AWS CLI pour ajouter des autorisations à vos cibles. Pour plus d'informations sur l'installation et la configuration du AWS CLI, reportez-vous à la section Getting Set Up with the AWS Command Line Interface dans le guide de AWS Command Line Interface l'utilisateur.

Autorisations Amazon API Gateway

Pour appeler votre point de terminaison Amazon API Gateway à l'aide d'une EventBridge règle, ajoutez l'autorisation suivante à la politique de votre point de terminaison Amazon API Gateway.

{ "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 Autorisations de journalisation

Lorsque CloudWatch Logs est la cible d'une règle, EventBridge crée des flux de CloudWatch journaux et que Logs stocke le texte des événements sous forme d'entrées de journal. Pour permettre EventBridge de créer le flux de journaux et de consigner les événements, CloudWatch les journaux doivent inclure une politique basée sur les ressources qui permet d' EventBridge écrire dans les CloudWatch journaux.

Si vous utilisez le AWS Management Console pour ajouter CloudWatch des journaux comme cible d'une règle, la politique basée sur les ressources est créée automatiquement. Si vous utilisez le AWS CLI pour ajouter la cible et que la politique n'existe pas encore, vous devez la créer.

L'exemple suivant permet EventBridge d'écrire dans tous les groupes de journaux dont le nom commence par/aws/events/. Si vous utilisez une autre politique de dénomination pour ces types de journaux, ajustez l’exemple en conséquence.

{ "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" }

Pour plus d'informations, consultez PutResourcePolicyle guide de API référence CloudWatch des journaux.

AWS Lambda autorisations

Pour appeler votre AWS Lambda fonction à l'aide d'une EventBridge règle, ajoutez l'autorisation suivante à la politique de votre fonction Lambda.

{ "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" }
Pour ajouter les autorisations ci-dessus qui permettent d'invoquer EventBridge des fonctions Lambda à l'aide du AWS CLI
  • A partir d'une invite de commande, entrez la commande suivante.

    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"

Pour plus d'informations sur la définition des autorisations permettant EventBridge d'appeler des fonctions Lambda, consultez la section Utilisation de Lambda avec AddPermissiondes événements planifiés dans le manuel du développeur.AWS Lambda

SNSAutorisations Amazon

EventBridge Pour autoriser la publication sur un SNS sujet Amazon, utilisez les aws sns set-topic-attributes commandes aws sns get-topic-attributes et.

Note

Vous ne pouvez pas utiliser de Condition blocs dans les politiques SNS thématiques d'Amazon pour EventBridge.

Pour ajouter des autorisations permettant EventBridge de publier des SNS sujets
  1. Pour répertorier les attributs d'une SNS rubrique, utilisez la commande suivante.

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

    L'exemple suivant montre le résultat d'un nouveau SNS sujet.

    { "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. Utilisez un convertisseur JSON de chaînes pour convertir l'instruction suivante en chaîne.

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

    Après avoir converti la déclaration en chaîne, elle se présente comme suit.

    {\"Sid\":\"PublishEventsToMyTopic\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sns:Publish\",\"Resource\":\"arn:aws:sns:region:account-id:topic-name\"}
  3. Ajoutez la chaîne que vous avez créée à l’étape précédente à la collection "Statement" à l’intérieur de l’attribut "Policy".

  4. Utilisez la commande aws sns set-topic-attributes pour définir la nouvelle politique.

    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\"}]}"

Pour plus d'informations, consultez l'SetTopicAttributesaction décrite dans le manuel Amazon Simple Notification Service API Reference.

SQSAutorisations Amazon

Pour autoriser une EventBridge règle à invoquer une SQS file d'attente Amazon, utilisez les aws sqs set-queue-attributes commandes aws sqs get-queue-attributes and.

Si la politique de la SQS file d'attente est vide, vous devez d'abord créer une politique, puis y ajouter la déclaration d'autorisations. La politique d'une nouvelle SQS file d'attente est vide.

Si la SQS file d'attente possède déjà une politique, vous devez copier la politique d'origine et la combiner avec une nouvelle instruction pour y ajouter l'instruction d'autorisations.

Pour ajouter des autorisations permettant aux EventBridge règles d'invoquer une SQS file d'attente
  1. Pour répertorier les attributs de SQS file d'attente. A partir d'une invite de commande, entrez la commande suivante.

    aws sqs get-queue-attributes \ --queue-url https://sqs.region.amazonaws.com/account-id/queue-name \ --attribute-names Policy
  2. Ajoutez la déclaration suivante.

    { "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. Utilisez un convertisseur JSON de chaînes pour convertir l'instruction précédente en chaîne. Après avoir converti la politique en chaîne, elle se présente comme suit.

    {\"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. Créez un fichier nommé set-queue-attributes.json avec le contenu suivant.

    { "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. Définissez l’attribut policy en utilisant le fichier set-queue-attributes.json que vous venez de créer en tant qu’entrée, comme dans la commande suivante.

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

Pour plus d'informations, consultez les exemples SQS de politiques Amazon dans le guide du développeur Amazon Simple Queue Service.

EventBridge Spécificités des tuyaux

EventBridge Pipes ne prend pas en charge les politiques basées sur les ressources et n'en possède aucune APIs qui prenne en charge les conditions de politique basées sur les ressources.

Toutefois, si vous configurez l'accès au canal via un point de VPC terminaison d'interface, ce VPC point de terminaison prend en charge les politiques de ressources qui vous permettent de gérer l'accès à EventBridge PipeAPIs. Pour de plus amples informations, veuillez consulter Utilisation d'Amazon EventBridge avec les points de VPC terminaison de l'interface.