

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.

# Exemples de langage de la stratégie d'accès Amazon SQS personnalisé
<a name="sqs-creating-custom-policies-access-policy-examples"></a>

Voici des exemples classiques de stratégies d'accès Amazon SQS.

## Exemple 1 : Accorder une autorisation à un compte
<a name="one-account"></a>

L'exemple de stratégie Amazon SQS suivant accorde au compte Compte AWS 111122223333 l'autorisation d'envoyer et de recevoir la file d'attente `queue2` détenue par le compte Compte AWS 444455556666.

------
#### [ JSON ]

****  

```
{   
   "Version":"2012-10-17",		 	 	 
   "Id": "UseCase1",
   "Statement" : [{
      "Sid": "1", 
      "Effect": "Allow",           
      "Principal": {
         "AWS": [
            "111122223333"
         ]
      },
      "Action": [
         "sqs:SendMessage",
         "sqs:ReceiveMessage"
      ], 
      "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2"  
   }]
}
```

------

## Exemple 2 : Accorder une autorisation à un ou plusieurs comptes
<a name="two-accounts"></a>

L'exemple suivant de politique Amazon SQS donne un ou plusieurs Comptes AWS accès aux files d'attente détenues par votre compte pendant une période spécifique. Il est nécessaire d'écrire cette stratégie et de la télécharger dans Amazon SQS à l'aide de l'action [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html), car l'action [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html) ne permet pas de spécifier une restriction de durée lors de l'octroi de l'accès à une file d'attente.

------
#### [ JSON ]

****  

```
{   
   "Version":"2012-10-17",		 	 	 
   "Id": "UseCase2",
   "Statement" : [{
      "Sid": "1", 
      "Effect": "Allow",           
      "Principal": {
         "AWS": [
            "111122223333",
            "444455556666"
         ]
      },
      "Action": [
         "sqs:SendMessage",
         "sqs:ReceiveMessage"
      ], 
      "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2",
      "Condition": {
         "DateLessThan": {
            "AWS:CurrentTime": "2009-06-30T12:00Z"
         }
      }   
   }]
}
```

------

## Exemple 3 : Accorder une autorisation à des demandes provenant d'instances Amazon EC2
<a name="requests-from-ec2"></a>

L'exemple de stratégie Amazon SQS suivant donne accès aux demandes provenant d'instances Amazon EC2. Cet exemple repose sur l'exemple « [Exemple 2 : Accorder une autorisation à un ou plusieurs comptes](#two-accounts) » : il restreint l'accès aux demandes envoyées avant le 30 juin 2009 à midi (UTC), ainsi qu'à la plage d'adresses IP `203.0.113.0/24`. Il est nécessaire d'écrire cette stratégie et de la télécharger dans Amazon SQS à l'aide de l'action [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html), car l'action [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html) ne permet pas de spécifier une restriction d'adresse IP lors de l'octroi de l'accès à une file d'attente.

------
#### [ JSON ]

****  

```
{   
   "Version":"2012-10-17",		 	 	 
   "Id": "UseCase3",
   "Statement" : [{
      "Sid": "1", 
      "Effect": "Allow",           
      "Principal": {
         "AWS": [
            "111122223333"
         ]
      },
      "Action": [
         "sqs:SendMessage",
         "sqs:ReceiveMessage"
      ], 
      "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2",
      "Condition": {
         "DateLessThan": {
            "AWS:CurrentTime": "2009-06-30T12:00Z"
         },
         "IpAddress": {
            "AWS:SourceIp": "203.0.113.0/24"
         }
      }   
   }]
}
```

------

## Exemple 4 : Refus d'accès à un compte spécifique
<a name="deny-account"></a>

