

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 l'identité avec Amazon SNS
<a name="sns-using-identity-based-policies"></a>

Amazon Simple Notification Service s'intègre à Gestion des identités et des accès AWS (IAM) afin que vous puissiez spécifier les actions Amazon SNS qu'un de Compte AWS vos utilisateurs peut effectuer avec les ressources Amazon SNS. Vous pouvez indiquer une rubrique particulière dans la politique. Par exemple, vous pouvez utiliser des variables lorsque vous créez une politique IAM qui autorise certains utilisateurs de votre organisation à utiliser l'action `Publish` avec des rubriques spécifiques dans votre Compte AWS. Pour plus d'informations, consultez la section [Variables de politique](https://docs.aws.amazon.com/IAM/latest/UserGuide/PolicyVariables.html) dans le guide *Utilisation d'IAM*.

**Important**  
L'utilisation d'Amazon SNS avec IAM ne modifie pas l'utilisation d'Amazon SNS. Aucun changement n'est apporté aux actions Amazon SNS et aucune nouvelle action Amazon SNS associée aux utilisateurs et au contrôle d'accès n'est ajoutée.

Pour obtenir des exemples de politiques couvrant les actions et ressources Amazon SNS, consultez [Exemples de politiques pour Amazon SNS](#sns-example-policies).

## politiques IAM et Amazon SNS ensemble
<a name="iam-and-sns-policies"></a>

Vous utilisez une politique IAM pour limiter l'accès de vos utilisateurs aux actions et rubriques Amazon SNS. Une politique IAM peut restreindre l'accès uniquement aux utilisateurs de votre AWS compte, pas aux autres Comptes AWS utilisateurs.

Vous utilisez une politique Amazon SNS avec une rubrique particulière pour limiter les personnes autorisées à travailler avec cette rubrique (par exemple, qui peut y publier des messages, qui peut s'y abonner, etc.). Les politiques Amazon SNS peuvent accorder l'accès à d'autres Comptes AWS utilisateurs ou à des utilisateurs appartenant aux vôtres. Compte AWS

Pour accorder à vos utilisateurs des autorisations d'accès à vos rubriques Amazon SNS, vous pouvez utiliser des politiques IAM, des politiques Amazon SNS, ou les deux. Dans l'ensemble, vous obtenez les mêmes résultats avec l'un ou l'autre. Par exemple, le schéma suivant illustre une politique IAM et une politique Amazon SNS équivalentes. La politique IAM autorise l'action Amazon `Subscribe` SNS pour le sujet intitulé topic\_xyz dans Compte AWS votre. La politique IAM est attachée aux utilisateurs Bob et Susan (ce qui signifie que Bob et Susan disposent des autorisations indiquées dans la politique). La politique Amazon SNS donne également à Bob et Susan l'autorisation d'accéder à `Subscribe` pour la rubrique topic\_xyz.

![Compare une politique IAM et une politique Amazon SNS, en montrant que les deux politiques accordent des autorisations équivalentes à deux utilisateurs, Bob et Susan, leur permettant de s'abonner à une rubrique Amazon SNS spécifique au sein d'un. Compte AWS La principale différence mise en évidence est que les politiques Amazon SNS peuvent accorder des autorisations aux utilisateurs de différentes manières Comptes AWS, alors que les politiques IAM ne le peuvent pas.](http://docs.aws.amazon.com/fr_fr/sns/latest/dg/images/SNS_EquivalentPolicies.png)


**Note**  
L'exemple précédent montre des politiques simples, sans conditions. Vous pouvez spécifier une condition particulière dans l'une ou l'autre des politiques et aboutir au même résultat.

Il existe une différence entre les politiques AWS IAM et Amazon SNS : le système de politique Amazon SNS vous permet d'accorder des autorisations à Comptes AWS d'autres personnes, contrairement à la politique IAM. 

Il vous incombe de décider si vous voulez utiliser les deux systèmes conjointement pour gérer vos autorisations, en fonction de vos besoins. Les exemples suivants illustrent la façon dont les deux systèmes de politique interagissent.

**Example 1**  
Dans cet exemple, une politique IAM et une politique Amazon SNS s'appliquent toutes deux à Bob. La politique IAM lui accorde l'autorisation d'utiliser n'importe quel `Subscribe` sujet, tandis que la politique Amazon SNS lui accorde l'autorisation d'`Publish`utiliser un sujet spécifique (topic\_xyz). Compte AWS Le diagramme suivant illustre le concept.  

![Montre comment une politique IAM et une politique Amazon SNS s'appliquent à l'utilisateur Bob, la politique IAM lui permettant de s'abonner à n'importe quel sujet Compte AWS du, et la politique Amazon SNS lui accordant l'autorisation de publier des messages sur un sujet spécifique nommé « topic_xyz ». Le diagramme met en évidence la distinction entre les autorisations générales accordées par la politique IAM et les autorisations spécifiques accordées par la politique Amazon SNS pour un sujet particulier.](http://docs.aws.amazon.com/fr_fr/sns/latest/dg/images/SNS_UnionOfPolicies.png)

Si Bob envoyait une demande d'abonnement à n'importe quel sujet du AWS compte, la politique IAM autoriserait cette action. Si Bob était sur le point d'envoyer une demande de publication d'un message dans la rubrique topic\_xyz, la politique Amazon SNS autoriserait l'action.  
 

**Example 2**  
Dans ce cas, nous nous appuyons sur l'exemple 1 (où deux politiques s'appliquent à Bob). Disons que Bob publie des messages dans la rubrique topic\_xyz, ce qu'il ne devrait pas être autorisé à faire. Vous voulez complètement supprimer cette possibilité de publication dans des rubriques. La meilleure chose à faire consiste à ajouter une politique IAM qui lui refuse l'accès à l'action `Publish` sur toutes les rubriques. Cette troisième politique remplace la politique Amazon SNS qui lui donnait initialement l'autorisation d'effectuer une publication dans la rubrique topic\_xyz, car un refus explicite remplace toujours une autorisation (pour plus d'informations sur la logique d'évaluation de politique, consultez [Logique d'évaluation](sns-access-policy-language-evaluation-logic.md)). Le diagramme suivant illustre le concept.  

![Illustration de la façon dont l'ajout d'une politique IAM refusant l'action « Publier » pour tous les sujets peut annuler une politique Amazon SNS existante qui autorisait l'utilisateur Bob à publier sur un sujet spécifique, « topic_xyz ». La politique de refus IAM a priorité sur la politique Amazon SNS, empêchant ainsi Bob de publier sur n'importe quel sujet, y compris « topic_xyz ».](http://docs.aws.amazon.com/fr_fr/sns/latest/dg/images/SNS_DenyOverride.png)


Pour obtenir des exemples de politiques couvrant les actions et ressources Amazon SNS, consultez [Exemples de politiques pour Amazon SNS](#sns-example-policies).

## Format ARN des ressources Amazon SNS
<a name="sns-arn-format"></a>

Pour Amazon SNS, les rubriques sont le seul type de ressource que vous pouvez spécifier dans une politique. Vous trouverez ci-dessous le format Amazon Resource Name (ARN) pour les rubriques.

```
arn:aws:sns:{{region}}:{{account_ID}}:{{topic_name}}
```

Pour plus d'informations ARNs, consultez le *Guide [ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html#Identifiers_ARNs)de l'utilisateur IAM*.

**Example**  
Ce qui suit est un ARN pour une rubrique nommée MyTopic dans la région us-east-2, appartenant à 123456789012. Compte AWS   

```
arn:aws:sns:us-east-2:123456789012:MyTopic
```

**Example**  
Si vous avez nommé une rubrique MyTopic dans chacune des différentes régions prises en charge par Amazon SNS, vous pouvez spécifier les rubriques avec l'ARN suivant.   

```
arn:aws:sns:*:123456789012:MyTopic
```

Vous pouvez utiliser les caractères génériques \* et ? dans le nom de la rubrique. Par exemple, la ligne suivante peut faire référence à toutes les rubriques créées par Bob, auxquelles il a ajouté le préfixe `bob_`.

```
arn:aws:sns:*:123456789012:bob_*
```

Pour vous faciliter les choses, lorsque vous créez une rubrique, Amazon SNS renvoie l'ARN de la rubrique dans la réponse.

## Actions d'API Amazon SNS
<a name="sns-api-actions"></a>

Dans une politique IAM, vous pouvez spécifier les actions qu'Amazon SNS propose. Toutefois, les actions `ConfirmSubscription` et `Unsubscribe` ne nécessitent pas d'authentification, ce qui signifie que même si vous spécifiez ces actions dans une politique, IAM ne limitera pas l'accès des utilisateurs à ces actions.

Chaque action que vous spécifiez dans une politique doit être précédée de la chaîne en minuscules `sns:`. Pour spécifier toutes les actions Amazon SNS, par exemple, vous utiliseriez `sns:*`. Pour obtenir la liste des actions, consultez la [Référence de l'API Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/api/). 

## Clés de politique Amazon SNS
<a name="sns-policy-keys"></a>

Amazon SNS implémente les clés de politique générales AWS suivantes, ainsi que certaines clés spécifiques aux services.

Pour obtenir la liste des clés de condition prises en charge par chacune d'entre elles Service AWS[, voir Actions, ressources et clés de condition Services AWS](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) dans le *guide de l'utilisateur IAM*. Pour obtenir une liste des clés de condition qui peuvent être utilisées à plusieurs reprises Services AWS, voir les [clés contextuelles de condition AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dans le *guide de l'utilisateur IAM*.

Amazon SNS utilise les clés spécifiques au service suivantes. Utilisez ces clés dans les politiques limitant l'accès aux demandes `Subscribe`.
+ **sns:endpoint** – URL, adresse e-mail ou ARN provenant d'une demande `Subscribe` ou d'un abonnement confirmé au préalable. Il convient de l'utiliser avec des conditions de chaîne (consultez la section [Exemples de politiques pour Amazon SNS](#sns-example-policies)) pour limiter l'accès à des points de terminaison spécifiques (par exemple, \*@yourcompany.com).
+ **sns:protocol** – valeur `protocol` provenant d'une demande `Subscribe` ou d'un abonnement confirmé au préalable. Il convient de l'utiliser avec des conditions de chaîne (consultez la section [Exemples de politiques pour Amazon SNS](#sns-example-policies)) pour limiter la publication à des protocoles de diffusion spécifiques (par exemple, https). 

## Exemples de politiques pour Amazon SNS
<a name="sns-example-policies"></a>

Cette section illustre plusieurs exemples simples de politique pour contrôler l'accès utilisateur à Amazon SNS.

**Note**  
À l'avenir, il se peut qu'Amazon SNS ajoute de nouvelles actions qui devraient être logiquement incluses dans l'une des politiques suivantes, en fonction des objectifs établis de la politique. 

**Example 1 : Autoriser un groupe à créer et gérer des rubriques**  
Dans cet exemple, nous créons une politique qui permet d'accéder à `CreateTopic`, `ListTopics`, `SetTopicAttributes` et `DeleteTopic`.  

```
{
  "Statement": [{
    "Effect": "Allow",
    "Action": ["sns:CreateTopic", "sns:ListTopics", "sns:SetTopicAttributes", "sns:DeleteTopic"],
    "Resource": "*"
  }]
}
```

**Example 2 : Autoriser le groupe informatique à publier des messages dans une rubrique particulière**  
Dans cet exemple, nous créons un groupe pour l'informatique et affectons une politique qui permet d'accéder à `Publish` sur le sujet qui vous intéresse spécifiquement.  

```
{
  "Statement": [{
    "Effect": "Allow",
    "Action": "sns:Publish",
    "Resource": "arn:aws:sns:*:123456789012:MyTopic"
  }]
}
```

**Example 3 : Donnez aux utilisateurs la Compte AWS possibilité de s'abonner à des sujets**  
Dans cet exemple, nous créons une politique qui permet d'accéder à l'action `Subscribe`, avec des conditions de correspondance de chaîne pour les clés de politique `sns:Protocol` et `sns:Endpoint`.  

```
{
  "Statement": [{
    "Effect": "Allow",
    "Action": ["sns:Subscribe"],
    "Resource": "*",
    "Condition": {
      "StringLike": {
        "sns:Endpoint": "*@example.com"
      },
      "StringEquals": {
        "sns:Protocol": "email"
      }
    }
  }]
}
```

**Example 4 : Autoriser un partenaire à publier des messages dans une rubrique particulière**  
Vous pouvez utiliser une politique Amazon SNS ou une politique IAM pour autoriser un partenaire à effectuer une publication dans une rubrique spécifique. Si votre partenaire dispose d'une politique Amazon SNS Compte AWS, il peut être plus facile d'utiliser une politique Amazon SNS. Cependant, toute personne de l'entreprise du partenaire possédant les informations AWS de sécurité peut publier des messages sur le sujet. Cet exemple part du principe que vous voulez limiter l'accès à une personne (ou application) spécifique. Pour ce faire, vous devez traiter le partenaire comme un utilisateur au sein de votre propre entreprise et utiliser une politique IAM au lieu d'une politique Amazon SNS.  
Dans cet exemple, nous créons un groupe appelé WidgetCo qui représente l'entreprise partenaire ; nous créons un utilisateur pour la personne (ou l'application) spécifique de l'entreprise partenaire qui a besoin d'un accès ; puis nous plaçons l'utilisateur dans le groupe.   
Nous joignons ensuite une politique qui accorde au groupe l'`Publish`accès au sujet spécifique nommé *WidgetPartnerTopic*.   
Nous voulons également empêcher le WidgetCo groupe de faire quoi que ce soit d'autre avec les sujets. Nous avons donc ajouté une déclaration refusant l'autorisation d'effectuer des actions Amazon SNS autres que celles portant `Publish` sur des sujets autres que. WidgetPartnerTopic Cette opération est nécessaire uniquement s'il existe une politique large ailleurs dans le système, qui donne aux utilisateurs un large accès à Amazon SNS.   

```
{
  "Statement": [{
      "Effect": "Allow",
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:*:123456789012:WidgetPartnerTopic"
    },
    {
      "Effect": "Deny",
      "NotAction": "sns:Publish",
      "NotResource": "arn:aws:sns:*:123456789012:WidgetPartnerTopic"
    }
  ]
}
```

## Politiques Amazon SNS pour les points de terminaison de messagerie
<a name="sns-email-endpoints"></a>

Amazon SNS normalise les adresses e-mail dans les politiques d'accès aux terminaux en supprimant les espaces de début et de fin, en convertissant tous les caractères en minuscules et en normalisant les caractères spéciaux et les séquences d'échappement. C'est pourquoi vous devez utiliser des adresses e-mail en minuscules dans les définitions de vos politiques afin de garantir la bonne correspondance des demandes d'abonnement. 

Exemple de politique :

```
{
    "Condition": {
        "StringEquals": {
            "sns:Endpoint": "user.name@example.com"
        }
    }
}
```

Les adresses e-mail suivantes répondent à la condition ci-dessus :
+ `user.name@example.com`
+ `USER.NAME@EXAMPLE.COM`
+ `User.N\ame@Example.com`

## Politiques Amazon SNS pour les terminaux HTTP/HTTPs
<a name="sns-http-https-endpoints"></a>

Amazon SNS normalise les HTTP/HTTPs points de terminaison dans les politiques d'accès aux terminaux en convertissant le schéma et le nom d'hôte en minuscules tout en préservant exactement le port, le chemin, les paramètres de requête et les fragments. Pour cette raison, vous devez utiliser un schéma en minuscules et un nom d'hôte dans vos définitions de politique afin de garantir une correspondance correcte des demandes d'abonnement. 

```
{
    "Condition": {
        "StringEquals": {
            "sns:Endpoint": "https://example.com:443/path?A=B"
        }
    }
}
```

Les éléments suivants HTTP/HTTPs correspondent à la condition ci-dessus :
+ `HTTPS://EXAMPLE.COM:443/path?A=B`
+ `HTTPS://example.com:443/path?A=B`
+ `HTTPS://ExAmPlE.cOm:443/path?A=B`