Ir para o conteúdo

Por que não consigo receber notificações por e-mail do meu tópico do Amazon SNS?

5 minuto de leitura
0

Não estou recebendo notificações por e-mail do meu tópico do Amazon Simple Notification Service (Amazon SNS).

Resolução

Verifique se o status do seu endpoint de e-mail está confirmado

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Para verificar o status do seu endpoint de e-mail, use o console do Amazon SNS ou a AWS CLI.

Console Amazon SNS

Conclua as seguintes etapas:

  1. Abra o console do Amazon SNS.
  2. No painel de navegação, escolha Tópicos e, em seguida, escolha seu tópico.
  3. Na seção Assinaturas, encontre seu endpoint de e-mail na coluna Endpoint.
  4. Na coluna Status, verifique se o status está Confirmado.
  5. Se o status não for Confirmado, confirme manualmente a assinatura no console do Amazon SNS. Se você não receber o e-mail de confirmação, conclua as etapas nas seções a seguir.
  6. Para solicitar novamente o e-mail de confirmação, selecione a assinatura com seu endpoint e escolha Solicitar confirmação.

AWS CLI

Execute o comando list-subscriptions-by-topic:

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

Observação: Substitua arn:aws:sns:us-west-2:123456789012:your-topic pelo nome do recurso da Amazon (ARN) do seu tópico do Amazon SNS.

Exemplo de saída:

{
    "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"
        }
    ]
}

Observação: se nenhum endpoint de e-mail estiver na coluna Endpoint, o endpoint será excluído.

Verifique se os endereços de e-mail podem receber e-mails de contatos externos

Para verificar se o problema é somente com o Amazon SNS, envie um e-mail de teste de um provedor externo para seu endereço de e-mail de destino. O e-mail de teste ajuda você a determinar que tipo de tráfego é permitido de fontes externas. As caixas de correio dentro de uma organização podem estar limitadas ao tráfego interno.

Se a caixa de correio receber o e-mail de teste, conclua as etapas na seção a seguir.

Como verificar se há um firewall, filtro de spam, bloqueadores ou política de filtro

Entre em contato com o administrador de e-mail para verificar se um firewall ou filtro de spam está bloqueando o endereço no-reply@sns.amazonaws.com. É uma prática recomendada adicionar o endereço no-reply@sns.amazonaws.com a sua lista de permissões de caixa de correio. Para obter mais informações, consulte Os assinantes precisam definir especificamente suas configurações de e-mail para receber notificações do Amazon SNS? na seção Transportes das perguntas frequentes do Amazon SNS.

Verifique as regras da caixa de correio para ver se há uma ação de negação explícita que bloqueia seu e-mail de tópico do SNS. Além disso, verifique se os e-mails são roteados para pastas específicas na caixa de correio.

Configure uma autenticação para cancelar a assinatura para que os usuários não cancelem a assinatura de todos os destinatários do seu e-mail de tópico do SNS. Você deve ter as permissões necessárias para cancelar a assinatura do seu endpoint de e-mail. É possível usar o console do Amazon SNS ou a AWS CLI para confirmar a assinatura com um usuário autenticado.

Para verificar se há uma política de filtro na assinatura, conclua as seguintes etapas:

  1. Abra o console do Amazon SNS.
  2. No painel de navegação, escolha Subscriptions (Assinaturas).
  3. Na caixa de pesquisa, insira o endereço de e-mail ou o tópico do SNS no qual o endpoint de e-mail está inscrito e selecione sua assinatura.
  4. Para seu endpoint de e-mail, escolha a guia Política de filtro de assinatura.
  5. Em Política de filtro de assinatura, procure uma política de filtro.

Quando uma mensagem é enviada para o endpoint, o Amazon SNS compara os atributos da mensagem com os atributos na política de filtro. Se os atributos da mensagem e os atributos da política de filtro não corresponderem, o endpoint de e-mail não receberá a mensagem.

Confirme se as configurações de chave padrão do AWS KMS não estão em uso

O Amazon SNS permite criptografia em repouso para tópicos. Se você usar a chave padrão do AWS Key Management Service (AWS KMS) para criptografia, os serviços da AWS não poderão publicar mensagens no tópico do SNS. A política de chave do AWS KMS para o Amazon SNS não permite que os serviços da AWS realizem chamadas de API kms:Decrypt e kms:GenerateDataKey. Como a AWS gerencia a chave, não é possível editar manualmente a política.

Se você criptografar seu tópico do Amazon SNS, use uma chave gerenciada pelo cliente. A seguinte política de chave gerenciada pelo cliente inclui as permissões para executar kms:Decrypt e kms:GenerateDataKey:

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

Para obter mais informações, consulte Configuração de permissões do AWS KMS.