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.
Abonnement d'une SQS file d'attente Amazon à un sujet Amazon SNS
Pour permettre à un SNS sujet Amazon d'envoyer des messages à une SQS file d'attente Amazon, effectuez l'une des opérations suivantes :
-
Utilisez la SQSconsole Amazon
, qui simplifie le processus. Pour plus d'informations, consultez la section Abonnement d'une SQS file d'attente Amazon à une SNS rubrique Amazon dans le manuel Amazon Simple Queue Service Developer Guide. -
Procédez comme suit :
Pour découvrir comment configurer une rubrique pour envoyer des messages à une file d'attente située dans un autre compte AWS, consultez Envoyer SNS des messages Amazon à une SQS file d'attente Amazon dans un autre compte.
Pour voir un AWS CloudFormation modèle qui crée une rubrique qui envoie des messages à deux files d'attente, voirAutomatisez la SQS messagerie Amazon SNS vers Amazon avec AWS CloudFormation.
Étape 1 : Obtenir la liste ARN de la file d'attente et le sujet
Lorsque vous inscrivez une file d'attente à votre sujet, vous aurez besoin d'une copie de celle-ci ARN pour la file d'attente. De même, lorsque vous autorisez le sujet à envoyer des messages à la file d'attente, vous aurez besoin d'une copie du sujet. ARN
Pour obtenir la file d'attenteARN, vous pouvez utiliser la SQS console Amazon ou l'GetQueueAttributesAPIaction.
Pour obtenir la file d'attente ARN depuis la SQS console Amazon
Connectez-vous à la SQS console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/sqs/
. -
Cochez la case correspondant à la file d'attente que ARN vous souhaitez obtenir.
-
Dans la section Détails, copiez la ARN valeur afin de pouvoir l'utiliser pour vous abonner à la SNS rubrique Amazon.
Pour accéder au sujetARN, vous pouvez utiliser la SNS console Amazon, la sns-get-topic-attributes
commande ou l'GetQueueAttributes
APIaction.
Pour accéder au sujet ARN depuis la SNS console Amazon
Connectez-vous à la SNSconsole Amazon
. -
Dans le panneau de navigation, choisissez le sujet que ARN vous souhaitez consulter.
-
Dans la section Détails, copiez la ARNvaleur afin de pouvoir l'utiliser pour autoriser le SNS sujet Amazon à envoyer des messages à la file d'attente.
Étape 2 : autoriser le SNS sujet Amazon à envoyer des messages à la SQS file d'attente Amazon
Pour qu'un SNS sujet Amazon puisse envoyer des messages à une file d'attente, vous devez définir une politique sur la file d'attente qui autorise le SNS sujet Amazon à effectuer l'sqs:SendMessage
action.
Avant d'abonner une file d'attente à une rubrique, vous avez besoin d'une rubrique et d'une file d'attente. Si vous n'avez pas encore créé de rubrique ou de file d'attente, faites-le maintenant. Pour plus d'informations, consultez Création d'une rubrique et Création d'une file d'attente dans le Guide du développeur Amazon Simple Queue Service.
Pour définir une politique concernant une file d'attente, vous pouvez utiliser la SQS console Amazon ou l'SetQueueAttributesAPIaction. Avant de commencer, assurez-vous de disposer du ARN sujet que vous souhaitez autoriser à envoyer des messages à la file d'attente. Si vous abonnez une file d'attente à plusieurs rubriques, votre stratégie doit contenir un élément Statement
pour chaque rubrique.
Pour définir une SendMessage politique sur une file d'attente à l'aide de la SQS console Amazon
Connectez-vous à la SQS console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/sqs/
. -
Cochez la case de la file d'attente dont vous souhaitez définir la politique, choisissez l'onglet Politique d'accès, puis choisissez Modifier.
-
Dans la Politique d'accès, définissez qui peut accéder à votre file d'attente.
-
Ajoutez une condition qui autorise l'action pour la rubrique.
-
Configurez
Principal
comme le SNS service Amazon, comme indiqué dans l'exemple ci-dessous. -
Utiliser les clés de condition globales
aws:SourceArn
ouaws:SourceAccount
pour se protéger contre le scénario Député confus. Pour utiliser ces clés de condition, définissez la valeur sur le ARN de votre sujet. Si votre file d'attente est abonnée à plusieurs rubriques, vous pouvez utiliseraws:SourceAccount
à la place.
Par exemple, la politique suivante permet d' MyTopic envoyer des messages à MyQueue.
{ "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-east-2:123456789012:MyQueue", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:sns:us-east-2:123456789012:MyTopic" } } } ] }
-
Étape 3 : inscrire la file d'attente à la SNS rubrique Amazon
Pour envoyer des messages à une file d'attente via un sujet, vous devez inscrire la file d'attente au SNS sujet Amazon. Vous spécifiez la file d'attente par sonARN. Pour vous abonner à un sujet, vous pouvez utiliser la SNS console Amazon, la sns-subscribe
CLI commande ou l'Subscribe
APIaction. Avant de commencer, assurez-vous de disposer de la ARN file d'attente à laquelle vous souhaitez vous abonner.
Connectez-vous à la SNSconsole Amazon
. -
Dans le panneau de navigation, choisissez Rubriques.
-
Sur la page Rubriques, choisissez une rubrique.
-
Sur le
MyTopic
sur la page Abonnements, choisissez Créer un abonnement. -
Sur la page Créer un abonnement, dans la section Détails, procédez comme suit :
-
Vérifiez le sujet ARN.
-
Pour Protocol, choisissez Amazon SQS.
-
Pour Endpoint, entrez le nom ARN d'une SQS file d'attente Amazon.
-
Choisissez Create Subscription.
Lorsque l'abonnement est confirmé, le champ ID de l'abonnement de votre nouvel abonnement affiche son ID d'abonnement. Si le propriétaire de la file d'attente crée l'abonnement, ce dernier est automatiquement confirmé et l'abonnement doit être actif presque immédiatement.
En général, vous abonnez votre propre file d'attente à votre propre rubrique dans votre propre compte. Cependant, vous pouvez également abonner une file d'attente d'un autre compte à votre rubrique. Si l'utilisateur qui crée l'abonnement n'est pas le propriétaire de la file d'attente (par exemple, si un utilisateur du compte A abonne une file d'attente du compte B à une rubrique du compte A), l'abonnement doit être confirmé. Pour plus d'informations sur l'abonnement d'une file d'attente d'un autre compte et la confirmation de l'abonnement, consultez la page Envoyer SNS des messages Amazon à une SQS file d'attente Amazon dans un autre compte.
-
Étape 4 : autoriser les utilisateurs à accéder aux actions appropriées sur la rubrique et la file d'attente
Vous devez utiliser AWS Identity and Access Management (IAM) pour autoriser uniquement les utilisateurs appropriés à publier sur le SNS sujet Amazon et à lire/supprimer des messages de la file d'attente AmazonSQS. Pour plus d'informations sur le contrôle des actions relatives aux sujets et aux files d'attente pour IAM les utilisateursUtilisation de politiques basées sur l'identité avec Amazon SNS, consultez la section « Gestion des identités et des accès dans Amazon » SQS dans le manuel Amazon Simple Queue Service Developer Guide.
Il existe deux façons de contrôler l'accès à une rubrique ou une file d'attente :
-
Ajoutez une politique à un IAM utilisateur ou à un groupe. La façon la plus simple d'accorder à des utilisateurs des autorisations d'accès à des rubriques ou des files d'attente consiste à créer un groupe et à lui ajouter la politique appropriée, puis à ajouter des utilisateurs à ce groupe. Il est beaucoup plus facile d'ajouter ou de supprimer des utilisateurs dans un groupe que de suivre les politiques que vous définissez pour des utilisateurs individuels.
-
Ajoutez une politique à une rubrique ou une file d'attente. Si vous souhaitez autoriser un autre AWS compte à accéder à un sujet ou à une file d'attente, la seule façon de le faire est d'ajouter une politique dont le principal est la personne à laquelle Compte AWS vous souhaitez accorder des autorisations.
Vous devez utiliser la première méthode dans la plupart des cas (appliquer des politiques à des groupes et gérer les autorisations accordées aux utilisateurs en ajoutant ou supprimant les utilisateurs appropriés dans les groupes). Si vous avez besoin d'accorder des autorisations à un utilisateur d'un autre compte, vous devez utiliser la seconde méthode.
Ajouter une politique à un IAM utilisateur ou à un groupe
Si vous ajoutiez la politique suivante à un IAM utilisateur ou à un groupe, vous autoriseriez cet utilisateur ou les membres de ce groupe à effectuer l'sns:Publish
action sur le sujet MyTopic.
{ "Statement": [ { "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:us-east-2:123456789012:MyTopic" } ] }
Si vous ajoutiez la politique suivante à un IAM utilisateur ou à un groupe, vous autoriseriez cet utilisateur ou les membres de ce groupe à effectuer les sqs:DeleteMessage
actions sqs:ReceiveMessage
et sur les files d'attente MyQueue 1 et MyQueue 2.
{ "Statement": [ { "Effect": "Allow", "Action": [ "sqs:ReceiveMessage", "sqs:DeleteMessage" ], "Resource": [ "arn:aws:sqs:us-east-2:123456789012:MyQueue1", "arn:aws:sqs:us-east-2:123456789012:MyQueue2" ] } ] }
Ajout d'une politique à une rubrique ou une file d'attente
Les exemples de politiques suivants montrent comment accorder à un autre compte des autorisations d'accès à une rubrique et une file d'attente.
Note
Lorsque vous accordez à une autre personne l' Compte AWS accès à une ressource de votre compte, vous IAM accordez également des autorisations d'accès de niveau administrateur (accès générique) à cette ressource. Tous les autres IAM utilisateurs de l'autre compte se voient automatiquement refuser l'accès à votre ressource. Si vous souhaitez accorder à des IAM utilisateurs spécifiques de cette ressource un Compte AWS accès à votre ressource, le compte ou un IAM utilisateur disposant d'un accès de niveau administrateur doit déléguer les autorisations pour la ressource à ces utilisateurs. IAM Pour plus d'informations sur la délégation entre comptes, consultez la section Activation de l'accès entre comptes dans le guide d'utilisation IAM.
Si vous avez ajouté la politique suivante à un sujet MyTopic du compte 123456789012, vous autorisez le compte 111122223333 à effectuer l'action sur ce sujet. sns:Publish
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:us-east-2:123456789012:MyTopic" } ] }
Si vous avez ajouté la politique suivante à une file d'attente MyQueue du compte 123456789012, vous autoriseriez le compte 111122223333 à effectuer les actions et sur cette file d'attente. sqs:ReceiveMessage
sqs:DeleteMessage
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": [ "sqs:DeleteMessage", "sqs:ReceiveMessage" ], "Resource": [ "arn:aws:sqs:us-east-2:123456789012:MyQueue" ] } ] }
Étape 5 : Tester les abonnements de la file d'attente à une rubrique
Vous pouvez tester les abonnements d'une file d'attente à une rubrique en effectuant une publication dans la rubrique et en affichant le message que la rubrique envoie à la file d'attente.
Pour publier sur un sujet à l'aide de la SNS console Amazon
-
À l'aide des informations d'identification de l'IAMutilisateur Compte AWS ou de l'utilisateur autorisé à publier sur le sujet, connectez-vous à la SNS console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/sns/
. -
Dans le panneau de navigation, sélectionnez la rubrique et choisissez Publier dans la rubrique.
-
Dans la zone Sujet, entrez un objet (par exemple,
Testing publish to queue
). Dans la zone Message, saisissez du texte (par exemple,Hello world!
) et choisissez Publier un message. Le message suivant s'affiche : Votre message a été publié.
Pour afficher le message du sujet à l'aide de la SQS console Amazon
-
À l'aide des informations d'identification de l'IAMutilisateur Compte AWS ou de l'utilisateur autorisé à consulter les messages de la file d'attente, connectez-vous à la SQS console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/sqs/
. -
Choisissez une file d'attente abonnée à la rubrique.
-
Choisissez Send and receive messages (Envoyer et recevoir des messages), puis Poll for messages (Rechercher des messages). Un message de type Notification s'affiche.
-
Dans la colonne Corps, choisissez Plus de détails. La zone Détails du message contient un JSON document contenant l'objet et le message que vous avez publié dans le sujet. Le message ressemble au JSON document suivant.
{ "Type" : "Notification", "MessageId" : "63a3f6b6-d533-4a47-aef9-fcf5cf758c76", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Subject" : "Testing publish to subscribed queues", "Message" : "Hello world!", "Timestamp" : "2012-03-29T05:12:16.901Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEnTrFPa3...", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem", "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:c7fe3a54-ab0e-4ec2-88e0-db410a0f2bee" }
-
Choisissez Close (Fermer). Vous venez d'effectuer une publication dans une rubrique qui envoie des messages de notification à une file d'attente.