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
Rubriques
Amazon Simple Notification Service s'intègre à AWS Identity and Access Management (IAM) afin que vous puissiez spécifier les SNS actions Amazon qu'un de vos utilisateurs Compte AWS peut effectuer avec les SNS ressources Amazon. Vous pouvez indiquer une rubrique particulière dans la politique. Par exemple, vous pouvez utiliser des variables lors de la création d'une IAM politique qui autorise certains utilisateurs de votre organisation à utiliser l'Publish
action sur des sujets spécifiques de votre organisation Compte AWS. Pour plus d'informations, consultez la section Variables de politique dans le IAM guide d'utilisation.
Important
L'utilisation d'Amazon SNS avec IAM ne change pas la façon dont vous utilisez AmazonSNS. Aucune modification n'a été apportée aux SNS actions Amazon, ni aucune nouvelle SNS action Amazon liée aux utilisateurs et au contrôle d'accès.
Pour des exemples de politiques qui couvrent les SNS actions et les ressources d'Amazon, consultezExemples de politiques pour Amazon SNS.
IAMet les SNS politiques d'Amazon ensemble
Vous utilisez une IAM politique pour restreindre l'accès de vos utilisateurs aux SNS actions et aux sujets Amazon. Une IAM politique peut restreindre l'accès uniquement aux utilisateurs de votre AWS compte, pas aux autres utilisateurs Comptes AWS.
Vous utilisez une SNS politique Amazon relative à un sujet particulier pour limiter les personnes autorisées à travailler sur ce sujet (par exemple, qui peut publier des messages sur ce sujet, qui peut s'y abonner, etc.). Les SNS politiques d'Amazon 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 pour vos SNS sujets Amazon, vous pouvez utiliser IAM les politiques, SNS les politiques Amazon 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 montre une IAM politique et une SNS politique Amazon équivalentes. La IAM politique autorise Amazon à SNS Subscribe
agir pour le sujet intitulé topic_xyz dans votre fichier. Compte AWS La IAM politique est attachée aux utilisateurs Bob et Susan (ce qui signifie que Bob et Susan disposent des autorisations indiquées dans la politique). La SNS politique d'Amazon accorde également à Bob et Susan l'autorisation d'accéder à Subscribe
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 SNS politiques d'Amazon AWS IAM et celles d'Amazon : le système de SNS politiques Amazon vous permet d'accorder des autorisations à d'autres personnes Comptes AWS, alors que la IAM politique ne le fait pas.
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 IAM politique et une SNS politique Amazon s'appliquent à Bob. La IAM politique lui accorde l'autorisation d'utiliser n'importe quel Subscribe
sujet, tandis que la SNS politique d'Amazon lui accorde l'autorisation de l'utiliser Publish
sur 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 IAM politique autoriserait l'action. Si Bob envoyait une demande de publication d'un message à topic_xyz, la SNS politique d'Amazon autoriserait cette 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 chose la plus simple à faire est d'ajouter une IAM politique qui lui refuse l'accès à l'Publish
action sur tous les sujets. Cette troisième politique remplace la SNS politique Amazon qui l'autorisait initialement à publier sur topic_xyz, car un refus explicite remplace toujours une autorisation (pour plus d'informations sur la logique d'évaluation des politiques, voir). Logique d'évaluation Le diagramme suivant illustre le concept.
Pour des exemples de politiques qui couvrent les SNS actions et les ressources d'Amazon, consultezExemples de politiques pour Amazon SNS. Pour plus d'informations sur la rédaction SNS des politiques Amazon, consultez la documentation technique d'Amazon SNS
ARNFormat SNS de ressource Amazon
Pour AmazonSNS, les sujets sont le seul type de ressource que vous pouvez spécifier dans une politique. Voici le format Amazon Resource Name (ARN) pour les rubriques.
arn:aws:sns:region
:account_ID
:topic_name
Pour plus d'informationsARNs, consultez le Guide ARNsde IAM l'utilisateur.
Ce qui suit ARN concerne un sujet nommé MyTopic dans la région us-east-2 et appartenant à 123456789012. Compte AWS
arn:aws:sns:us-east-2:123456789012:MyTopic
Si vous avez nommé un sujet MyTopic dans chacune des différentes régions prises SNS en charge par Amazon, vous pouvez spécifier les sujets comme suitARN.
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 la tâche, lorsque vous créez un sujet, Amazon SNS renvoie le nom du sujet ARN dans la réponse.
SNSAPIActions d'Amazon
Dans une IAM politique, vous pouvez spécifier toutes les actions proposées par AmazonSNS. Cependant, les Unsubscribe
actions ConfirmSubscription
et ne nécessitent pas d'authentification, ce qui signifie que même si vous spécifiez ces actions dans une politique, cela ne IAM 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 SNS actions Amazon, par exemple, vous devez utilisersns:*
. Pour obtenir la liste des actions, consultez le Amazon Simple Notification Service API Reference.
Clés SNS de politique Amazon
Amazon SNS implémente les clés AWS de politique générales 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 IAM l'utilisateur. Pour obtenir une liste des clés de condition pouvant être utilisées à plusieurs reprises Services AWS, consultez la section Clés contextuelles de condition AWS globales dans le guide de IAM l'utilisateur.
Amazon SNS utilise les clés spécifiques aux services suivantes. Utilisez ces clés dans les politiques limitant l'accès aux demandes Subscribe
.
-
sns:endpoint — L'adresse e-mailURL, ou ARN provenant d'une
Subscribe
demande ou d'un abonnement confirmé précédemment. 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 présente plusieurs politiques simples pour contrôler l'accès des utilisateurs à AmazonSNS.
Note
À l'avenir, Amazon SNS pourrait ajouter de nouvelles actions qui devraient logiquement être incluses dans l'une des politiques suivantes, en fonction des objectifs déclarés 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 SNS politique Amazon ou une IAM politique pour autoriser un partenaire à publier sur un sujet spécifique. Si votre partenaire dispose d'une politique Amazon Compte AWS, il peut être plus facile d'utiliser une SNS politique Amazon. 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 IAM politique au lieu d'une SNS politique Amazon.
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, c'est pourquoi nous ajoutons une déclaration qui refuse d'autoriser toute SNS action Amazon autre que Publish
sur des sujets autres que WidgetPartnerTopic. Cela n'est nécessaire que s'il existe une politique générale ailleurs dans le système qui accorde aux utilisateurs un large accès à AmazonSNS.
{ "Statement": [{ "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:*:123456789012:WidgetPartnerTopic" }, { "Effect": "Deny", "NotAction": "sns:Publish", "NotResource": "arn:aws:sns:*:123456789012:WidgetPartnerTopic" } ] }