Utilisation de politiques basées sur l'identité avec Amazon SNS - Amazon Simple Notification Service

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

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'Publishaction 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, et aucune nouvelle SNS action Amazon n'est 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 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 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 compte. AWS La IAM politique est attachée aux utilisateurs Bob et Susan (ce qui signifie que Bob et Susan ont les autorisations indiquées dans la politique). La SNS politique d'Amazon accorde également à Bob et Susan l'autorisation d'accéder à Subscribe topic_xyz.

Compare une IAM politique et une SNS politique Amazon, en montrant que les deux politiques accordent des autorisations équivalentes à deux utilisateurs, Bob et Susan, leur permettant de s'abonner à un SNS sujet Amazon spécifique au sein d'un Compte AWS. La principale différence mise en évidence est que SNS les politiques d'Amazon peuvent accorder des autorisations aux utilisateurs de différentes manières Comptes AWS, alors que IAM les politiques ne le peuvent pas.
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'Subscribeutiliser n'importe lequel des sujets, 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.

Montre comment une IAM politique et une SNS politique Amazon s'appliquent à l'utilisateur Bob, la IAM politique lui permettant de s'abonner à n'importe quel sujet du Compte AWS, et la SNS politique Amazon 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 IAM politique et les autorisations spécifiques accordées par la SNS politique d'Amazon pour un sujet particulier.

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. Le plus simple est d'ajouter une IAM politique qui lui refuse l'accès à l'Publishaction 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.

Illustration de la façon dont l'ajout d'une IAM politique interdisant l'action « Publier » pour tous les sujets peut annuler une SNS politique Amazon existante qui autorisait l'utilisateur Bob à publier sur un sujet spécifique, « topic_xyz ». La politique de IAM refus a priorité sur celle d'AmazonSNS, empêchant ainsi Bob de publier sur n'importe quel sujet, y compris « topic_xyz ».

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. Le format Amazon Resource Name (ARN) des rubriques est le suivant.

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 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 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 plutôt qu'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'Publishaccè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" } ] }