Salta al contenuto

Perché non riesco a ricevere notifiche e-mail dal mio topic Amazon SNS?

4 minuti di lettura
0

Non ricevo notifiche e-mail dal mio topic Amazon Simple Notification Service (Amazon SNS).

Risoluzione

Verifica che lo stato dell'endpoint e-mail sia Confermato

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Per verificare lo stato dell'endpoint e-mail, utilizza la console Amazon SNS o AWS CLI.

Console Amazon SNS

Completa i seguenti passaggi:

  1. Apri la console Amazon SNS.
  2. Nel pannello di navigazione, seleziona Argomenti, quindi seleziona il topic desiderato.
  3. Nella sezione Sottoscrizioni della pagina del topic, individua l’endpoint e-mail nella colonna Endpoint.
  4. Nella colonna Stato, controlla se lo stato è Confermato.
  5. Se lo stato non è Confermato, verifica manualmente la sottoscrizione sulla console Amazon SNS. Se non ricevi l'e-mail di conferma, completa i passaggi nelle sezioni seguenti.
  6. Per richiedere nuovamente l'e-mail di conferma, seleziona la sottoscrizione dell'endpoint, quindi scegli Richiedi conferma.

AWS CLI

Esegui il comando list-subscriptions-by-topic:

aws sns list-subscriptions-by-topic \
    --topic-arn arn:aws:sns:us-west-2:123456789012:your-topic

Nota: sostituisci arn:aws:sns:us-west-2:123456789012:your-topic con il nome della risorsa Amazon (ARN) del tuo topic Amazon SNS.

Esempio di output:

{
    "Subscriptions": [
        {
            "Owner": "123456789012",
            "Endpoint": "my-email@example.com",
            "Protocol": "email",
            "TopicArn": "arn:aws:sns:us-west-2:123456789012:your-topic",
            "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f"
        }
    ]
}

Nota: se nella colonna Endpoint non è presente alcun endpoint e-mail, l'endpoint è stato eliminato.

Verifica che gli indirizzi e-mail possano ricevere e-mail da contatti esterni

Per verificare se il problema riguarda solo Amazon SNS, invia un'e-mail di prova da un provider esterno all'indirizzo e-mail di destinazione. L'e-mail di prova aiuta a determinare il tipo di traffico consentito da fonti esterne. Le caselle di posta all'interno di un'organizzazione potrebbero essere limitate al traffico interno.

Se la casella di posta riceve l'e-mail di prova, completa i passaggi nella sezione seguente.

Verifica la presenza di firewall, filtri antispam, dispositivi di blocco o policy di filtro

Contatta l'amministratore di posta elettronica per verificare se un firewall o un filtro antispam sta bloccando l'indirizzo no-reply@sns.amazonaws.com. È consigliabile aggiungere l'indirizzo no-reply@sns.amazonaws.com all'elenco degli indirizzi consentiti della casella di posta. Per ulteriori informazioni, consulta I sottoscrittori devono configurare in modo specifico le impostazioni e-mail per ricevere le notifiche da Amazon SNS? nella sezione Protocolli di trasporto delle Domande frequenti su Amazon SNS.

Controlla le regole della casella di posta per un'azione Deny esplicita che blocca l'e-mail del topic SNS. Puoi anche controllare se i messaggi vengono indirizzati a cartelle specifiche della casella di posta.

Imposta un'autenticazione per annullare la sottoscrizione in modo che gli utenti non annullino la sottoscrizione a tutti i destinatari dell'e-mail del topic SNS. Devi avere le autorizzazioni necessarie per annullare la sottoscrizione dell'endpoint e-mail. Puoi utilizzare la console Amazon SNS o AWS CLI per verificare la sottoscrizione di un utente autenticato.

Per verificare la presenza di una policy di filtro sulla sottoscrizione, completa i seguenti passaggi:

  1. Apri la console Amazon SNS.
  2. Nel pannello di navigazione, scegli Sottoscrizioni.
  3. Nella casella di ricerca, inserisci l'indirizzo e-mail o il topic SNS sottoscritto dall'endpoint e-mail e seleziona la sottoscrizione.
  4. Per l'endpoint e-mail, scegli la scheda Policy di filtro per le sottoscrizioni.
  5. In Policy di filtro per le sottoscrizioni, cerca una policy di filtro.

Quando un messaggio viene inviato all'endpoint, Amazon SNS confronta gli attributi del messaggio con gli attributi della policy di filtro. Se gli attributi del messaggio e gli attributi della policy di filtro non corrispondono, l'endpoint e-mail non riceve il messaggio.

Verifica che non siano in uso le impostazioni della chiave AWS KMS predefinita

Amazon SNS consente la crittografia dei dati a riposo per i topic. Se utilizzi la chiave predefinita del Servizio AWS di gestione delle chiavi (AWS KMS) per la crittografia, i servizi AWS non possono pubblicare messaggi sul topic SNS. La policy della chiave AWS KMS per Amazon SNS non consente ai servizi AWS di eseguire chiamate API kms:Decrypt e kms:GenerateDataKey. Poiché AWS gestisce la chiave, non puoi modificare manualmente la policy.

Se crittografi il topic Amazon SNS, utilizza piuttosto una chiave gestita dal cliente. La seguente policy della chiave gestita dal cliente include le autorizzazioni per eseguire kms:Decrypt e kms:GenerateDataKey:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "service.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey*",
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}

Per ulteriori informazioni, consulta Configurazione delle autorizzazioni per AWS KMS.