Comment résoudre une « erreur d'autorisation » lorsque je tente d'afficher ou de modifier les attributs d'un abonnement SQS multi-comptes sur la console Amazon SNS ?

Dernière mise à jour : 29/07/2022

J’ai inscrit ma file d'attente Amazon Simple Queue Service (Amazon SQS) à une rubrique Amazon Simple Notification Service (Amazon SNS) d'un autre compte AWS. Lorsque je consulte ou modifie les attributs de mon abonnement multi-comptes à partir de la console Amazon SNS, je reçois une « erreur d'autorisation ». Comment résoudre ce problème ?

Brève description

Si vous créez un abonnement à une rubrique SNS pour une file d'attente SQS à partir d'un compte qui n'est pas propriétaire de la rubrique, le compte propriétaire de la file d'attente SQS est propriétaire de l'abonnement. Si vous affichez ou modifiez ensuite les attributs d'abonnement SNS dans le compte qui a créé la rubrique SNS, vous obtenez une erreur d'autorisation.

Remarque : les autorisations d'affichage et de modification liées à l'abonnement ne peuvent pas être incluses dans les actions de politique de la rubrique SNS. Utilisez plutôt les solutions suivantes.

Solution

À partir de la console AWS

  1. Ouvrez la console Amazon SNS dans le compte auquel appartient la rubrique SNS.
  2. Dans le volet de navigation, choisissez Rubriques
  3. Sélectionnez le nom de la rubrique. Ensuite, dans l'onglet Abonnements, copiez l'ID de l'abonnement en file d'attente SQS.
  4. Ouvrez la console Amazon SNS dans le compte propriétaire de la file d'attente SQS.
  5. Dans l'option de menu Subscriptions (Abonnements), choisissez le Subscription ID (ID d'abonnement) que vous avez copié à l'étape 3.
  6. Consultez et modifiez les attributs d'abonnement selon vos besoins.

Utilisation de GetSubscriptionAttributes

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de la ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente de l'AWS CLI.

Affichez les attributs d'abonnement en utilisant GetSubscriptionAttributes dans le compte qui a été utilisé pour créer l'abonnement à l'aide de l'interface de la ligne de commande AWS (AWS CLI) ou du SDK. Pour exécuter cette commande, le rôle ou l'utilisateur IAM doit disposer des autorisations pour les actions SNS SetSubscriptionAttributes et GetSubscriptionAttributes.

L'exemple suivant utilise GetSubscriptionAttributes de l'AWS CLI, en utilisant SubscriptionArn comme paramètre de demande. Pour récupérer SubscriptionArn, utilisez ListSubscriptionsByTopic.

aws sns get-subscription-attributes --subscription-arn arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS:53XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
{
  "Attributes": {
    "Owner": "9876543210",
    "RawMessageDelivery": "false",
    "TopicArn": "arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS",
    "Endpoint": "example@amazon.com",
    "Protocol": "email",
    "PendingConfirmation": "false",
    "ConfirmationWasAuthenticated": "false",
    "SubscriptionArn": "arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS:53XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
   }
}

Supprimer et recréer l'abonnement

Si vous souhaitez que le compte AWS propriétaire de la rubrique SNS contrôle les attributs de l'abonnement à la rubrique SNS :

  1. Supprimez l'abonnement existant.
  2. Créez le même abonnement à partir du compte propriétaire de la rubrique SNS.

Le compte AWS propriétaire de la rubrique SNS est désormais propriétaire de la ressource d'abonnement créée.