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.
Elimine EC2 las entradas de Amazon Cuentas de AWS de un lado a otro AWS Managed Microsoft AD mediante AWS Lambda la automatización
Creado por el Dr. Rahul Sharad Gaikwad (AWS) y Tamilselvan P () AWS
Entorno: PoC o piloto | Tecnologías: infraestructura, gestión y gobierno DevOps | Carga de trabajo: todas las demás cargas de trabajo |
AWSservicios: AWS Directory Service; Amazon; AmazonEC2; AWS Lambda EventBridge; AWS Systems Manager; AWS Auto Scaling |
Resumen
Active Directory (AD) es una herramienta de secuencias de comandos de Microsoft que administra la información del dominio y las interacciones de los usuarios con los servicios de red. Los proveedores de servicios gestionados (MSPs) la utilizan ampliamente para gestionar las credenciales de los empleados y los permisos de acceso. Como los atacantes de AD pueden usar cuentas inactivas para intentar hackear una organización, es importante encontrar las cuentas inactivas e inhabilitarlas siguiendo un programa de mantenimiento rutinario. Con AWS Directory Service for Microsoft Active Directory, puede ejecutar Microsoft Active Directory como un servicio gestionado. Este patrón puede ayudarle a configurar la AWS Lambda automatización para encontrar y eliminar rápidamente las cuentas inactivas.
Si los siguientes escenarios se aplican a su organización, este patrón puede ayudarle:
Administración centralizada de AD: si su organización tiene varias Cuentas de AWS, cada una con su propia implementación de AD, puede resultar difícil administrar las cuentas de usuario y los permisos de acceso de manera uniforme en todas las cuentas. Con una solución de limpieza de AD para todas las cuentas, puede deshabilitar o eliminar las cuentas inactivas de todas las instancias de AD de forma centralizada.
Reestructuración o migración de AD: si su organización planea reestructurar o migrar su implementación de AD, una solución de limpieza de AD multicuentas puede ayudarle a preparar el entorno. La solución puede ayudarlo a eliminar cuentas innecesarias o inactivas, simplificar el proceso de migración y reducir los posibles conflictos o problemas.
Al utilizar este patrón, puede obtener las siguientes ventajas:
Mejore el rendimiento de las bases de datos y los servidores y corrija las vulnerabilidades de seguridad causadas por cuentas inactivas.
Si tu servidor de AD está alojado en la nube, eliminar las cuentas inactivas también puede reducir los costes de almacenamiento y, al mismo tiempo, mejorar el rendimiento. Es posible que tus facturas mensuales disminuyan porque los cargos por ancho de banda y los recursos de cómputo pueden disminuir.
Mantenga a raya a los posibles atacantes con un Active Directory limpio.
Requisitos previos y limitaciones
Requisitos previos
Un padre activo Cuenta de AWS y una o varias cuentas secundarias. En este patrón, se crea Active Directory en una cuenta principal. Las cuentas secundarias alojan servidores Windows y se unen a través de la cuenta principal de Active Directory.
Git instalado
y configurado en una estación de trabajo local. Terraform se instaló
y configuró en una estación de trabajo local. AWS Managed Microsoft AD directorio configurado en la cuenta principal y compartido con todas las cuentas secundarias. Para obtener más información, consulta el tutorial: Cómo compartir tu AWS Managed Microsoft AD directorio para EC2 unirte a un dominio sin problemas en la Guía de AWS Directory Service administración.
Una conexión de emparejamiento de nube privada virtual (VPC) o una AWS Transit Gateway conexión disponible entre VPC las instancias AWS Directory Service (cuenta principal) y las instancias VPC de Amazon Elastic Compute Cloud (AmazonEC2) (cuentas secundarias). Para obtener más información, consulte Configurar una conexión de VPC emparejamiento entre el propietario del directorio y la cuenta del consumidor del directorio en la Guía de AWS Directory Service administración.
Una máquina Windows configurada con el
EC2WindowsUserdata
script en todas las cuentas principales y secundarias. El archivo de script está disponible en la raíz del repositorio de códigosde este patrón. Un rol multicuenta AWS Identity and Access Management (IAM) disponible en cada cuenta secundaria que está configurado con una política de confianza para permitir el uso de una AWS Lambda función de la cuenta principal. Para obtener más información, consulta Enviar y recibir eventos entre Amazon Cuentas de AWS EventBridge en la Guía del EventBridge usuario de Amazon.
Los siguientes valores secretos están disponibles en el almacén de AWS Systems Manager parámetros de la cuenta principal:
domainJoinUser
— Nombre de usuario del servicio de directoriodomainJoinPassword
— Contraseña del servicio de directorio
Para obtener más información sobre los secretos, consulte Crear un AWS Secrets Manager secreto en la Guía del AWS Secrets Manager usuario.
Limitaciones
La creación de un recurso en una cuenta infantil no está automatizada con Terraform. Debe crear los siguientes recursos manualmente mediante: AWS Management Console
EventBridge Regla de Amazon para enviar los eventos de EC2 rescisión de Amazon a la cuenta principal
Creación de roles EC2 multicuentas de Amazon en la cuenta secundaria con política de confianza
VPCconexión de peering o Transit Gateway
Algunas Servicios de AWS no están disponibles en todos Regiones de AWS. Para ver la disponibilidad por región, consulta Servicios de AWS por región
. Para ver puntos de enlace específicos, consulta Puntos de enlace y cuotas del servicio y elige el enlace para el servicio.
Versiones de producto
Arquitectura
El siguiente diagrama muestra la arquitectura de alto nivel de la solución.
El diagrama de arquitectura ilustra el siguiente proceso:
En las cuentas infantiles, la EventBridge regla recopila todos los eventos de EC2 rescisión de Amazon. La regla envía los eventos EventBridge que están presentes en la cuenta principal.
De la cuenta principal, EventBridge recopila todos los eventos y contiene la regla para activar la función Lambda.
ADcleanup-Lambda
La cuenta principal recibe cualquier evento de cancelación de la cuenta principal o secundaria y activa la función Lambda.
La función Lambda realiza la llamada a los grupos de Amazon EC2 Auto Scaling mediante el módulo boto de Python y obtiene el ID de instancia aleatorio. El ID de instancia se utiliza para ejecutar los comandos de Systems Manager.
La función Lambda realiza otra llamada a Amazon EC2 mediante el módulo boto. La función Lambda obtiene las direcciones IP privadas de los servidores Windows en ejecución y las almacena en una variable temporal. En los pasos 5.1 y 5.2, las EC2 instancias de Windows en ejecución se recopilan de las cuentas secundarias.
La función Lambda realiza otra llamada a Systems Manager para obtener la información del equipo al que está conectado. AWS Directory Service
Un AWS Systems Manager documento ayuda a ejecutar el PowerShell comando en los servidores de Amazon EC2 Windows para obtener las direcciones IP privadas de las computadoras que están conectadas a AD. (El documento de Systems Manager usa el ID de instancia que se obtuvo en el paso 4).
El nombre de usuario y las contraseñas del dominio AD se almacenan en el almacén de AWS Systems Manager parámetros. AWS Lambda y Systems Manager hacen una llamada a Parameter Store y obtienen los valores de nombre de usuario y contraseña que se utilizarán para conectarse a AD.
Con el documento Systems Manager, el PowerShell script se ejecuta en el servidor Amazon EC2 Windows utilizando el identificador de instancia obtenido anteriormente en el paso 4.
Amazon EC2 se conecta AWS Directory Service mediante PowerShell comandos y elimina los ordenadores que no están en uso o inactivos.
Herramientas
AWS servicios
AWS Directory Serviceproporciona varias formas de utilizar Microsoft Active Directory (AD) con otras, Servicios de AWS como Amazon Elastic Compute Cloud (AmazonEC2), Amazon Relational Database Service (RDSAmazon) SQL for Server y FSx Amazon for Windows File Server.
AWS Directory Service for Microsoft Active Directorypermite que sus cargas de trabajo y AWS recursos compatibles con directorios utilicen Microsoft Active Directory en. Nube de AWS
Amazon Elastic Compute Cloud (AmazonEC2) proporciona una capacidad informática escalable en el Nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
Amazon EventBridge es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. Por ejemplo, AWS Lambda funciones, puntos finales de HTTP invocación que utilizan API destinos o buses de eventos en otros. Cuentas de AWS
AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos. Con IAM ella, puede especificar quién o qué puede acceder a los servicios y recursos AWS, administrar de forma centralizada los permisos detallados y analizar el acceso para refinar todos los permisos. AWS
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.
AWS Systems Manager le ayuda a administrar las aplicaciones y la infraestructura que se ejecutan en la Nube de AWS. Simplifica la administración de aplicaciones y recursos, reduce el tiempo necesario para detectar y resolver problemas operativos y le ayuda a administrar sus AWS recursos de forma segura y a escala.
AWS Systems Manager los documentos definen las acciones que Systems Manager realiza en las instancias gestionadas. Systems Manager incluye más de 100 documentos preconfigurados que puede utilizar especificando los parámetros en tiempo de ejecución.
AWS Systems Manager El almacén de parámetros es una capacidad AWS Systems Manager y proporciona un almacenamiento jerárquico seguro para la administración de datos de configuración y la administración de secretos.
Otras herramientas
HashiCorp Terraform
es una herramienta de código abierto de infraestructura como código (IaC) que le ayuda a usar el código para aprovisionar y administrar la infraestructura y los recursos de la nube. PowerShell
es un programa de administración de automatización y configuración de Microsoft que se ejecuta en Windows, Linux y macOS. Python
es un lenguaje de programación informático de uso general.
Repositorio de código
El código de este patrón está disponible en el repositorio GitHub aws-lambda-ad-cleanup-terraform-samples
Prácticas recomendadas
Une dominios automáticamente.Cuando lances una instancia de Windows que vaya a formar parte de un AWS Directory Service dominio, únete al dominio durante el proceso de creación de la instancia en lugar de añadirla manualmente más adelante. Para unirte automáticamente a un dominio, selecciona el directorio correcto en la lista desplegable de directorios de unión de dominios al lanzar una nueva instancia. Para obtener más información, consulte Cómo unir sin problemas una instancia de Amazon EC2 Windows a AWS Managed Microsoft AD Active Directory en la Guía de AWS Directory Service administración.
Elimine las cuentas no utilizadas.Es habitual encontrar cuentas en AD que nunca se han utilizado. Al igual que las cuentas inhabilitadas o inactivas que permanecen en el sistema, las cuentas no utilizadas que no se utilizan pueden ralentizar el sistema de AD o hacer que la organización sea vulnerable a las filtraciones de datos.
Automatice las limpiezas de Active Directory.Para ayudar a mitigar los riesgos de seguridad y evitar que las cuentas obsoletas afecten al rendimiento de AD, las limpiezas de AD deberían realizarse a intervalos regulares. Puedes realizar la mayoría de las tareas de administración y limpieza de AD escribiendo scripts. Algunos ejemplos de tareas incluyen eliminar cuentas inhabilitadas e inactivas, eliminar grupos vacíos e inactivos y localizar cuentas de usuario y contraseñas caducadas.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Crea un rol multicuenta en la cuenta infantil. | Para crear un rol multicuenta en una cuenta secundaria, haga lo siguiente:
| DevOps ingeniero |
Crea una regla de eventos en la cuenta infantil. | Para crear una EventBridge regla para cada cuenta secundaria, haga lo siguiente:
Para obtener más información, consulta Cómo crear reglas que reaccionen a los eventos en Amazon EventBridge en la Guía del EventBridge usuario de Amazon. | DevOps ingeniero |
Crea una EC2 instancia y únete a AD. | Para crear una EC2 instancia para Windows, haz lo siguiente:
| DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree una carpeta de proyecto y añada los archivos. | Para clonar el repositorio y crear una carpeta de proyecto, haga lo siguiente:
| DevOps ingeniero |
Construye el | Para comprimir el
| DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Proporcione valores para las variables de Terraform. | Para la cuenta secundaria, proporciona valores para las siguientes
| DevOps ingeniero |
Inicialice la configuración de Terraform. | Para inicializar el directorio de trabajo que contiene los archivos de Terraform, ejecute el siguiente comando:
| DevOps ingeniero |
Vista previa de los cambios. | Puede obtener una vista previa de los cambios que Terraform realizará en la infraestructura antes de implementarla. Para validar que Terraform realizará los cambios necesarios, ejecute el siguiente comando:
| DevOps ingeniero |
Ejecute las acciones propuestas. | Para comprobar que los resultados del
| DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Ejecute y pruebe la función Lambda. | Para comprobar que la implementación se ha realizado correctamente, haga lo siguiente:
Los resultados de la ejecución muestran el resultado de la función. | DevOps ingeniero |
Vea los resultados de la ejecución de la EventBridge regla desde la cuenta principal. | Para ver los resultados de la EventBridge regla que se basa en los eventos de EC2 rescisión de Amazon desde la cuenta principal, haz lo siguiente:
En la CloudWatch consola, la página Grupos de registros muestra los resultados de la función Lambda. | DevOps ingeniero |
Vea los resultados de la ejecución de la EventBridge regla desde la cuenta secundaria. | Para ver los resultados de la EventBridge regla que se basa en los eventos de EC2 rescisión de Amazon desde la cuenta secundaria, haz lo siguiente:
En la CloudWatch consola, la página Grupos de registros muestra los resultados de la función Lambda. | DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Limpie la infraestructura. | Para limpiar la infraestructura que ha creado, utilice el siguiente comando:
Para confirmar el | DevOps ingeniero |
Verifíquelo después de la limpieza. | Compruebe que los recursos se hayan eliminado correctamente. | DevOps ingeniero |
Resolución de problemas
Problema | Solución |
---|---|
Problema de conexión entre AWS Directory Service (cuenta principal) e EC2 instancia de Amazon (cuenta secundaria): no puedes unir los ordenadores de la cuenta secundaria a AD aunque la VPC interconexión esté disponible. | Agrega el enrutamiento en. VPCs Para obtener instrucciones, consulte Configurar una conexión de VPC emparejamiento entre el propietario del directorio y la cuenta del consumidor del directorio en la AWS Directory Service documentación. |
Recursos relacionados
AWS documentación
Otros recursos
AWS Proveedor
(documentación de Terraform) Configuración de backend (documentación de
Terraform) Módulo de arranque de Python
(repositorio Python Package Index) Descarga binaria de Terraform (documentación
de Terraform)