L'exemple suivant de politique Amazon SQS refuse un Compte AWS accès spécifique à votre file d'attente. Cet exemple s'appuie sur l'exemple « [Exemple 1 : Accorder une autorisation à un compte](#one-account) » : il refuse l'accès à ce qui est spécifié Compte AWS. Il est nécessaire d'écrire cette stratégie et de la télécharger dans Amazon SQS à l'aide de l'action [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html), car l'action [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html) ne permet pas de refuser l'accès à une file d'attente (elle permet uniquement d'accorder l'accès à une file d'attente). 

------
#### [ JSON ]

****  

```
{ 
   "Version":"2012-10-17",		 	 	 
   "Id": "UseCase4",
   "Statement" : [{
      "Sid": "1", 
      "Effect": "Deny",           
      "Principal": {
         "AWS": [
            "111122223333"
         ]
      },
      "Action": [
         "sqs:SendMessage",
         "sqs:ReceiveMessage"
      ], 
      "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2"   
   }]
}
```

------

## Exemple 5 : Refuser l'accès s'il n'émane pas d'un point de terminaison de VPC
<a name="deny-not-from-vpc"></a>

L'exemple suivant de stratégie Amazon SQS restreint l'accès à `queue1` : 111122223333 peut effectuer les actions [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) et [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) uniquement à partir de l'ID de point de terminaison d'un VPC `vpce-1a2b3c4d` (spécifié à l'aide de la condition `aws:sourceVpce`). Pour de plus amples informations, veuillez consulter [Points de terminaison Amazon Virtual Private Cloud pour Amazon SQS](sqs-internetwork-traffic-privacy.md#sqs-vpc-endpoints).

**Note**  
La condition `aws:sourceVpce` ne requiert pas d'ARN pour la ressource du point de terminaison de VPC, uniquement l'ID du point de terminaison de VPC.
Vous pouvez modifier l'exemple suivant pour restreindre toutes les actions au point de terminaison d'un VPC spécifique en refusant toutes les actions Amazon SQS (`sqs:*`) dans la deuxième instruction. Toutefois, une telle déclaration de stratégie stipulerait que toutes les actions (y compris les actions administratives requises pour modifier les autorisations de la file d'attente) doivent être effectuées via le point de terminaison de VPC spécifique défini dans la stratégie, ce qui pourrait empêcher l'utilisateur de modifier les autorisations de la file d'attente par la suite.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id": "UseCase5",
   "Statement": [{
      "Sid": "1",
      "Effect": "Allow",
      "Principal": {
         "AWS": [
            "111122223333"
         ]
      },
      "Action": [
         "sqs:SendMessage",
         "sqs:ReceiveMessage"
      ],
         "Resource": "arn:aws:sqs:us-east-2:111122223333:queue1"
      },
      {
         "Sid": "2",
         "Effect": "Deny",
         "Principal": "*",
         "Action": [
            "sqs:SendMessage",
            "sqs:ReceiveMessage"
         ],
         "Resource": "arn:aws:sqs:us-east-2:111122223333:queue1",
         "Condition": {
            "StringNotEquals": {
               "aws:sourceVpce": "vpce-1a2b3c4d"
            }
         }
      }
   ]
}
```

------

# Utilisation d'informations d'identification de sécurité temporaires avec Amazon SQS
<a name="sqs-using-temporary-security-credentials"></a>

En plus de créer des utilisateurs dotés de leurs propres identifiants de sécurité, IAM vous permet également d'octroyer des identifiants de sécurité temporaires à n'importe quel utilisateur, lui permettant ainsi d'accéder à vos AWS services et ressources. Vous pouvez gérer les utilisateurs qui possèdent des Comptes AWS. Vous pouvez également gérer les utilisateurs de votre système qui n'en ont pas Comptes AWS (utilisateurs fédérés). En outre, les applications que vous créez pour accéder à vos AWS ressources peuvent également être considérées comme des « utilisateurs ».

Vous pouvez utiliser ces informations d'identification de sécurité temporaires pour effectuer des demandes à Amazon SQS. Les bibliothèques d'API calculent la valeur de signature nécessaire en utilisant ces informations d'identification pour authentifier votre demande. Si vous envoyez des demandes en utilisant des informations d'identification expirées, Amazon SQS les rejette.

**Note**  
Vous ne pouvez pas définir une stratégie en fonction d'informations d'identification temporaires.

## Conditions préalables
<a name="temporary-security-credentials-prerequisites"></a>

1. Utilisez IAM pour créer des informations d'identification de sécurité temporaires :
   + Jeton de sécurité
   + ID de clé d'accès
   + Clé d'accès secrète

1. Préparez votre chaîne pour signer avec l'ID de clé d'accès temporaire et le jeton de sécurité.

1. Utilisez la clé d'accès secrète temporaire au lieu de votre propre clé d'accès secrète pour signer votre demande d'API de requête.

**Note**  
Lorsque vous envoyez la demande d'API de requête signée, utilisez l'ID de clé d'accès temporaire au lieu de votre propre ID de clé d'accès, et incluez le jeton de sécurité. Pour plus d'informations sur la prise en charge par IAM des informations d'identification de sécurité temporaires, consultez la section [Accorder un accès temporaire à vos AWS ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/TokenBasedAuth.html) dans le guide de l'*utilisateur IAM*. 

## Pour appeler une action d'API de requête Amazon SQS à l'aide d'informations d'identification de sécurité temporaires
<a name="temporary-security-credentials-query-api"></a>

1. Demandez un jeton de sécurité temporaire en utilisant Gestion des identités et des accès AWS. Pour plus d'informations, consultez [Création d'informations d'identification de sécurité temporaires pour activer l'accès pour les utilisateurs IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/CreatingSessionTokens.html) dans le *Guide de l'utilisateur IAM*.

   IAM renvoie un jeton de sécurité, un ID de clé d'accès et une clé d'accès secrète.

1. Préparez votre requête en utilisant l'ID de clé d'accès temporaire à la place de votre propre ID de clé d'accès, et incluez le jeton de sécurité. Signez votre demande à l'aide de la clé d'accès secrète temporaire au lieu de la vôtre.

1. Soumettez votre chaîne de requête signée avec l'ID de clé d'accès temporaire et le jeton de sécurité.

   L'exemple suivant montre comment utiliser des informations d'identification de sécurité temporaires pour authentifier une demande Amazon SQS. La structure de *`AUTHPARAMS`* dépend de la signature de la demande d'API. Pour plus d'informations, consultez [Signing AWS API Requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) dans le *manuel Amazon Web Services General Reference*.

   ```
   https://sqs.us-east-2.amazonaws.com/
   ?Action=CreateQueue
   &DefaultVisibilityTimeout=40
   &QueueName=MyQueue
   &Attribute.1.Name=VisibilityTimeout
   &Attribute.1.Value=40
   &Expires=2020-12-18T22%3A52%3A43PST
   &SecurityToken=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   &AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE
   &Version=2012-11-05
   &AUTHPARAMS
   ```

   L'exemple suivant utilise des informations d'identification de sécurité temporaires pour envoyer deux messages à l'aide de l'action `SendMessageBatch`.

   ```
   https://sqs.us-east-2.amazonaws.com/
   ?Action=SendMessageBatch
   &SendMessageBatchRequestEntry.1.Id=test_msg_001
   &SendMessageBatchRequestEntry.1.MessageBody=test%20message%20body%201
   &SendMessageBatchRequestEntry.2.Id=test_msg_002
   &SendMessageBatchRequestEntry.2.MessageBody=test%20message%20body%202
   &SendMessageBatchRequestEntry.2.DelaySeconds=60
   &Expires=2020-12-18T22%3A52%3A43PST
   &SecurityToken=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
   &AWSAccessKeyId=AKIAI44QH8DHBEXAMPLE
   &Version=2012-11-05
   &AUTHPARAMS
   ```

# Gestion de l'accès pour les files d'attente Amazon SQS chiffrées avec des politiques de moindre privilège
<a name="sqs-least-privilege-policy"></a>

[Vous pouvez utiliser Amazon SQS pour échanger des données sensibles entre les applications à l'aide du chiffrement côté serveur (SSE) intégré àAWS Key Management Service (KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html). Grâce à l'intégration d'Amazon SQS AWS KMS, vous pouvez gérer de manière centralisée les clés qui protègent Amazon SQS, ainsi que les clés qui protègent vos autres ressources. AWS 

Plusieurs AWS services peuvent agir comme des sources d'événements qui envoient des événements à Amazon SQS. Pour permettre à une source d'événements d'accéder à la file d'attente cryptée Amazon SQS, vous devez configurer la file d'attente avec une clé gérée par le [client](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS . Utilisez ensuite la politique clé pour autoriser le service à utiliser les méthodes d' AWS KMS API requises. Le service requiert également des autorisations pour authentifier l'accès et permettre à la file d'attente d'envoyer des événements. Pour cela, vous pouvez utiliser une stratégie Amazon SQS, qui est basée sur les ressources que vous pouvez utiliser pour contrôler l'accès à la file d'attente Amazon SQS et à ses données.

Les sections suivantes fournissent des informations sur la manière de contrôler l'accès à votre file d'attente Amazon SQS chiffrée par le biais de la politique Amazon SQS et AWS KMS de la politique clé. Les stratégies décrites dans ce guide vous aideront à respecter le principe de [moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).

Ce guide décrit également comment les stratégies basées sur les ressources résolvent le [problème de député confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) en utilisant les clés contextuelles de condition IAM globales [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn), [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) et [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid).

**Topics**
+ [

## Présentation de
](#sqs-least-privilege-overview)
+ [

## Stratégie de clé respectant le principe du moindre privilège pour Amazon SQS
](#sqs-least-privilege-use-case)
+ [

## Instructions de stratégie Amazon SQS relatives à la file d'attente de lettres mortes
](#sqs-policy-dlq)
+ [

## Prévention des problèmes de député confus entre services
](#sqs-confused-deputy-prevention)
+ [

## Utiliser IAM Access Analyzer pour examiner l'accès intercompte
](#sqs-cross-account-findings)

## Présentation de
<a name="sqs-least-privilege-overview"></a>

Dans cette rubrique, nous allons vous présenter un cas d'utilisation courant pour illustrer comment créer la stratégie de clé et la stratégie de file d'attente Amazon SQS. Ce cas d'utilisation est représenté dans l'image suivante.

![\[Publication de messages Amazon SNS sur Amazon SQS.\]](http://docs.aws.amazon.com/fr_fr/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-least-privilege.png)


Dans cet exemple, le producteur du message est une rubrique [Amazon Simple Notification Service (SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) configurée pour diffuser en éventail les messages vers votre file d'attente Amazon SQS chiffrée. Le consommateur de messages est un service informatique, tel qu'une fonction [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html), une instance [Amazon Elastic Compute Cloud (EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) ou un conteneur [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html). Votre file d'attente Amazon SQS est ensuite configurée pour envoyer les messages en échec à une [file d'attente de lettres mortes (DLQ)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html). Cela est utile pour le débogage de votre application ou de votre système de messagerie, car DLQs cela vous permet d'isoler les messages non consommés afin de déterminer pourquoi leur traitement a échoué. Dans la solution définie dans cette rubrique, un service de calcul tel qu'une fonction Lambda est utilisé pour traiter les messages stockés dans la file d'attente Amazon SQS. Si le destinataire du message se trouve dans un cloud privé virtuel (VPC), l'instruction de la stratégie [`DenyReceivingIfNotThroughVPCE`](#sqs-restrict-message-to-endpoint) incluse dans ce guide vous permet de limiter la réception des messages à ce VPC spécifique.

**Note**  
Ce guide contient uniquement les autorisations IAM requises sous forme d'instructions de stratégie. Pour élaborer la politique, vous devez ajouter les instructions à votre politique Amazon SQS ou à votre politique AWS KMS clé. Ce guide ne fournit pas d'instructions sur la façon de créer la file d'attente Amazon SQS ou la AWS KMS clé. Pour savoir comment créer ces ressources, consultez les sections [Création d'une file d'attente Amazon SQS](creating-sqs-standard-queues.md#step-create-standard-queue) et [Création de clés](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html).   
La stratégie Amazon SQS définie dans ce guide ne permet pas de rediriger les messages directement vers la même file d'attente Amazon SQS ou vers une autre. 

## Stratégie de clé respectant le principe du moindre privilège pour Amazon SQS
<a name="sqs-least-privilege-use-case"></a>

Dans cette section, nous décrivons les autorisations de moindre privilège requises AWS KMS pour la clé gérée par le client que vous utilisez pour chiffrer votre file d'attente Amazon SQS. Avec ces autorisations, vous pouvez limiter l'accès aux seules entités prévues en implémentant le moindre privilège. La stratégie de clé doit comprendre les instructions de stratégie suivantes, que nous décrivons en détail ci-dessous :
+ [Accorder des autorisations d'administrateur à la AWS KMS clé](#sqs-use-case-kms-admin-permissions)
+ [Accorde l'accès en lecture seule aux métadonnées de clés](#sqs-use-case-read-only-permissions)
+ [Accorder des autorisations KMS Amazon SNS à Amazon SNS pour la publication de messages dans la file d'attente](#sqs-use-case-publish-messages-permissions)
+ [Permettre aux consommateurs de déchiffrer les messages de la file d'attente](#sqs-use-case-decrypt-messages-permissions)

### Accorder des autorisations d'administrateur à la AWS KMS clé
<a name="sqs-use-case-kms-admin-permissions"></a>

Pour créer une AWS KMS clé, vous devez fournir des autorisations d' AWS KMS administrateur au rôle IAM que vous utilisez pour déployer la AWS KMS clé. Ces autorisations d'administrateur sont définies dans l'instruction de stratégie `AllowKeyAdminPermissions` suivante. Lorsque vous ajoutez cette déclaration à votre politique AWS KMS clé, assurez-vous de la *<admin-role ARN>* remplacer par le nom de ressource Amazon (ARN) du rôle IAM utilisé pour déployer la AWS KMS clé, gérer la AWS KMS clé, ou les deux. Il peut s'agir du rôle IAM de votre pipeline de déploiement ou du [rôle d'administrateur de votre organisation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_access.html) dans [AWS Organizations](https://aws.amazon.com/organizations/).

```
{
  "Sid": "AllowKeyAdminPermissions",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "<admin-role ARN>"
    ]
  },
  "Action": [
    "kms:Create*",
    "kms:Describe*",
    "kms:Enable*",
    "kms:List*",
    "kms:Put*",
    "kms:Update*",
    "kms:Revoke*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:TagResource",
    "kms:UntagResource",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "*"
}
```

**Note**  
Dans une politique AWS KMS clé, la valeur de l'`Resource`élément doit être`*`, ce qui signifie « cette AWS KMS clé ». L'astérisque (`*`) identifie la AWS KMS clé à laquelle la politique clé est attachée.

### Accorde l'accès en lecture seule aux métadonnées de clés
<a name="sqs-use-case-read-only-permissions"></a>

Pour accorder à d'autres rôles IAM un accès en lecture seule à vos métadonnées de clés, ajoutez l'instruction `AllowReadAccessToKeyMetaData` à votre stratégie de clé. Par exemple, l'instruction suivante vous permet de répertorier toutes les AWS KMS clés de votre compte à des fins d'audit. Cette instruction accorde à l'utilisateur AWS root un accès en lecture seule aux métadonnées clés. Par conséquent, tout principal IAM du compte peut avoir accès aux métadonnées de clés lorsque ses stratégies basées sur l'identité disposent des autorisations répertoriées dans l'instruction suivante : `kms:Describe*`, `kms:Get*` et `kms:List*`. Assurez-vous de les remplacer *<account-ID>* par vos propres informations. 

```
{
  "Sid": "AllowReadAcesssToKeyMetaData",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::<accountID>:root"
    ]
  },
  "Action": [
    "kms:Describe*",
    "kms:Get*",
    "kms:List*"
  ],
  "Resource": "*"
}
```

### Accorder des autorisations KMS Amazon SNS à Amazon SNS pour la publication de messages dans la file d'attente
<a name="sqs-use-case-publish-messages-permissions"></a>

Pour permettre à votre rubrique Amazon SNS de publier des messages dans votre file d'attente Amazon SQS chiffrée, ajoutez l'instruction de stratégie `AllowSNSToSendToSQS` à votre stratégie de clé. Cette déclaration accorde à Amazon SNS l'autorisation d'utiliser la AWS KMS clé pour publier dans votre file d'attente Amazon SQS. Assurez-vous de les remplacer *<account-ID>* par vos propres informations.

**Note**  
La déclaration `Condition` in the limite l'accès au seul service Amazon SNS sur le même AWS compte.

```
{
  "Sid": "AllowSNSToSendToSQS",
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "sns.amazonaws.com"
    ]
  },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:SourceAccount": "<account-id>"
    }
  }
}
```

### Permettre aux consommateurs de déchiffrer les messages de la file d'attente
<a name="sqs-use-case-decrypt-messages-permissions"></a>

L'instruction `AllowConsumersToReceiveFromTheQueue` suivante accorde au consommateur de messages Amazon SQS les autorisations requises pour déchiffrer les messages reçus de la file d'attente Amazon SQS chiffrée. Lorsque vous joignez la déclaration de politique, remplacez-la *<consumer's runtime role ARN>* par l'ARN du rôle d'exécution IAM du destinataire du message.

```
{
  "Sid": "AllowConsumersToReceiveFromTheQueue",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "<consumer's execution role ARN>"
    ]
  },
  "Action": [
    "kms:Decrypt"
  ],
  "Resource": "*"
}
```

### Stratégie Amazon SQS du moindre privilège
<a name="sqs-use-case-specific-policy"></a>

Cette section décrit les stratégies de file d'attente Amazon SQS relatives au moindre privilège pour le cas d'utilisation couvert par ce guide (par exemple, Amazon SNS vers Amazon SQS). La stratégie définie est conçue pour empêcher tout accès involontaire en utilisant à la fois des instructions `Deny` et `Allow`. Les instructions `Allow` donnent accès à l'entité ou aux entités prévues. Les instructions `Deny` évitent que d'autres entités indésirables n'accèdent à la file d'attente Amazon SQS, tout en excluant l'entité prévue dans la condition de stratégie.

La stratégie Amazon SQS inclut les instructions suivantes, que nous décrivons en détail ci-dessous :
+ [Restreindre les autorisations de gestion Amazon SQS](#sqs-use-case-restrict-permissions)
+ [Restreindre les actions de file d'attente Amazon SQS pour l'organisation spécifiée](#sqs-use-case-restrict-permissions-from-org)
+ [Accorder des autorisations Amazon SQS aux consommateurs](#sqs-use-grant-consumer-permissions)
+ [Application du chiffrement en transit](#sqs-encryption-in-transit)
+ [Limiter la transmission de messages à une rubrique Amazon SNS spécifique](#sqs-restrict-transmission-to-topic)
+ [(Facultatif) Restreindre la réception des messages au point de terminaison d'un VPC spécifique](#sqs-restrict-message-to-endpoint)

### Restreindre les autorisations de gestion Amazon SQS
<a name="sqs-use-case-restrict-permissions"></a>

L'instruction de stratégie `RestrictAdminQueueActions` suivante limite les autorisations de gestion Amazon SQS uniquement au(x) rôle(s) IAM que vous utilisez pour déployer la file d'attente, la gérer, ou les deux. Veillez à remplacer les *<placeholder values>* par vos propres informations. Spécifiez l'ARN du rôle IAM utilisé pour déployer la file d'attente Amazon SQS, ainsi que celui de tous ARNs les rôles d'administrateur devant disposer d'autorisations de gestion Amazon SQS. 

```
{
  "Sid": "RestrictAdminQueueActions",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:AddPermission",
    "sqs:DeleteQueue",
    "sqs:RemovePermission",
    "sqs:SetQueueAttributes"
  ],
  "Resource": "<SQS Queue ARN>",
  "Condition": {
    "StringNotLike": {
      "aws:PrincipalARN": [
        "arn:aws:iam::<account-id>:role/<deployment-role-name>",
        "<admin-role ARN>"
      ]
    }
  }
}
```

### Restreindre les actions de file d'attente Amazon SQS pour l'organisation spécifiée
<a name="sqs-use-case-restrict-permissions-from-org"></a>

Pour protéger vos ressources Amazon SQS contre tout accès externe (accès par une entité extérieure à votre [organisation AWS](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)), utilisez l'instruction suivante. Cette instruction limite l'accès à la file d'attente Amazon SQS pour l'organisation que vous spécifiez dans la `Condition`. Assurez-vous de le *<SQS queue ARN>* remplacer par l'ARN du rôle IAM utilisé pour déployer la file d'attente Amazon SQS, puis par *<org-id>* l'ID de votre organisation. 

```
{
  "Sid": "DenyQueueActionsOutsideOrg",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:AddPermission",
    "sqs:ChangeMessageVisibility",
    "sqs:DeleteQueue",
    "sqs:RemovePermission",
    "sqs:SetQueueAttributes",
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "StringNotEquals": {
      "aws:PrincipalOrgID": [
        "<org-id>"
      ]
    }
  }
}
```

### Accorder des autorisations Amazon SQS aux consommateurs
<a name="sqs-use-grant-consumer-permissions"></a>

Pour recevoir des messages de la file d'attente Amazon SQS, vous devez fournir les autorisations nécessaires au consommateur des messages. L'instruction de stratégie suivante accorde au consommateur spécifié les autorisations requises pour consommer les messages de la file d'attente Amazon SQS. Lorsque vous ajoutez cette déclaration à votre politique Amazon SQS, assurez-vous de la *<consumer's IAM runtime role ARN>* remplacer par l'ARN du rôle d'exécution IAM utilisé par le consommateur et *<SQS queue ARN>* par l'ARN du rôle IAM utilisé pour déployer la file d'attente Amazon SQS.

```
{
  "Sid": "AllowConsumersToReceiveFromTheQueue",
  "Effect": "Allow",
  "Principal": {
    "AWS": "<consumer's IAM execution role ARN>"
  },
  "Action": [
    "sqs:ChangeMessageVisibility",
    "sqs:DeleteMessage",
    "sqs:GetQueueAttributes",
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>"
}
```

Pour éviter que d'autres entités ne reçoivent des messages de la file d'attente Amazon SQS, ajoutez l'instruction `DenyOtherConsumersFromReceiving` à la stratégie de file d'attente Amazon SQS. Cette instruction limite la consommation des messages au consommateur spécifié et n'autorise aucun autre consommateur à y avoir accès, même lorsque ses autorisations d'identité l'y autorisent. Assurez-vous de remplacer *<SQS queue ARN>* et *<consumer’s runtime role ARN>* par vos propres informations.

```
{
  "Sid": "DenyOtherConsumersFromReceiving",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:ChangeMessageVisibility",
    "sqs:DeleteMessage",
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "StringNotLike": {
      "aws:PrincipalARN": "<consumer's execution role ARN>"
    }
  }
}
```

### Application du chiffrement en transit
<a name="sqs-encryption-in-transit"></a>

L'instruction de stratégie `DenyUnsecureTransport` suivante oblige les consommateurs et les producteurs à utiliser des canaux sécurisés (connexions TLS) pour envoyer et recevoir des messages depuis la file d'attente Amazon SQS. Assurez-vous de le *<SQS queue ARN>* remplacer par l'ARN du rôle IAM utilisé pour déployer la file d'attente Amazon SQS.

```
{
  "Sid": "DenyUnsecureTransport",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:ReceiveMessage",
    "sqs:SendMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false"
    }
  }
}
```

### Limiter la transmission de messages à une rubrique Amazon SNS spécifique
<a name="sqs-restrict-transmission-to-topic"></a>

L'instruction de stratégie `AllowSNSToSendToTheQueue` suivante permet à la rubrique Amazon SNS spécifiée d'envoyer des messages à la file d'attente Amazon SQS. Assurez-vous de le *<SQS queue ARN>* remplacer par l'ARN du rôle IAM utilisé pour déployer la file d'attente Amazon SQS *<SNS topic ARN>* et par l'ARN de la rubrique Amazon SNS.

```
{
  "Sid": "AllowSNSToSendToTheQueue",
  "Effect": "Allow",
  "Principal": {
    "Service": "sns.amazonaws.com"
  },
  "Action": "sqs:SendMessage",
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "ArnLike": {
      "aws:SourceArn": "<SNS topic ARN>"
    }
  }
}
```

L'instruction de stratégie `DenyAllProducersExceptSNSFromSending` suivante empêche les autres producteurs d'envoyer des messages à la file d'attente. Remplacez *<SQS queue ARN>* et *<SNS topic ARN>* par vos propres informations.

```
{
  "Sid": "DenyAllProducersExceptSNSFromSending",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": "sqs:SendMessage",
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "ArnNotLike": {
      "aws:SourceArn": "<SNS topic ARN>"
    }
  }
}
```

### (Facultatif) Restreindre la réception des messages au point de terminaison d'un VPC spécifique
<a name="sqs-restrict-message-to-endpoint"></a>

Pour limiter la réception de messages au [point de terminaison d'un VPC](https://aws.amazon.com/about-aws/whats-new/2018/12/amazon-sqs-vpc-endpoints-aws-privatelink/) spécifique, ajoutez l'instruction de stratégie suivante à votre stratégie de file d'attente Amazon SQS. Cette instruction empêche un consommateur de messages de recevoir des messages de la file d'attente, sauf si les messages proviennent du point de terminaison d'un VPC souhaité. *<SQS queue ARN>*Remplacez-le par l'ARN du rôle IAM utilisé pour déployer la file d'attente Amazon SQS *<vpce\$1id>* et par l'ID du point de terminaison VPC.

```
{
  "Sid": "DenyReceivingIfNotThroughVPCE",
  "Effect": "Deny",
  "Principal": "*",
  "Action": [
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "StringNotEquals": {
      "aws:sourceVpce": "<vpce id>"
    }
  }
}
```

## Instructions de stratégie Amazon SQS relatives à la file d'attente de lettres mortes
<a name="sqs-policy-dlq"></a>

Ajoutez les instructions de stratégie suivantes, identifiées par leur ID d'instruction, à votre stratégie d'accès DLQ :
+ `RestrictAdminQueueActions`
+ `DenyQueueActionsOutsideOrg`
+ `AllowConsumersToReceiveFromTheQueue`
+ `DenyOtherConsumersFromReceiving`
+ `DenyUnsecureTransport`

Outre l'ajout des instructions de stratégie précédentes à votre stratégie d'accès DLQ, vous devez également ajouter une instruction pour restreindre la transmission de messages aux files d'attente Amazon SQS, comme décrit dans la section suivante.

### Restreindre la transmission de messages vers des files d'attente Amazon SQS
<a name="sqs-dlq-restrict-permissions"></a>

Pour restreindre l'accès aux files d'attente Amazon SQS provenant du même compte, ajoutez l'instruction de stratégie `DenyAnyProducersExceptSQS` suivante à la stratégie de file d'attente DLQ. Cette instruction ne limite pas la transmission de messages à une file d'attente spécifique, car vous devez déployer le DLQ avant de créer la file d'attente principale. Vous ne connaîtrez donc pas l'ARN Amazon SQS lorsque vous créerez le DLQ. Si vous devez limiter l'accès à une seule file d'attente Amazon SQS, modifiez `aws:SourceArn` dans la `Condition` avec l'ARN de votre file d'attente source Amazon SQS lorsque vous le connaîtrez.

```
{
  "Sid": "DenyAnyProducersExceptSQS",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": "sqs:SendMessage",
  "Resource": "<SQS DLQ ARN>",
  "Condition": {
    "ArnNotLike": {
      "aws:SourceArn": "arn:aws:sqs:<region>:<account-id>:*"
    }
  }
}
```

**Important**  
Les stratégies de file d'attente Amazon SQS définies dans ce guide ne limitent pas l'action `sqs:PurgeQueue` à un ou plusieurs rôles IAM spécifiques. L'action `sqs:PurgeQueue` vous permet de supprimer tous les messages de la file d'attente Amazon SQS. Vous pouvez également utiliser cette action pour modifier le format du message sans remplacer la file d'attente Amazon SQS. Lors du débogage d'une application, vous pouvez effacer la file d'attente Amazon SQS pour supprimer les messages potentiellement erronés. Lorsque vous testez l'application, vous pouvez générer un volume élevé de messages dans la file d'attente Amazon SQS, puis purger la file d'attente pour repartir à zéro avant de passer à la production. La raison pour laquelle cette action n'est pas limitée à un certain rôle est que ce rôle peut ne pas être connu lors du déploiement de la file d'attente Amazon SQS. Vous devrez ajouter cette autorisation à la stratégie basée sur l'identité du rôle pour pouvoir purger la file d'attente.

## Prévention des problèmes de député confus entre services
<a name="sqs-confused-deputy-prevention"></a>

Le [problème de député confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) est un problème de sécurité dans lequel une entité qui n'a pas l'autorisation d'effectuer une action peut contraindre une entité plus privilégiée à effectuer cette action. Pour éviter cela, AWS fournit des outils qui vous aident à protéger votre compte si vous fournissez à des tiers (comptes croisés) ou à d'autres AWS services (appelés interservices) un accès aux ressources de votre compte. Les instructions de stratégie de cette section peuvent vous aider à éviter le problème de député confus entre services.

L'usurpation d'identité entre services peut se produire lorsqu'un service (le service appelant) appelle un autre service (le service appelé). Le service appelant peut être manipulé pour utiliser ses autorisations afin d'agir sur les ressources d'un autre client de sorte qu'il n'y aurait pas accès autrement. Pour éviter ce problème, les stratégies basées sur les ressources définies dans cet article utilisent les clés contextuelles de condition IAM globales [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn), [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) et [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid). Cela limite les autorisations dont dispose un service pour une ressource spécifique, un compte spécifique ou une organisation spécifique dans AWS Organizations.

## Utiliser IAM Access Analyzer pour examiner l'accès intercompte
<a name="sqs-cross-account-findings"></a>

Vous pouvez utiliser [AWS IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) pour examiner vos politiques de file d'attente Amazon SQS et vos politiques clés AWS KMS et vous avertir lorsqu'une file d'attente ou AWS KMS une clé Amazon SQS autorise l'accès à une entité externe. IAM Access Analyzer vous aide à identifier les [ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-resources.html) de votre organisation et de vos comptes partagés avec une entité située en dehors de la zone de confiance. Cette zone de confiance peut être un AWS compte ou l'organisation au sein d' AWS Organizations que vous spécifiez lorsque vous activez IAM Access Analyzer.

IAM Access Analyzer identifie les ressources partagées avec des acteurs externes en utilisant un raisonnement basé sur la logique pour analyser les politiques basées sur les ressources dans votre environnement. AWS Pour chaque instance d'une ressource qui est partagée en dehors de votre zone de confiance, Access Analyzer génère un résultat. Les [résultats](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-findings.html) comprennent des renseignements sur l'accès et le principal externe à qui il est accordé. Révisez les résultats pour déterminer si l'accès est intentionnel et sûr, ou s'il est non intentionnel et représente un risque pour la sécurité. En cas d'accès involontaire, consultez la stratégie concernée et corrigez-la. Consultez ce billet de [blog](https://aws.amazon.com/blogs/aws/identify-unintended-resource-access-with-aws-identity-and-access-management-iam-access-analyzer/) pour plus d'informations sur la manière dont AWS IAM Access Analyzer identifie les accès involontaires à vos ressources. AWS 

Pour plus d'informations sur AWS IAM Access Analyzer, consultez la documentation d'[AWS IAM Access](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) Analyzer.

# Autorisations d'API Amazon SQS : référence des actions et ressources
<a name="sqs-api-permissions-reference"></a>

Vous pouvez utiliser le tableau ci-dessous comme référence lorsque vous configurez le [Contrôle d’accès](security_iam_service-with-iam.md#access-control) et que vous écrivez des stratégies d'autorisation que vous pouvez associer à une identité IAM. Le tableau  chaque action d'Amazon Simple Queue Service, les actions correspondantes pour lesquelles vous pouvez accorder des autorisations pour effectuer l'action et la AWS ressource pour laquelle vous pouvez accorder les autorisations.

Spécifiez les actions dans le champ `Action` de la stratégie, et la valeur des ressources dans le champ `Resource` de la stratégie. Pour spécifier une action, utilisez le préfixe `sqs:` suivi du nom de l'action (par exemple, `sqs:CreateQueue`).

Amazon SQS prend actuellement en charge les [clés contextuelles de condition globales disponibles dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).

Utilisez les barres de défilement pour voir le reste du tableau.


**API Amazon Simple Queue Service et autorisations requises pour les actions**  
<a name="sqs-api-and-required-permissions-for-actions-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-api-permissions-reference.html)