Comment puis-je configurer un point de terminaison Amazon SQS entre comptes en fonction de la rubrique Amazon SNS ?

Lecture de 6 minute(s)
0

Je souhaite abonner la file d'attente Amazon SQS du compte A à la rubrique Amazon SNS du compte B.

Brève description

Vous pouvez créer un abonnement depuis la rubrique Amazon Simple Notification Service (Amazon SNS) en tant que propriétaire de la rubrique ou depuis la file d'attente Amazon Simple Queue Service (Amazon SQS) en tant que propriétaire de la file d'attente. Dans ce dernier cas, la file d'attente Amazon SQS doit disposer des autorisations appropriées pour pouvoir envoyer des messages à la rubrique Amazon SNS.

Résolution

Prérequis

Assurez-vous que la stratégie d'accès aux rubriques SNS du compte B dispose des autorisations appropriées. La file d'attente SQS du compte A pourra ainsi s'abonner à la rubrique SNS.

Créer un abonnement en tant que propriétaire de file d'attente

Si vous êtes le propriétaire de la file d'attente, vous devez suivre ces étapes pour abonner votre file d'attente SQS du compte A à la rubrique SNS du compte B :

  1. Connectez-vous à la console de gestion AWS, puis accédez à la console Amazon SQS dans le compte A.
  2. Choisissez Files d'attente, puis sélectionnez votre file d'attente SQS.
  3. Dans la section Abonnements SNS, sélectionnez la rubrique S'abonner à la rubrique Amazon SNS.
  4. Sélectionnez Choisir une rubrique dans la liste déroulante. Choisissez ensuite Saisir l'ARN de la rubrique Amazon SNS.
  5. Renseignez l'ARN de votre rubrique SNS dans le champ de texte Une rubrique Amazon SNS qui peut envoyer des notifications à une file d'attente Amazon SQS.
  6. Sélectionnez Enregistrer.
  7. Connectez-vous à la console de gestion AWS, puis accédez à la console Amazon SNS dans le compte B.
  8. Choisissez Rubriques, puis sélectionnez votre rubrique SNS.
  9. Consultez la section Abonnements pour vérifier que l'abonnement est bien confirmé pour la rubrique SNS du compte B.

Créer un abonnement en tant que propriétaire de rubrique

Si vous êtes le propriétaire de la rubrique, suivez ces étapes pour abonner votre file d'attente SQS dans un autre compte :

Modifier la stratégie d'accès au compte B

  1. Connectez-vous à la console de gestion AWS, puis accédez à la console Amazon SNS dans le compte B.
  2. Choisissez Rubriques, puis sélectionnez votre rubrique SNS.
  3. Sélectionnez Modifier en haut à droite de la page.
  4. Développez la section Stratégie d'accès – facultatif. Copiez et collez la stratégie d'accès suivante dans la section de l'éditeur JSON (pensez à remplacer le compte AWS et l'ARN de la rubrique SNS par vos propres valeurs). Choisissez ensuite Enregistrer les modifications en bas de la page.
{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "111122223333"
      },
      "Action": "sns:Subscribe",
      "Resource": "arn:aws:sns:us-east-2:123456789012:MyTopic"
    }
  ]
}

Modification de la file d'attente SQS dans le compte A

  1. Connectez-vous à la console de gestion AWS, puis accédez à la console Amazon SQS dans le compte A.
  2. Choisissez Files d'attente, puis sélectionnez votre file d'attente SQS.
  3. Sélectionnez Modifier en haut à droite de la page.
  4. Accédez à la section Stratégie d'accès. Copiez et collez la stratégie d'accès suivante dans l'éditeur JSON (pensez à remplacer l'ARN de la file d'attente SQS et l'ARN de la rubrique SNS par vos propres valeurs).
{
  "Sid": "Stmt1234",
  "Effect": "Allow",
  "Principal": "*",
  "Action": "sqs:SendMessage",
  "Resource": "arn:aws:sqs:us-west-2:111111111111:QueueName",
  "Condition": {
    "ArnEquals": {
      "aws:SourceArn": "arn:aws:sns:us-west-2:555555555555:TopicName"
    }
  }
}

