

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
<a name="eb-use-resource-based"></a>

Lorsqu'une [règle](eb-rules.md) s'exécute EventBridge, toutes les [cibles](eb-targets.md) associées à la règle sont invoquées. Les règles peuvent appeler AWS Lambda des fonctions, publier sur des rubriques Amazon SNS ou relayer l'événement vers Kinesis Streams. Pour effectuer des appels d'API sur les ressources que vous possédez, vous EventBridge devez disposer des autorisations appropriées. Pour les ressources Lambda, Amazon SNS, Amazon SQS et CloudWatch Amazon Logs, utilise des politiques basées sur les ressources. EventBridge Pour les flux Kinesis, EventBridge utilise des politiques basées sur l'[identité](eb-use-identity-based.md).

**Important**  
Pour les cibles qui utilisent des politiques basées sur les ressources (Lambda, Amazon SNS, Amazon SQS et CloudWatch Amazon Logs), ne spécifiez pas un dans la configuration cible. `RoleArn` Lorsque vous spécifiez un `RoleArn` pour ces types de cibles, la diffusion des événements peut échouer, en particulier pour les cibles AWS KMS Amazon SQS et Amazon SNS avec le chiffrement activé. Utilisez des politiques basées sur les ressources uniquement pour ces cibles.

Vous les utilisez AWS CLI pour ajouter des autorisations à vos cibles. Pour plus d'informations sur l'installation et la configuration du AWS CLI, voir [Getting Set Up with the AWS Command Line Interface dans le](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) *guide de AWS Command Line Interface l'utilisateur*.

**Topics**
+ [Autorisations Amazon API Gateway](#eb-api-gateway-permissions)
+ [CloudWatch Autorisations de journalisation](#eb-cloudwatchlogs-permissions)
+ [AWS Lambda autorisations](#eb-lambda-permissions)
+ [Autorisations Amazon SNS](#eb-sns-permissions)
+ [Autorisations Amazon SQS](#eb-sqs-permissions)
+ [EventBridge Spécificités des tuyaux](#eb-pipes-identity-diff)

## Autorisations Amazon API Gateway
<a name="eb-api-gateway-permissions"></a>

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 API Gateway.

------
#### [ 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 Autorisations de journalisation
<a name="eb-cloudwatchlogs-permissions"></a>

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 de politique basée sur les ressources suivant permet EventBridge d'écrire dans tous les groupes de journaux dont le nom commence par. `/aws/events/` Si vous utilisez une politique de dénomination différente pour ces types de journaux, ajustez l'ARN de la ressource en conséquence.

```
{
  "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/*:*"
}
```

**Pour créer une politique de ressources pour les CloudWatch journaux à l'aide du AWS CLI**
+ A partir d'une invite de commande, entrez la commande suivante.

  ```
  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/*:*"}]}'
  ```

Pour plus d'informations, consultez le *guide [PutResourcePolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html)de référence de l'API CloudWatch Logs*.

## AWS Lambda autorisations
<a name="eb-lambda-permissions"></a>

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 EventBridge permettant d'invoquer des fonctions Lambda, consultez la section Utilisation de [Lambda avec [AddPermission](https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html)des événements planifiés](https://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html) dans le manuel du développeur.AWS Lambda *

## Autorisations Amazon SNS
<a name="eb-sns-permissions"></a>

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

**Note**  
Vous ne pouvez pas utiliser de `Condition` blocs dans les politiques des rubriques Amazon SNS pour. EventBridge

**Pour ajouter des autorisations permettant de EventBridge publier des sujets SNS**

1. Pour afficher la liste des attributs d’une rubrique SNS, 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’une nouvelle rubrique SNS.

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

1. Utilisez un [convertisseur de JSON en chaîne](https://tools.knowledgewalls.com/jsontostring) pour convertir la déclaration 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}}\"}
   ```

1. Ajoutez la chaîne que vous avez créée à l’étape précédente à la collection `"Statement"` à l’intérieur de l’attribut `"Policy"`.

1. 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:SourceAccount\":\"{{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'[SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)action dans le manuel *Amazon Simple Notification Service API Reference*.

## Autorisations Amazon SQS
<a name="eb-sqs-permissions"></a>

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

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

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

**Pour ajouter des autorisations permettant aux EventBridge règles d'invoquer une file d'attente SQS**

1. Pour afficher la liste des attributs d’une file d’attente SQS. 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
   ```

1. 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}}"
           }
         }
       }
   ```

1. Utilisez un [convertisseur de JSON en chaîne](https://tools.knowledgewalls.com/jsontostring) pour convertir la déclaration 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}}\"}}
   ```

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

1. 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 [Exemples de politiques Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html) dans le *Guide du développeur Amazon Simple Queue Service*.

## EventBridge Spécificités des tuyaux
<a name="eb-pipes-identity-diff"></a>

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 terminaison VPC d'interface, ce point de terminaison VPC prend en charge les politiques de ressources qui vous permettent de gérer l'accès à Pipe. EventBridge APIs Pour de plus amples informations, veuillez consulter [Utilisation d'Amazon EventBridge avec les points de terminaison VPC d'interface](eb-related-service-vpc.md).