Come posso risolvere un “authorization error” (errore di autorizzazione) quando tento di visualizzare o modificare gli attributi di una sottoscrizione SQS multi-account sulla consolle Amazon SNS?

3 minuti di lettura
0

Ho sottoscritto la mia coda Amazon Simple Queue Service (Amazon SQS) a un argomento Amazon Simple Notification Service (Amazon SNS) in un altro account AWS. Quando visualizzo o modifico gli attributi della mia sottoscrizione multi-account dalla consolle Amazon SNS, ricevo un “authorization error” (errore di autorizzazione) che devo risolvere.

Breve descrizione

Se crei una sottoscrizione a un argomento SNS per una coda SQS da un account che non possiede l'argomento, l'account che possiede la coda SQS possiede la sottoscrizione. Se successivamente visualizzi o modifichi gli attributi di sottoscrizione SNS nell'account che ha creato l'argomento SNS, viene visualizzato un errore di autorizzazione.

Nota: Le autorizzazioni relative alle sottoscrizioni per la visualizzazione e la modifica non possono essere incluse nelle azioni relative alla politica degli argomenti di SNS. Utilizza invece le seguenti soluzioni.

Risoluzione

Utilizzo della consolle AWS

  1. Apri la consolle Amazon SNS nell'account proprietario dell'argomento SNS.
  2. Nel riquadro di navigazione, scegli Topics (Argomenti).
  3. Scegli il nome dell'argomento. Quindi, dalla scheda Subscriptions (Sottoscrizioni), copia il Subscription ID (ID della sottoscrizione) della coda SQS.
  4. Apri la console Amazon SNS nell'account proprietario della coda SQS.
  5. Nell'opzione del menu Subscriptions (Sottoscrizioni), scegli il Subscription ID (ID della sottoscrizione) che hai copiato nel passaggio 3.
  6. Visualizza e modifica gli attributi della sottoscrizione in base alle necessità.

Utilizzo di GetSubscriptionAttributes

Nota: Se ricevi errori durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione dell'interfaccia della linea di comando AWS più recente.

Visualizza gli attributi della sottoscrizione utilizzando GetSubscriptionAttributes nell'account utilizzato per creare la sottoscrizione utilizzando l’Interfaccia della linea di comando AWS (AWS CLI) o l'SDK. Per eseguire questo comando, l'utente o il ruolo IAM deve disporre delle autorizzazioni per le azioni SNS SetSubscriptionAttributes e GetSubscriptionAttributes.

L'esempio seguente utilizza GetSubscriptionAttributes dall’interfaccia della linea di comando AWS, utilizzando SubscriptionArn come parametro di richiesta. Per recuperare SubscriptionARN, utilizza 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"
   }
}

Eliminare e ricreare la sottoscrizione

Se desideri che l'account AWS proprietario dell'argomento SNS controlli gli attributi della sottoscrizione dell'argomento SNS:

  1. Elimina la sottoscrizione esistente.
  2. Crea la stessa sottoscrizione dall'account proprietario dell'argomento SNS.

L'account AWS proprietario dell'argomento SNS è ora il proprietario della risorsa di sottoscrizione creata.

Informazioni correlate

Come posso ricreare una sottoscrizione a un argomento Amazon SNS «eliminato» per una coda Amazon SQS in un altro account AWS?

Come posso risolvere gli errori di autorizzazione quando tento di aggiungere sottoscrizioni a un argomento Amazon SNS?

Come posso risolvere gli errori HTTP 400 «AccessDenidException» da Amazon SNS?

Come posso fare in modo che la mia sottoscrizione Amazon SQS riceva correttamente una notifica dal mio argomento Amazon SNS?

Perché ricevo un errore di autorizzazione quando tento di sottoscrivere la mia funzione Lambda al mio argomento Amazon SNS?