S'abonner à la file d'attente SQS à partir de la rubrique SNS du compte B

Connectez-vous à la console de gestion AWS, puis accédez à la console Amazon SNS dans le compte B. Choisissez Rubriques, puis sélectionnez votre rubrique SNS.

  1. Sous Abonnements, sélectionnez Créer un abonnement.
  2. Choisissez la liste déroulante Protocole, puis sélectionnez Amazon SQS.
  3. Sélectionnez ensuite Créer un abonnement.
  4. Connectez-vous à la console de gestion AWS, puis accédez à la console Amazon SQS dans le compte A. Choisissez Files d'attente, puis sélectionnez votre file d'attente SQS.
  5. Choisissez Envoyer et recevoir des messages en haut à droite de la page.
  6. Sélectionnez Rechercher des messages. Un message d'Amazon SNS apparaît dans la section Messages.
  7. Sélectionnez l'ID du message. Localisez SubscribeURL, puis copiez l'URL entre guillemets.
  8. Collez ce lien URL dans votre navigateur Web.
  9. Connectez-vous à la console de gestion AWS, puis accédez à la console Amazon SNS dans le compte B. Choisissez Rubriques, puis sélectionnez votre rubrique SNS.
  10. Consultez le Statut de l'abonnement sous Abonnements pour vérifier que l'abonnement est bien confirmé.

Conseils pour la résolution de problèmes

Mon abonnement reste en attente dans la console SNS lorsque je crée mon abonnement dans la console Amazon SNS.

Procédez comme suit pour résoudre ce problème :

  • Supprimez votre abonnement, puis recommencez le processus à partir de l'étape 9 ci-dessus.
  • Interrogez votre file d'attente SQS en utilisant la commande suivante depuis AWS CLI pour récupérer l'URL SubscriptionURL :
aws sqs receive-message --queue-url https**:**//sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --attribute-names All --message-attribute-names All --max-number-of-messages 10

Remarque : si des erreurs surviennent lors de l'exécution des commandes CLI, vérifiez que vous utilisez bien la version la plus récente d'AWS CLI. Copiez et collez cette URL dans votre navigateur pour confirmer l'abonnement. Souvenez-vous de remplacer l'URL de la file d'attente par la vôtre.

Lorsque je copie et colle ma stratégie d'accès aux rubriques SNS, je reçois le message d'erreur « Impossible de définir la stratégie d'accès aux rubriques.
Code d'erreur : InvalidParameter – Message d'erreur : Une erreur s'est produite lors de la définition de la stratégie d'accès aux attributs. Paramètre non valide : Erreur de stratégie : null. »

Procédez comme suit pour résoudre ce problème :

  • Copiez et collez la stratégie d'accès dans l'outil de validation JSON pour vérifier que la syntaxe de votre stratégie est correcte.
  • Passez en revue votre stratégie d'accès pour vous assurer qu'elle ne contient pas de déclaration dupliquée. Vérifiez que votre premier ID de déclaration est bien suivi d'une virgule.

Bonnes pratiques

Authentifiez votre abonnement SNS à votre file d'attente SQS. Avec cette configuration, seuls le propriétaire de la rubrique et le propriétaire de l'abonnement peuvent annuler l'abonnement de la file d'attente SQS à la rubrique SNS.

Informations connexes

Envoi de messages Amazon SNS à une file d'attente Amazon SQS d'un autre compte

Autoriser la publication des notifications d'événements Amazon Simple Storage Service (Amazon S3) dans une rubrique

Comment puis-je résoudre les erreurs d'autorisation lors de l'ajout d'abonnés à une rubrique Amazon SNS ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 10 mois