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á.
Registrar várias contas da AWS com um único endereço de e-mail usando o Amazon SES
Criado por Joe Wozniak (AWS) e Shubhangi Vishwakarma (AWS)
Repositório de códigos: GitHub aws-account-factory-email | Ambiente: PoC ou piloto | Tecnologias: Infraestrutura; Gestão e governança; Mensagens e comunicações |
Serviços da AWS: AWS Lambda; Amazon SES; Amazon DynamoDB |
Resumo
Esse padrão descreve como você dissocia endereços de e-mail reais do endereço de e-mail associado a uma conta da AWS. As contas da AWS requerem que um endereço de e-mail exclusivo seja fornecido no momento da criação da conta. Em algumas organizações, a equipe que gerencia as contas AWS deve assumir a responsabilidade de gerenciar vários endereços de e-mail exclusivos com sua equipe de mensagens. Isso pode ser difícil para grandes organizações que gerenciam muitas contas AWS.
Esse padrão fornece uma solução exclusiva de venda automática de endereços de e-mail que permite que os proprietários de contas AWS associem um endereço de e-mail a várias contas AWS. Os endereços de e-mail reais dos proprietários de contas AWS são então associados a esses endereços de e-mail gerados em uma tabela. A solução lida com todos os e-mails recebidos para as contas de e-mail exclusivas, pesquisa o proprietário de cada conta e, em seguida, encaminha todas as mensagens recebidas para o proprietário.
Pré-requisitos e limitações
Pré-requisitos
Acesso administrativo a uma conta da AWS.
Acesso a um ambiente de desenvolvimento. Recomendamos que você use o AWS Cloud9 para evitar ter que configurar você mesmo as ferramentas e as chaves de acesso necessárias.
(Opcional) A familiaridade com os fluxos de trabalho do AWS Cloud Development Kit (AWS CDK) e com a linguagem de programação Python ajudará você a solucionar quaisquer problemas ou fazer modificações.
Limitações
O tamanho geral do endereço de e-mail vendido é de 64 caracteres. Para obter detalhes, consulte CreateAccounta referência da API do AWS Organizations.
Versões do produto
Node.js versão 12.7.0 ou superior
Python 3.9 ou superior
Pacotes Python pip e virtualenv
AWS CDK versão 2.23.0 ou superior
Docker 20.10.x ou superior
Arquitetura
Pilha de tecnologias de destino
Pilha da AWS CloudFormation
Funções do AWS Lambda
Regras e conjunto de regras do Amazon Simple Email Address (Amazon SES)
Perfis e políticas do Identity and Access Management (IAM) da AWS
O bucket do Amazon Simple Storage Service (Amazon S3) e política de bucket.
Política de chaves e chaves do AWS Key Management Service (AWS KMS)
Tópico e política de tópico do Amazon Simple Notification Service (Amazon SNS)
Tabela do Amazon DynamoDB
Arquitetura de destino
Esse diagrama mostra dois fluxos:
Fluxo de venda automática de endereços de e-mail: no diagrama, o fluxo de venda automática de endereços de e-mail (seção inferior) geralmente inicia com uma solução de venda automática de contas ou automação externa, ou é invocado manualmente. Na solicitação, uma função do Lambda é chamada com uma carga que contém os metadados necessários. A função usa essas informações para gerar um nome de conta e endereço de e-mail exclusivos, armazenar em um banco de dados do DynamoDB e retornar os valores ao chamador. Esses valores podem então ser usados para criar uma nova conta da AWS (normalmente usando o AWS Organizations).
Fluxo de encaminhamento de e-mail: esse fluxo é ilustrado na seção superior do diagrama anterior. Quando uma conta da AWS é criada usando o e-mail da conta gerado a partir do fluxo de venda automática de endereços de e-mail, a AWS envia vários e-mails, como confirmação do registro da conta e notificações periódicas, para esse endereço de e-mail. Seguindo as etapas desse padrão, você configura sua conta da AWS com o Amazon SES para receber e-mails de todo o domínio. Essa solução configura regras de encaminhamento que permitem ao Lambda processar todos os e-mails recebidos, verificar se o endereço
TO
está na tabela do DynamoDB e encaminhar a mensagem para o endereço de e-mail do proprietário da conta. O uso desse processo dá aos proprietários da conta a capacidade de associar várias contas a um endereço de e-mail.
Automação e escala
Esse padrão usa o AWS CDK para automatizar totalmente a implantação. A solução usa serviços gerenciados da AWS que serão (ou podem ser configurados para) escalar automaticamente para atender às suas necessidades. As funções do Lambda podem exigir configuração adicional para atender às suas necessidades de escalabilidade. Para obter mais informações, consulte Escalabilidade da função do Lambda na documentação do Lambda.
Ferramentas
Serviços da AWS
O AWS Cloud9 é um ambiente de desenvolvimento integrado (IDE) que ajuda você a codificar, criar, executar, testar e depurar software. Ele também ajuda você a lançar software na Nuvem AWS.
CloudFormationA AWS ajuda você a configurar recursos da AWS, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em todas as contas e regiões da AWS.
A AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
O Amazon DynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado que fornece performance rápida, previsível e escalável.
O AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
O AWS Key Management Service (AWS KMS) ajuda você a criar e controlar chaves criptográficas para proteger seus dados.
O AWS Lambda é um serviço de computação que ajuda você a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
Amazon Simple Email Service (Amazon SES): ajuda você a enviar e receber e-mails usando seus próprios endereços de e-mail e domínios.
O Amazon Simple Notification Service (Amazon SNS) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
Ferramentas necessárias para implantação
Ambiente de desenvolvimento com a AWS CLI e o acesso IAM à sua conta da AWS. Para obter detalhes, consulte os links na seção Recursos relacionados. Recomendamos que você use o AWS Cloud9 para simplificar o processo de configuração.
Se você usa o AWS Cloud9, o seguinte será configurado para você. Se você optar por não usar o AWS Cloud9, precisará instalar o seguinte:
A AWS CLI para configurar as credenciais de acesso para o AWS CDK. Para obter mais informações, consulte a documentação da AWS CLI.
Python, versão 3.9 ou superior.
Pacotes Python pip e virtualenv
Node.js versão 12.7.0 ou superior
AWS CDK versão 2.23.0 ou superior
Docker, versão 20.10 ou superior.
Código
O código desse padrão está disponível no repositório de e-mail da fábrica de contas da GitHub AWS
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Criar ou identificar uma conta da AWS | Identificar uma conta da AWS nova ou existente à qual você tenha acesso administrativo total para implementar a solução de e-mail. | Administrador da AWS, administrador de nuvem |
Configurar um ambiente de implantação. | Configure um ambiente de implantação fácil de usar e configure dependências seguindo estas etapas:
| AWS DevOps, desenvolvedor de aplicativos |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Identifique e aloque um domínio. | A funcionalidade de encaminhamento de e-mail requer um domínio dedicado. Identifique e atribua um domínio ou subdomínio que você possa verificar com o Amazon SES. Esse domínio deve estar disponível para receber e-mails na conta da AWS em que a solução de encaminhamento de e-mail está implantada. Requisitos de domínio:
| Administrador de nuvem, administrador de rede, administrador de DNS |
Verificar o domínio. | Verifique se o domínio identificado pode ser usado para aceitar e-mails recebidos. Complete as instruções em Como verificar seu domínio para recebimento de e-mails do Amazon SES na documentação do Amazon SES. Isso exigirá coordenação com a pessoa ou equipe responsável pelos registros DNS do domínio. | Desenvolvedor de aplicativos, AWS DevOps |
Configurar registros MX. | Configure seu domínio com registros MX que apontam para os endpoints do Amazon SES em sua conta e região da AWS. Para obter mais informações, consulte Publicação de um registro MX para recebimento de e-mails do Amazon SES na documentação do Amazon SES. | Administrador de nuvem, administrador de rede, administrador de DNS |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Modifique os valores padrão em cdk.json. | Edite alguns dos valores padrão no arquivo
| Desenvolvedor de aplicativos, AWS DevOps |
Implante a solução de venda e encaminhamento de e-mails. |
| Desenvolvedor de aplicativos, AWS DevOps |
Verificar se a solução foi implantada. | Verificar se a solução foi implantada com sucesso antes de começar o teste:
| Desenvolvedor de aplicativos, AWS DevOps |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Verificar se a API está trabalhando. | Nesta etapa, você enviará dados de teste para a API da solução e confirma se a solução produz a saída esperada e se as operações de backend foram executadas conforme o esperado. Execute manualmente a função do Lambda Vend Email usando a entrada de teste. (Para ver um exemplo, consulte o arquivo sample_vend_request.json | Desenvolvedor de aplicativos, AWS DevOps |
Verificar se o e-mail está sendo encaminhado. | Nesta etapa, você enviará um e-mail de teste pelo sistema e verifica se o e-mail foi encaminhado para o destinatário esperado.
| Desenvolvedor de aplicativos, AWS DevOps |
Solução de problemas
Problema | Solução |
---|---|
O sistema não encaminha e-mails conforme o esperado. | Verificar se sua configuração está correta:
Depois de verificar a configuração do domínio, siga estas etapas:
|
Ao tentar implementar a pilha do AWS CDK, você recebe um erro semelhante a: “Erro no formato do modelo: tipos de recursos não reconhecidos” | Na maioria das instâncias, essa mensagem de erro significa que a região que você está segmentando não tem todos os serviços da AWS disponíveis. Se você estiver usando o AWS Cloud9 para implementar a solução, você pode ter como alvo uma região diferente da região em que a instância do AWS Cloud9 está sendo executada. Observação: por padrão, o AWS CDK é implantado na região e na conta que você configurou na AWS CLI. Soluções possíveis:
|
Ao implementar a solução, você recebe a mensagem de erro: “Falha na implantação: Erro:: parâmetro SSM AwsMailFwdStack /cdk-bootstrap/hnb659fds/versão não encontrada. O ambiente foi inicializado? Por favor, execute 'cdk bootstrap'” | Se você nunca implementou nenhum recurso do AWS CDK na conta da AWS e na região que você tem como alvo, primeiro você terá que executar o comando Para resolver esse problema, definir a variável de ambiente |
Recursos relacionados
Para ajudar a instalar a AWS CLI, consulte Instalar ou atualizar para a versão mais recente da AWS CLI.
Para obter ajuda na configuração da AWS CLI com credenciais de acesso do IAM, consulte Configurar a AWS CLI.
Para obter ajuda com o AWS CDK, consulte Getting Started with the AWS CDK.
Mais informações
Custos
Ao implementar essa solução, o titular da conta da AWS pode incorrer em custos associados ao uso dos seguintes serviços. É importante entender como esses serviços são cobrados para estar ciente de quaisquer possíveis cobranças. Para obter mais informações sobre definição de preço, veja as seguintes páginas: