

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.

# Contrôle d'accès basé sur les attributs pour Amazon SQS
<a name="sqs-abac"></a>

## Qu'est-ce que le contrôle d'accès basé sur les attributs (ABAC) ?
<a name="sqs-abac-whatis"></a>

Le contrôle d'accès basé sur les attributs (ABAC) est un processus d'autorisation qui définit les autorisations en fonction des balises associées aux utilisateurs et aux ressources. AWS L'ABAC fournit un contrôle d'accès granulaire et flexible basé sur des attributs et des valeurs, réduit les risques de sécurité liés aux stratégies reconfigurées basées sur les rôles et centralise l'audit et la gestion des stratégies d'accès. Pour plus de détails sur l'ABAC, consultez [Qu'est-ce que l'ABAC pour AWS ?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) dans le *Guide de l'utilisateur IAM*.

Amazon SQS prend en charge l'ABAC en vous permettant de contrôler l'accès à vos files d'attente Amazon SQS en fonction des balises et des alias associés à une file d'attente Amazon SQS. Les clés de condition de balise et d'alias qui activent l'ABAC dans Amazon SQS autorisent les mandataires IAM à utiliser les files d'attente Amazon SQS sans modifier les stratégies ni gérer les octrois. Pour en savoir plus sur les clés de condition ABAC, consultez la section [Clés de condition pour Amazon](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html#amazonsqs-policy-keys) SQS dans *la référence d'autorisation de service*.

Avec ABAC, vous pouvez utiliser des balises pour configurer les autorisations et les stratégies d'accès IAM pour vos files d'attente Amazon SQS, ce qui vous permet de mettre à l'échelle votre gestion des autorisations. Vous pouvez créer une stratégie d'autorisation unique dans IAM à l'aide de balises que vous ajoutez à chaque rôle commercial, sans avoir à mettre à jour la stratégie chaque fois que vous ajoutez une nouvelle ressource. Vous pouvez également associer des balises aux mandataires IAM pour créer une stratégie ABAC. Vous pouvez concevoir des stratégies ABAC pour autoriser les opérations Amazon SQS lorsque la balise du rôle d'utilisateur IAM qui effectue l'appel correspond à la balise de file d'attente Amazon SQS. Pour en savoir plus sur le balisage AWS, consultez les sections [Stratégies de AWS balisage et](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). [Balises de répartition des coûts Amazon SQS](sqs-queue-tags.md)

**Note**  
ABAC pour Amazon SQS est actuellement disponible dans AWS toutes les régions commerciales où Amazon SQS est disponible, avec les exceptions suivantes :   
Asie-Pacifique (Hyderabad)
Asie-Pacifique (Melbourne)
Europe (Espagne) 
Europe (Zurich)

## Pourquoi utiliser l'ABAC dans Amazon SQS ?
<a name="sqs-abac-benefits"></a>

Voici quelques avantages liés à l'utilisation de l'ABAC dans Amazon SQS :
+ L'ABAC pour Amazon SQS nécessite moins de stratégies d'autorisation. Vous n'avez pas besoin de créer une stratégie pour chaque activité professionnelle. Vous pouvez utiliser des balises de ressource et de demande qui s'appliquent à plusieurs files d'attente, ce qui réduit la charge opérationnelle.
+ Utilisez l'ABAC pour mettre rapidement à l'échelle les équipes. Les autorisations d'accès aux nouvelles ressources sont automatiquement accordées en fonction des balises lorsque les ressources sont correctement balisées lors de leur création.
+ Utilisez les autorisations sur le mandataire IAM pour restreindre l'accès aux ressources. Vous pouvez créer des balises pour le mandataire IAM et les utiliser pour restreindre l'accès à des actions spécifiques correspondant aux balises du mandataire IAM. Cela vous permet d'automatiser le processus d'octroi des autorisations de demande.
+ Suivez les personnes qui accèdent à vos ressources. Vous pouvez déterminer l'identité d'une session en consultant les attributs utilisateur dans AWS CloudTrail.

**Topics**
+ [Qu'est-ce que le contrôle d'accès basé sur les attributs (ABAC) ?](#sqs-abac-whatis)
+ [Pourquoi utiliser l'ABAC dans Amazon SQS ?](#sqs-abac-benefits)
+ [Identification pour le contrôle d'accès](sqs-abac-tagging-resource-control.md)
+ [Création d'utilisateurs IAM et de files d'attente Amazon SQS](sqs-abac-creating-queues.md)
+ [Test du contrôle d'accès basé sur les attributs](sqs-abac-testing-access-control.md)

# Balisage pour le contrôle d'accès dans Amazon SQS
<a name="sqs-abac-tagging-resource-control"></a>

Voici un exemple d'utilisation de balises pour le contrôle d'accès dans Amazon SQS. La stratégie IAM limite un utilisateur IAM à toutes les actions Amazon SQS pour toutes les files d'attente qui incluent une balise de ressource indiquant l'environnement clé et la production de valeur. Pour plus d'informations, voir [Contrôle d'accès basé sur les attributs avec balises et AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging_abac.html). 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessForProd",
      "Effect": "Allow",
      "Action": "sqs:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/environment": "prod"
        }
      }
    }
  ]
}
```

------

# Création d'utilisateurs IAM et de files d'attente Amazon SQS
<a name="sqs-abac-creating-queues"></a>

Les exemples suivants expliquent comment créer une politique ABAC pour contrôler l'accès à Amazon SQS à l'aide AWS Management Console du et. CloudFormation

## À l'aide du AWS Management Console
<a name="sqs-abac-creating-queues-console"></a>

**Créer un utilisateur IAM**

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Choisissez **Utilisateur** dans le panneau de navigation de gauche.

1. Choisissez **Ajouter des utilisateurs** et saisissez un nom dans la zone de texte **Nom d'utilisateur**.

1. Sélectionnez **Clé d'accès - Accès programmatique**, puis choisissez **Suivant : Autorisations**.

1. Choisissez **Suivant : balises**.

1. Ajouter la clé d'étiquette en tant que `environment` et la valeur de balise en tant que `beta`.

1. Choisissez **Suivant : Autorisations**, puis **Créer un utilisateur**.

1. Conservez votre ID de clé d'accès et votre clé d'accès secrète dans un emplacement sécurisé.

**Ajouter des autorisations d'utilisateur IAM**

1. Sélectionnez l'utilisateur IAM que vous avez créé.

1. Sélectionnez **Ajouter une politique en ligne**.

1. Dans l'onglet JSON, collez la stratégie suivante :

1. Choisissez **Examiner une politique**.

1. Choisissez **Create Policy** (Créer une politique).

## En utilisant AWS CloudFormation
<a name="sqs-abac-creating-queues-cf"></a>

Utilisez l'exemple de CloudFormation modèle suivant pour créer un utilisateur IAM associé à une politique intégrée et à une file d'attente Amazon SQS :

```
AWSTemplateFormatVersion: "2010-09-09"
Description: "CloudFormation template to create IAM user with custom inline policy"
Resources:
    IAMPolicy:
        Type: "AWS::IAM::Policy"
        Properties:
            PolicyDocument: |
                {
                    "Version": "2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Sid": "AllowAccessForSameResTag",
                            "Effect": "Allow",
                            "Action": [
                                "sqs:SendMessage",
                                "sqs:ReceiveMessage",
                                "sqs:DeleteMessage"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:ResourceTag/environment": "${aws:PrincipalTag/environment}"
                                }
                            }
                        },
                        {
                            "Sid": "AllowAccessForSameReqTag",
                            "Effect": "Allow",
                            "Action": [
                                "sqs:CreateQueue",
                                "sqs:DeleteQueue",
                                "sqs:SetQueueAttributes",
                                "sqs:tagqueue"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:RequestTag/environment": "${aws:PrincipalTag/environment}"
                                }
                            }
                        },
                        {
                            "Sid": "DenyAccessForProd",
                            "Effect": "Deny",
                            "Action": "sqs:*",
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:ResourceTag/stage": "prod"
                                }
                            }
                        }
                    ]
                }
                
            Users: 
              - "testUser"
            PolicyName: tagQueuePolicy

    IAMUser:
        Type: "AWS::IAM::User"
        Properties:
            Path: "/"
            UserName: "testUser"
            Tags: 
              - 
                Key: "environment"
                Value: "beta"
```

# Test du contrôle d'accès basé sur les attributs dans Amazon SQS
<a name="sqs-abac-testing-access-control"></a>

Les exemples suivants vous montrent comment tester le contrôle d'accès basé sur les attributs dans Amazon SQS.

## Créer une file d'attente avec la clé de balise définie sur environment et la valeur de balise définie sur prod
<a name="sqs-abac-testing-access-control-create-queue"></a>

Exécutez cette commande AWS CLI pour tester la création de la file d'attente avec la clé de balise définie sur environnement et la valeur de balise définie sur prod. Si vous n'avez pas de AWS CLI, vous pouvez [la télécharger et la configurer](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) pour votre machine.

```
aws sqs create-queue --queue-name prodQueue —region us-east-1 —tags "environment=prod"
```

Vous recevez une erreur `AccessDenied` de la part du point de terminaison Amazon SQS :

```
An error occurred (AccessDenied) when calling the CreateQueue operation: Access to the resource <queueUrl> is denied.
```

Cela est dû au fait que la valeur de balise de l'utilisateur IAM ne correspond pas à la balise transmise lors de l'appel d'API [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html). N'oubliez pas que nous avons appliqué une balise à l'utilisateur IAM avec la clé définie sur `environment` et la valeur définie sur `beta`.

## Créer une file d'attente avec la clé de balise définie sur environment et la valeur de balise définie sur beta
<a name="sqs-abac-testing-access-control-create-env"></a>

Exécutez cette commande CLI pour tester la création d'une file d'attente avec la clé de balise définie sur `environment` et la valeur de balise définie sur `beta`.

```
aws sqs create-queue --queue-name betaQueue —region us-east-1 —tags "environment=beta"
```

Vous recevez un message confirmant la création réussie de la file d'attente, similaire à celui ci-dessous.

```
{
"QueueUrl": "<queueUrl>“
}
```

## Envoi d'un message à une file d'attente
<a name="sqs-abac-testing-access-control-sending-message"></a>

Exécutez cette commande CLI pour tester l'envoi d'un message à une file d'attente.

```
aws sqs send-message --queue-url <queueUrl> --message-body testMessage
```

La réponse indique que le message a été correctement envoyé à la file d'attente Amazon SQS. L'autorisation d'utilisateur IAM vous permet d'envoyer un message à une file d'attente comportant une balise `beta`. La réponse inclut `MD5OfMessageBody` et `MessageId` contenant le message.

```
{
"MD5OfMessageBody": "<MD5OfMessageBody>",
"MessageId": "<MessageId>"
}
```