Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Registre varias cuentas de AWS con una sola dirección de correo electrónico mediante Amazon SES
Creado por Joe Wozniak (AWS) y Shubhangi Vishwakarma (AWS)
Repositorio de código: GitHub aws-account-factory-email | Entorno: PoC o piloto | Tecnologías: infraestructura; gestión y gobierno; mensajería y comunicacione |
Servicios de AWS: Amazon DynamoDB; AWS Lambda; Amazon SES |
Resumen
Este patrón describe cómo puede desvincular las direcciones de correo electrónico reales de la dirección de correo electrónico asociada a una cuenta de AWS. Las cuentas de AWS requieren que se proporcione una dirección de correo electrónico única en el momento de la creación de la cuenta. En algunas organizaciones, el equipo que administra las cuentas de AWS debe asumir la carga de administrar muchas direcciones de correo electrónico únicas con su equipo de mensajería. Esto puede resultar difícil para las grandes organizaciones que administran muchas cuentas de AWS.
Este patrón proporciona una solución de venta de direcciones de correo electrónico única que permite a los propietarios de cuentas de AWS asociar una dirección de correo electrónico a varias cuentas de AWS. A continuación, las direcciones de correo electrónico reales de los propietarios de las cuentas de AWS se asocian a estas direcciones de correo electrónico generadas en una tabla. La solución gestiona todo el correo entrante de las cuentas de correo electrónico únicas, busca al propietario de cada cuenta y, a continuación, reenvía los mensajes recibidos al propietario.
Requisitos previos y limitaciones
Requisitos previos
Acceso administrativo a una cuenta de AWS.
Acceso a un entorno de desarrollo. Le recomendamos que utilice AWS Cloud9 para evitar tener que configurar usted mismo las herramientas y claves de acceso necesarias.
(Opcional) Estar familiarizado con los flujos de trabajo del AWS Cloud Development Kit (AWS CDK) y el lenguaje de programación Python le ayudará a solucionar cualquier problema o a realizar modificaciones.
Limitaciones
La longitud total de la dirección de correo electrónico vendida es de 64 caracteres. Para obtener más información, consulte CreateAccountla referencia de la API de AWS Organizations.
Versiones de producto
Node.js versión 12.7.0 o posterior
Python 3.9 o posterior
Paquetes de Python pip y virtualenv
CDK de AWS, versión 2.23.0 o posterior
Docker, versión 20.10x o posterior
Arquitectura
Pila de tecnología de destino
CloudFormation Pila de AWS
Funciones de AWS Lambda
Reglas y conjunto de reglas de Amazon Simple Email Address (Amazon SES)
Roles y políticas de AWS Identity and Access Management (IAM)
Un bucket de Amazon Simple Storage Service (Amazon S3) y política de bucket
Política de claves y claves de AWS Key Management Service (AWS KMS)
Tema de Amazon Simple Notification Service (Amazon SNS) y política de temas
Tabla de Amazon DynamoDB
Arquitectura de destino
En este diagrama se muestran dos flujos:
Flujo de venta de direcciones de correo electrónico: en el diagrama, el flujo de venta de direcciones de correo electrónico (sección inferior) comienza normalmente con una solución de venta de cuentas o con una automatización externa, o se invoca manualmente. En la solicitud, se llama a una función de Lambda con una carga útil que contiene los metadatos necesarios. La función utiliza esta información para generar un nombre de cuenta y una dirección de correo electrónico únicos, los almacena en una base de datos de DynamoDB y devuelve los valores a la persona que llama. Luego, estos valores se pueden usar para crear una nueva cuenta de AWS (normalmente, mediante AWS Organizations).
Flujo de reenvío de correo electrónico: este flujo se ilustra en la sección superior del diagrama anterior. Cuando se crea una cuenta de AWS mediante el correo electrónico de la cuenta generado a partir del flujo de venta de direcciones de correo electrónico, AWS envía varios correos electrónicos, como la confirmación de registro de la cuenta y las notificaciones periódicas, a esa dirección de correo electrónico. Siguiendo los pasos de este patrón, se configura la cuenta de AWS con Amazon SES para recibir correos electrónicos de todo el dominio. Esta solución configura reglas de reenvío que permiten a Lambda procesar todos los correos electrónicos entrantes, comprobar si la dirección
TO
está en la tabla de DynamoDB y, en su lugar, reenviar el mensaje a la dirección de correo electrónico del propietario de la cuenta. El uso de este proceso permite a los propietarios de las cuentas asociar varias cuentas a una sola dirección de correo electrónico.
Automatizar y escalar
Este patrón utiliza la CDK de AWS para automatizar completamente la implementación. La solución utiliza los servicios gestionados de AWS que se escalarán automáticamente (o se pueden configurar para) adaptarse a sus necesidades. Es posible que las funciones de Lambda requieran una configuración adicional para satisfacer sus necesidades de escalado. Para obtener más información, consulte escalado de funciones de Lambda en la documentación de Lambda.
Herramientas
Servicios de AWS
AWS Cloud9 es un entorno de desarrollo integrado (IDE) que ayuda a codificar, crear, ejecutar, probar y depurar software. También ayuda a lanzar software a la nube de AWS.
AWS le CloudFormation ayuda a configurar los recursos de AWS, aprovisionarlos de forma rápida y coherente y gestionarlos durante todo su ciclo de vida en todas las cuentas y regiones de AWS.
La interfaz de la línea de comandos de AWS (AWS CLI) es una herramienta de código abierto que le permite interactuar con los servicios de AWS mediante comandos en su intérprete de comandos de línea de comandos.
Amazon DynamoDB es un servicio de base de datos de NoSQL completamente administrado que ofrece un rendimiento rápido, predecible y escalable.
AWS Identity and Access Management (IAM) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos.
AWS Key Management Service (AWS KMS) facilita poder crear y controlar claves criptográficas para proteger los datos.
AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
Amazon Simple Email Service (Amazon SES) facilita poder enviar y recibir correos electrónicos a través de los dominios y direcciones de correo electrónico propios.
Amazon Simple Notification Service (Amazon SNS) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
Herramientas necesarias para la implementación
Entorno de desarrollo con acceso a la CLI de AWS y a la IAM a su cuenta de AWS. Para obtener más información, consulte los enlaces de la sección recursos relacionados. Le recomendamos que utilice AWS Cloud9 para simplificar el proceso de configuración.
Si usa AWS Cloud9, se configurará lo siguiente para usted. Si decide no utilizar AWS Cloud9, tendrá que instalar lo siguiente:
La CLI de AWS para configurar las credenciales de acceso a la CDK de AWS. Para obtener más información, consulte la documentación de la CLI de AWS.
Python, versión 3.9 o posterior
Paquetes de Python pip y virtualenv
Node.js versión 12.7.0 o posterior
CDK de AWS, versión 2.23.0 o posterior
Docker, versión 20.10.x o posterior
Código
El código de este patrón está disponible en el repositorio de correo electrónico de la fábrica de cuentas de GitHub AWS
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Identificar o crear una cuenta de AWS. | Identifique una cuenta de AWS existente o nueva a la que tenga acceso administrativo completo para implementar la solución de correo electrónico. | Administrador de la nube, administrador de AWS |
Configure un entorno de implementación. | Configure un entorno de implementación fácil de usar y configure las dependencias siguiendo estos pasos:
| AWS DevOps, desarrollador de aplicaciones |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Identifique y asigne un dominio. | La funcionalidad de reenvío de correo electrónico requiere un dominio dedicado. Identifique y asigne un dominio o subdominio que pueda verificar con Amazon SES. Este dominio debe estar disponible para recibir correo electrónico entrante en la cuenta de AWS en la que esté implementada la solución de reenvío de correo electrónico. Requisitos del dominio:
| Administrador de la nube, administrador de redes, administrador de DNS |
Compruebe el dominio. | Compruebe que el dominio identificado se puede utilizar para aceptar el correo entrante. Complete las instrucciones de Verificación de su dominio para la recepción de correos electrónicos de Amazon SES en la documentación de Amazon SES. Esto requerirá la coordinación con la persona o el equipo responsable de los registros de DNS del dominio. | Desarrollador de aplicaciones, AWS DevOps |
Configure los registros MX. | Configure su dominio con registros MX que apunten a los puntos de conexión de Amazon SES de su cuenta y región de AWS. Para obtener más información, consulte Publicar un registro MX para la recepción de correos electrónicos de Amazon SES en la documentación de Amazon SES. | Administrador de la nube, administrador de redes, administrador de DNS |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Modifique los valores predeterminados en cdk.json. | Edite algunos de los valores predeterminados del archivo
| Desarrollador de aplicaciones, AWS DevOps |
Implemente la solución de venta y reenvío de correo electrónico. |
| Desarrollador de aplicaciones, AWS DevOps |
Compruebe que la solución se haya implementado. | Compruebe que la solución se ha implementado correctamente antes de comenzar las pruebas:
| Desarrollador de aplicaciones, AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Verifique que la API está en funcionamiento. | En este paso, debe enviar los datos de prueba a la API de la solución y confirmar que la solución produce el resultado esperado y que las operaciones de backend se han realizado según lo previsto. Ejecute manualmente la función Vend Email de la función de Lambda mediante una entrada de prueba. (Para ver un ejemplo, consulte el archivo sample_vend_request.json | Desarrollador de aplicaciones, AWS DevOps |
Compruebe que el correo electrónico se está reenviando. | En este paso, envía un correo electrónico de prueba a través del sistema y comprueba que el correo electrónico se ha reenviado al destinatario previsto.
| Desarrollador de aplicaciones, AWS DevOps |
Resolución de problemas
Problema | Solución |
---|---|
El sistema no reenvía el correo electrónico como se esperaba. | Compruebe que la configuración es correcta:
Después de verificar la configuración de dominio, siga estos pasos:
|
Cuando intenta implementar la pila de CDK de AWS, recibe un error similar al siguiente: “Error de formato de plantilla: tipos de recursos no reconocidos” | En la mayoría de las instancias, este mensaje de error significa que la región a la que se dirige no tiene todos los servicios de AWS disponibles. Si utiliza AWS Cloud9 para implementar la solución, es posible que se dirija a una región diferente de la región en la que se ejecuta la instancia de AWS Cloud9. Nota: De forma predeterminada, la CDK de AWS se implementa en la región y la cuenta que configuró en la CLI de AWS. Posibles soluciones:
|
Al implementar la solución, recibirá el siguiente mensaje de error: «Falló la implementación: Error AwsMailFwdStack: no se encontró el parámetro SSM /cdk-bootstrap/hnb659fds/version. ¿Arrancó el entorno? Ejecute 'cdk bootstrap'” | Si nunca ha implementado ningún recurso de CDK de AWS en la cuenta y región de AWS a la que se dirige, primero tendrá que ejecutar el comando Para resolver este problema, defina la variable de entorno |
Recursos relacionados
Para obtener ayuda para instalar la CLI de AWS, consulte Instalación o actualización de la versión más reciente de la CLI AWS.
Para obtener ayuda para configurar la CLI de AWS con las credenciales de acceso de IAM, consulte Configurar la CLI de AWS.
Para obtener ayuda con la CDK de AWS, consulte Introducción a la CDK de AWS.
Información adicional
Costos
Al implementar esta solución, el titular de la cuenta de AWS puede incurrir en costos asociados al uso de los siguientes servicios. Es importante que comprenda cómo se facturan estos servicios para estar al tanto de los posibles cargos. Para obtener información sobre precios, consulte las siguientes páginas: