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.
Amazon Simple Notification Service s'intègre à AWS Identity and Access Management (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 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.
politiques IAM et Amazon SNS ensemble
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.

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.
Exemple 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.

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.
Exemple 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). Le diagramme suivant illustre le concept.

Pour obtenir des exemples de politiques couvrant les actions et ressources Amazon SNS, consultez Exemples de politiques pour Amazon SNS.
Format ARN des ressources Amazon SNS
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 ARNsde l'utilisateur IAM.
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
Si un sujet était nommé MyTopic dans chacune des différentes régions prises en charge par Amazon SNS, vous pourriez le spécifier 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
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.
Clés de politique Amazon SNS
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 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 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) pour limiter l'accès à des points de terminaison spécifiques (par exemple, *@yourcompany.com). -
sns:protocol – valeur
protocol
provenant d'une demandeSubscribe
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) pour limiter la publication à des protocoles de diffusion spécifiques (par exemple, https).
Exemples de politiques pour Amazon SNS
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.
Exemple 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": "*"
}]
}
Exemple 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"
}]
}
Exemple 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"
}
}
}]
}
Exemple 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"
}
]
}