As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Publicar uma mensagem do Amazon SNS da Amazon VPC
Esta seção descreve como publicar em um tópico do Amazon SNS, mantendo as mensagens seguras em uma rede privada. Publique uma mensagem a partir de uma instância do Amazon EC2 hospedada na Amazon Virtual Private Cloud (Amazon VPC). A mensagem permanecerá na rede da AWS sem ir para a Internet pública. Ao publicar mensagens de forma privada a partir de uma VPC, você pode melhorar a segurança do tráfego entre seus aplicativos e o Amazon SNS. Essa segurança é importante ao publicar informações de identificação pessoal (PII) sobre seus clientes ou quando sua assinatura está sujeita a regulamentações de mercado. Por exemplo, publicar de maneira privada é útil se você tiver um sistema para área da saúde que precise estar em conformidade com a Lei de Portabilidade e Responsabilidade de Provedores de Saúde (HIPAA) ou um sistema financeiro que precise estar em conformidade com o Padrão de segurança de dados do setor de cartão de pagamento (Payment Card Industry Data Security Standard, PCI DSS).
As etapas gerais são as seguintes:
-
Use um modelo do AWS CloudFormation para criar automaticamente uma rede privada temporária em sua Conta da AWS.
-
Crie um VPC endpoint que conecte a VPC com o Amazon SNS.
-
Faça login em uma instância do Amazon EC2 e publique uma mensagem de maneira privada em um tópico do Amazon SNS.
-
Verifique se a mensagem foi entregue com sucesso.
-
Exclua os recursos que você criou durante este processo para que eles não permaneçam na sua Conta da AWS.
O diagrama seguinte descreve a rede privada que você cria na sua conta da AWS ao concluir essas etapas:
Esta rede consiste em uma VPC que contém uma instância do Amazon EC2. A instância se conecta ao Amazon SNS por meio de um endpoint da VPC de interface. Esse tipo de endpoint se conecta a serviços com tecnologia AWS PrivateLink. Com essa conexão estabelecida, você pode fazer login na instância do Amazon EC2 e publicar mensagens no tópico do Amazon SNS, mesmo que a rede esteja desconectada da Internet pública. O tópico envia as mensagens recebidas para duas funções AWS Lambda de assinatura. Essas funções registram as mensagens recebidas no Amazon CloudWatch Logs.
Demora cerca de 20 minutos para concluir essas etapas.
Tópicos
Antes de começar
Antes de começar, você precisa de uma conta da Amazon Web Services (AWS). Ao cadastrar-se, sua conta é automaticamente cadastrada em todos os serviços da AWS incluindo o Amazon SNS e a Amazon VPC. Caso ainda não tenha criado uma conta, acesse https://aws.amazon.com/
Etapa 1: criar um par de chaves do Amazon EC2
Um par de chaves é usado para fazer login em um instância do Amazon EC2. Esse par consiste em uma chave pública usada para criptografar suas informações de login e uma chave privada usada para descriptografá-la. Ao criar um par de chaves, você faz download de uma cópia da chave privada. Posteriormente, você usará o par de chaves para fazer login em um instância do Amazon EC2. Para efetuar login, especifique o nome do par de chaves e insira a chave privada.
Para criar o par de chaves
Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
No menu de navegação à esquerda, localize a seção Rede e segurança. Em seguida, escolha Pares de chave).
-
Escolha Criar par de chaves.
-
Na janela Criar par de chaves, em Nome do par de chaves, digite
VPCE-Tutorial-KeyPair. Escolha Criar.
-
O arquivo de chave privada é baixado automaticamente pelo navegador. Salve-o em um local seguro. O Amazon EC2 dá a extensão ao arquivo
.pem. -
(Opcional) Se estiver usando um cliente de SSH em um computador Mac ou Linux para se conectar à sua instância, use o seguinte comando
chmodpara definir as permissões do arquivo de chave privada, de maneira que apenas você possa lê-lo:-
Abra um terminal e navegue até o diretório que contém a chave privada:
$cd /filepath_to_private_key/ -
Defina as permissões usando o seguinte comando:
$chmod 400 VPCE-Tutorial-KeyPair.pem
-
Etapa 2: criar os recursos do AWS
Para configurar a infraestrutura que oferece suporte a este tutorial, use um modelo do CloudFormation. Um modelo é um arquivo que funciona como um plano para a criação de recursos da AWS, como instâncias do Amazon EC2 e tópicos do Amazon SNS. O modelo deste processo está disponível para download no GitHub.
Você fornece o modelo ao CloudFormation, e o CloudFormation provisiona os recursos necessários como uma pilha em sua Conta da AWS. Uma pilha é um conjunto de recursos que pode gerenciar como uma unidade. Ao concluir estas etapas, você poderá usar o CloudFormation para excluir todos os recursos da pilha de uma só vez. Esses recursos não permanecerão na sua Conta da AWS, a menos que você queira.
A pilha deste processo inclui os seguintes recursos:
-
Uma VPC e os recursos de rede associados, incluindo uma sub-rede, um grupo de segurança, um gateway da Internet e uma tabela de rotas.
-
Uma instância do Amazon EC2 que é lançada na sub-rede na VPC.
-
Um tópico do Amazon SNS.
-
Duas funções AWS Lambda. Estas funções recebem mensagens que são publicadas no tópico do Amazon SNS e registram os eventos em log no CloudWatch Logs.
-
Métricas e logs do Amazon CloudWatch.
-
Uma função do IAM que permite que a instância do Amazon EC2 use o Amazon SNS e uma função do IAM que permite que as funções do Lambda gravem nos logs do CloudWatch.
Para criar recursos da AWS
-
Faça download do arquivo do modelo
no site do GitHub. -
Faça login no console do CloudFormation
. -
Escolha Create Stack (Criar pilha).
-
Na página Select Template (Selecionar modelo), escolha Upload a template to Amazon S3 (Carregar um modelo no Amazon S3) e, em seguida, o arquivo e Next (Avançar).
-
Na página Especificar detalhes, especifique os nomes de pilha e chave:
-
Para Nome da pilha, digite
VPCE-Tutorial-Stack. -
Para KeyName, escolha VPCE-Tutorial-KeyPair.
-
Em SSHLocation, mantenha o valor padrão de
0.0.0.0/0.
-
Escolha Próximo.
-
-
Na página Opções, mantenha todos os valores padrão e escolha Próximo.
-
Na página Revisar, verifique os detalhes da pilha.
-
Em Capabilities (Recursos), confirme que o CloudFormation pode criar recursos do IAM com nomes personalizados.
-
Escolha Criar.
O console do CloudFormation abre a página Pilhas. O VPCE-Tutorial-Stack tem um status de CREATE_IN_PROGRESS. Em instantes, após a conclusão do processo de criação, o status muda para CREATE_COMPLETE.
dica
Escolha o botão Atualizar para ver o status mais recente da pilha.
Etapa 3: verificar se a instância do Amazon EC2 não tem acesso à Internet
A instância do Amazon EC2 que foi lançada na sua VPC na etapa anterior não tem acesso à Internet. Ela não permite o tráfego de saída e não pode publicar mensagens no Amazon SNS. Para verificar isso, faça login na instância. Em seguida, conecte-se a um endpoint público e tente enviar uma mensagem Amazon SNS.
Neste ponto do tutorial, a tentativa de publicação falha. Em uma etapa posterior, depois de criar um VPC endpoint para o Amazon SNS, sua tentativa de publicação será bem-sucedida.
Para conectar-se à sua instância Amazon EC2.
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
No menu de navegação à esquerda, localize a seção Instâncias. Em seguida, selecione Instâncias.
-
Na lista de instâncias, selecione VPCE-Tutorial-EC2Instance.
-
Copie o nome do host fornecido na coluna DNS público.
-
Abra um terminal. No diretório que contém o par de chaves, conecte-se à instância usando o seguinte comando, em que
instance-hostnameé o nome do host que você copiou do console do Amazon EC2:$ssh -i VPCE-Tutorial-KeyPair.pem ec2-user@instance-hostname
Para verificar se a instância não tem conectividade com a Internet
-
No seu terminal, tente se conectar a qualquer endpoint público, como amazon.com:
$ping amazon.comComo a tentativa de conexão falha, você pode cancelar a qualquer momento (Ctrl + C no Windows ou Command + C no macOS).
Para verificar se a instância não tem conectividade com o Amazon SNS
-
Faça login no console do Amazon SNS
. -
No menu de navegação à esquerda, escolha Tópicos.
-
Na página Tópicos, copie o nome do recurso da Amazon (ARN) para o tópico VPCE-Tutorial-Topic.
-
No seu terminal, tente publicar uma mensagem no tópico:
$aws sns publish --regionaws-region--topic-arnsns-topic-arn--message "Hello"Como a tentativa de publicação falha, você pode cancelar a qualquer momento.
Etapa 4: criar um endpoint da VPC para Amazon SNS
Para conectar a VPC ao Amazon SNS, você define um VPC endpoint de interface. Depois de adicionar o endpoint, você poderá efetuar login na instância do Amazon EC2 na sua VPC. Lá, você poderá usar a API do Amazon SNS. Você pode publicar mensagens no tópico. Elas serão publicadas de maneira privada. As mensagens permanecerão na rede da AWS e não serão enviadas para a Internet pública.
nota
A instância ainda não tem acesso a outros produtos e endpoints da AWS na Internet.
Para criar o endpoint
-
Abra o console da Amazon VPC, em https://console.aws.amazon.com/vpc/
. -
No menu de navegação à esquerda, escolha Endpoints.
-
Escolha Criar endpoint.
-
Na página Criar endpoint, em Categoria de serviço, mantenha o valor padrão de Serviços daAWS.
-
Em Service Name (Nome do serviço), escolha o nome do serviço para o Amazon SNS.
Os nomes de serviços variam de acordo com a região escolhida. Por exemplo, se você escolher Leste dos EUA (Norte da Virgínia), o nome do serviço será com.amazonaws.
us-east-1.sns. -
Para VPC, escolha a VPC com nome VPCE-Tutorial-VPC.
-
Em Sub-redes, selecione aquela que contém VPCE-Tutorial-Subnet no ID de sub-rede.
-
Em Ativar nome DNS privado, selecione Ativar para este terminal.
-
Em Grupo de segurança, escolha Selecionar grupo de segurança e VPCE-Tutorial-SecurityGroup.
-
Escolha Criar endpoint. O console da Amazon VPC verifica se o endpoint da VPC foi criado.
-
Escolha Fechar.
O console da Amazon VPC abre a página Endpoints. O novo endpoint tem um status pendente. Em instantes, após a conclusão do processo de criação, o status muda para disponível.
Etapa 5: publicar uma mensagem no seu tópico do Amazon SNS
Agora que sua VPC inclui um endpoint para o Amazon SNS, você pode fazer login na instância do Amazon EC2 e publicar mensagens no tópico.
Para publicar uma mensagem
-
Se seu terminal não estiver mais conectado à sua instância do Amazon EC2, conecte-se novamente:
$ssh -i VPCE-Tutorial-KeyPair.pem ec2-user@instance-hostname -
Execute o mesmo comando que você fez anteriormente para publicar uma mensagem no seu tópico do Amazon SNS. Desta vez, a tentativa de publicação será bem-sucedida e o Amazon SNS retornará um ID de mensagem:
$aws sns publish --regionaws-region--topic-arnsns-topic-arn--message "Hello"{ "MessageId": "5b111270-d169-5be6-9042-410dfc9e86de" }
Etapa 6: verificar as entregas de mensagens
Quando o tópico do Amazon SNS receber uma mensagem, ele enviará a mensagem para as duas funções assinantes do Lambda. Quando essas funções receberem a mensagem, elas registrarão o evento nos logs do CloudWatch. Para saber se a entrega da mensagem foi bem sucedida, verifique se as funções foram invocadas e se os logs do CloudWatch foram atualizados.
Para verificar se as funções do Lambda foram invocadas
-
Abra o console AWS Lambda em https://console.aws.amazon.com/lambda/
. -
Na página Funções, escolha VPCE-Tutorial-Lambda-1.
-
Escolha Monitoramento.
-
Verifique o gráfico Contagem de invocação. Este gráfico mostra o número de vezes que a função do Lambda foi executada.
A contagem de invocação corresponde ao número de vezes que você publicou uma mensagem no tópico.
Para verificar se os logs do CloudWatch foram atualizados
-
Abra o console do CloudWatch, em https://console.aws.amazon.com/cloudwatch/
. -
No menu de navegação à esquerda, escolha Logs.
-
Verifique os registros que foram escritos pelas funções do Lambda:
-
Escolha o grupo de logs /aws/lambda/VPCE-Tutorial-Lambda-1/.
-
Escolha o fluxo de logs.
-
Verifique se o log inclui a entrada
From SNS: Hello.
-
Escolha Grupos de logs na parte superior do console para retornar para a página Grupos de logs. Em seguida, repita as etapas anteriores para o grupo de log /aws/lambda/VPCE-Tutorial-Lambda-2/.
-
Parabéns! Ao adicionar um endpoint para o Amazon SNS a uma VPC, você conseguiu publicar uma mensagem em um tópico de dentro da rede gerenciada pela VPC. A mensagem foi publicada de maneira privada sem ser exposta à Internet pública.
Etapa 7: limpar
A menos que você queira manter os recursos criados, você poderá excluí-los agora. Excluindo os recursos da AWS que você não está mais usando, você evita cobranças desnecessárias em sua Conta da AWS.
Primeiro, exclua seu endpoint da VPC usando o console da Amazon VPC. Em seguida, exclua os outros recursos que você criou, excluindo a pilha no console do CloudFormation. Quando você exclui uma pilha, o CloudFormation remove os recursos da pilha de sua Conta da AWS.
Para excluir seu VPC endpoint
-
Abra o console da Amazon VPC, em https://console.aws.amazon.com/vpc/
. -
No menu de navegação à esquerda, escolha Endpoints.
-
Selecione o endpoint que você criou.
-
Escolha Ações e escolha Excluir endpoint.
-
Na janela Excluir endpoint, escolha Sim, excluir.
O status do endpoint muda para excluindo. Quando a exclusão é concluída, o endpoint é removido da página.
Para excluir sua pilha do CloudFormation
-
Abra o console do CloudFormation em https://console.aws.amazon.com/cloudformation
. -
Selecione a pilha VPCE-Tutorial-Stack.
-
Escolha Ações e, em seguida, escolha Excluir pilha.
-
Na janela Excluir pilha, escolha Sim, excluir.
O status da pilha muda para DELETE_IN_PROGRESS. Quando a exclusão é concluída, a pilha é removida da página.
Recursos relacionados
Para obter mais informações, consulte os recursos a seguir.