Eu inscrevi um endereço de e-mail no meu tópico do Amazon Simple Notification Service (Amazon SNS). Em seguida, recebi um e-mail de confirmação de que cancelei com êxito a inscrição do meu tópico do SNS que não autorizei.
Breve descrição
Ao publicar mensagens em um tópico do Amazon SNS para assinantes por e-mail, a mensagem recebida por eles inclui um link para descadastramento. A mensagem diz o seguinte: “Se você quiser parar de receber notificações deste tópico, clique ou acesse o link abaixo para cancelar a inscrição”.
As ações de cancelamento de inscrição podem ocorrer de forma não intencional em sistemas automatizados, como verificações de segurança de e-mail ou filtros de spam. Esses sistemas automatizados abrem links em e-mails recebidos para inspeção e podem ativar não intencionalmente o link de cancelamento de inscrição para o assinante de e-mail.
Ações de cancelamento de inscrição também podem ocorrer se um membro assinante por e-mail na lista de transmissão de um tópico do Amazon SNS selecionar o link de cancelamento de inscrição. Essa ação cancela a inscrição do endereço de e-mail da lista de transmissão. Em seguida, todos na lista de transmissão recebem uma mensagem de “Confirmação de cancelamento”.
Para evitar cancelamentos não intencionais ou não autorizados, crie uma inscrição que exija autenticação para cancelá-la. Esse requisito de autenticação de inscrição permite que somente o proprietário do tópico e o proprietário da inscrição a cancelem. Todos os outros assinantes que selecionarem o link receberão a seguinte mensagem:
“Sua inscrição não pôde ser removida devido a um erro. Se você quiser cancelar a inscrição, mas não tiver credenciais da AWS ou tiver outras dúvidas sobre o Amazon SNS, entre em contato com a Amazon em sns-question@amazon.com.”
Resolução
Para substituir uma inscrição de e-mail existente por uma inscrição que exija autenticação, cancele a inscrição existente. Depois, use o console do Amazon SNS ou a AWS Command Line Interface (AWS CLI) para criar uma nova inscrição de e-mail.
Importante: Você precisa ter acesso ao e-mail de confirmação da inscrição para confirmar uma nova e concluir a configuração. Se você inscrever uma lista de transmissão em seu tópico, adicione primeiro o seu endereço de e-mail a essa lista de transmissão para confirmar a inscrição.
Usar o console do Amazon SNS para criar uma inscrição de e-mail que exija autenticação para cancelá-la
Realize as seguintes etapas:
- Abra o console do Amazon SNS e depois inscreva seu endereço de e-mail em seu tópico.
- Em seu e-mail, encontre a mensagem de confirmação de inscrição do AWS Notifications. O remetente geralmente é no-reply@sns.amazonaws.com.
Importante: Não utilize o link no e-mail de confirmação de inscrição para confirmá-la.
- Copie o URL do link Confirmar inscrição.
- No painel de navegação do console, escolha Assinaturas.
- Na página Assinaturas, selecione a que mostra Confirmação pendente e, em seguida, escolha Confirmar inscrição.
- Na caixa de diálogo Confirmar inscrição, cole o URL da confirmação de inscrição que foi copiado na etapa 3.
- Escolha Confirmar inscrição.
Usar a AWS CLI para criar uma inscrição de e-mail que exija autenticação para cancelá-la
Realize as seguintes etapas:
Observação: Se você receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
- Para obter uma lista dos tópicos do Amazon SNS, execute o seguinte comando list-topics:
aws sns list-topics --region us-east-1
Observação: Substitua us-east-1 pela região da AWS do seu tópico.
- Na saída, copie o valor do nome do recurso da Amazon (ARN) do tópico em que você pretende se inscrever. O valor do ARN do tópico é semelhante ao seguinte: arn:aws:sns:us-east-1:012345678901:my-topic
- Para inscrever um endpoint em um tópico do Amazon SNS, execute o seguinte comando subscribe:
aws sns subscribe --topic-arn arn:aws:sns:us-east-1:012345678901:my-topic --protocol email --notification-endpoint test@amazon.com --region us-east-1
Observação: Substitua topic-arn pelo ARN do tópico que foi copiado na etapa 2. Substitua notification-endpoint pelo endereço de e-mail que deseja inscrever em seu tópico. Substitua us-east-1 pela região do seu tópico.
- Copie o URL do link Confirmar inscrição, cole-o em um editor de texto e copie o token. O token é uma longa série de números e letras no meio do URL, que vêm após **Token=**e antes de &Endpoint=. O URL é semelhante ao seguinte:
https://sns.us-east-1.amazonaws.com/confirmation.html?TopicArn=arn:aws:sns:us-east-1:123456789012:my-topic&Token=2336412f37fb687f5d51e6e241da92fcfd03593fd8dfa4bd75978a2ad7255afb88e71028f6a034d06f469f6c7ef20a609348542a0c68a9561c03a39d59beb02e2b7112c45f7ae26c344819b39cf07f15bef6c6c09766f9caa1fa55c236e77c33a50870bc027c74640ff64a7e99a67117&Endpoint=test@amazon.com
- Para confirmar o token de inscrição, execute o seguinte comando confirm-subscription:
aws sns confirm-subscription
--topic-arn your-topic-arn
--token your-token
--authenticate-on-unsubscribe true
Observação: Substitua your-topic-arn pelo ARN do tópico que você copiou anteriormente e your-token pelo token que você copiou.
Confirmar se a solicitação de inscrição foi autenticada com êxito
Para confirmar se a inscrição foi autenticada, execute o seguinte comando get-subscription-attributes:
aws sns get-subscription-attributes --subscription-arn your-subscription-arn
Observação: Substitua your-subscription-arn pelo ARN de sua inscrição.
Exemplo de saída:
{
"Attributes": {
"SubscriptionPrincipal": "arn:aws:iam:: 123456789012:role/Admin",
"Owner": "123456789012",
"RawMessageDelivery": "false",
"TopicArn": "arn:aws:sns:us-east-1:123456789012:mytopic",
"Endpoint": "test@testmail.com",
"Protocol": "email",
"PendingConfirmation": "false",
"ConfirmationWasAuthenticated": "true",
"SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:mytopic:8a21d249-4329-4871-acc6-7be709c6ea7f "
}
}
Se a resposta do atributo ConfirmationWasAuthenticated for true, a solicitação de inscrição foi autenticada com êxito.