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.
Adjunte automáticamente una política administrada de AWS para Systems Manager a los perfiles de instancia de EC2 mediante Cloud Custodian y AWS CDK
Creado por Ali Asfour (AWS) y Aaron Lennon (AWS)
Entorno: PoC o piloto | Tecnologías: desarrollo y pruebas de software DevOps; gestión y gobierno; seguridad, identidad y cumplimiento; infraestructura | Carga de trabajo: código abierto |
Servicios de AWS: Amazon SNS; Amazon SQS; CodeBuild AWS; AWS; CodePipeline AWS Systems Manager; AWS CodeCommit |
Resumen
Puede integrar instancias de Amazon Elastic Compute Cloud (Amazon EC2) con AWS Systems Manager para automatizar las tareas operativas y proporcionar más visibilidad y control. Para integrarse con Systems Manager, las instancias EC2 deben tener instalado AWS Systems Manager Agent (SSM Agent) y una política de AmazonSSMManagedInstanceCore
AWS Identity and Access Management (IAM) adjunta a sus perfiles de instancia.
Sin embargo, si quiere asegurarse de que todos los perfiles de instancias de EC2 incorporan la política AmazonSSMManagedInstanceCore
, puede enfrentarse a dificultades al actualizar las nuevas instancias de EC2 que no tienen perfiles de instancia o las instancias de EC2 que tienen un perfil de instancia pero no tienen la política AmazonSSMManagedInstanceCore
. También puede resultar difícil añadir esta política en varias cuentas de Amazon Web Services (AWS) y regiones de AWS.
Este patrón ayuda a resolver estos desafíos mediante la implementación de tres políticas de Cloud Custodian
La primera política de Cloud Custodian comprueba las instancias de EC2 existentes que tienen un perfil de instancia pero que no cuentan con la política
AmazonSSMManagedInstanceCore
. A continuación, se adjunta la políticaAmazonSSMManagedInstanceCore
.La segunda política de Cloud Custodian comprueba las instancias de EC2 existentes sin un perfil de instancia y añade un perfil de instancia predeterminado que tiene la política
AmazonSSMManagedInstanceCore
adjunta.La tercera política de Cloud Custodian crea funciones de AWS Lambda
en sus cuentas para supervisar la creación de instancias y perfiles de instancias de EC2. Esto garantiza que la política AmazonSSMManagedInstanceCore
se adjunte automáticamente cuando se cree una instancia de EC2.
Este patrón utiliza DevOps las herramientas de AWS
Requisitos previos y limitaciones
Requisitos previos
Dos o más cuentas de AWS activas. Una cuenta es la cuenta de seguridad y las demás son cuentas de miembros.
Permisos para aprovisionar recursos de AWS en la cuenta de seguridad. Este patrón utiliza permisos de administrador, pero usted debe conceder los permisos de acuerdo con los requisitos y las políticas de su organización.
Capacidad para asumir un rol de IAM desde la cuenta de seguridad hasta las cuentas de los miembros y crear los roles de IAM necesarios. Para obtener más información al respecto, consulte Delegar el acceso entre cuentas de AWS utilizando roles de IAM en la documentación de IAM.
Interfaz de la línea de comandos de AWS (AWS CLI) instalada y configurada. Para realizar pruebas, puede configurar la AWS CLI mediante el comando
aws configure
o configurando variables de entorno. Importante: esto no se recomienda para entornos de producción y recomendamos que a esta cuenta solo se le conceda el acceso con privilegios mínimos. Para obtener más información al respecto, consulte Conceder privilegios mínimos en la documentación de IAM.El archivo
devops-cdk-cloudcustodian.zip
(adjunto), descargado en su equipo local.Familiaridad con Python.
Las herramientas necesarias (Node.js, AWS Cloud Development Kit (AWS CDK) y Git), instaladas y configuradas. Puede usar el archivo
install-prerequisites.sh
incluido en el archivodevops-cdk-cloudcustodian.zip
para instalar estas herramientas. Asegúrese de ejecutar este archivo con privilegios de administrador.
Limitaciones
Si bien este patrón se puede utilizar en un entorno de producción, asegúrese de que todos los roles y las políticas de IAM cumplan con los requisitos y las políticas de su organización.
Versiones de paquetes
Cloud Custodian, versión 0.9 o posterior
TypeScript versión 3.9.7 o posterior
Node.js versión 14.15.4 y posteriores
npm
versión 7.6.1 o posteriorAWS CDK, versión 1.96.0 o posterior
Arquitectura
![](images/pattern-img/169a7bde-789e-4ebd-b4ca-80eb28ac9927/images/8ec0b6b4-d4b0-42e5-833d-24d1e6098fd9.png)
En el diagrama, se muestra el siguiente flujo de trabajo:
Las políticas de Cloud Custodian se envían a un CodeCommit repositorio de AWS en la cuenta de seguridad. Una regla de Amazon CloudWatch Events inicia automáticamente la CodePipeline canalización de AWS.
La canalización obtiene el código más reciente CodeCommit y lo envía a la parte de integración continua de la canalización de integración continua y entrega continua (CI/CD) gestionada por AWS. CodeBuild
CodeBuild realiza todas las DevSecOps acciones, incluida la validación de la sintaxis de las políticas de Cloud Custodian, y ejecuta estas políticas en
--dryrun
modo automático para comprobar qué recursos están identificados.Si no hay errores, la siguiente tarea avisa al administrador para que revise los cambios y apruebe la implementación en las cuentas de los miembros.
Pila de tecnología
AWS CDK
CodeBuild
CodeCommit
CodePipeline
IAM
Cloud Custodian
Automatizar y escalar
El módulo AWS CDK Pipelines proporciona una canalización de CI/CD que se utiliza CodePipeline para organizar la creación y las pruebas del código fuente CodeBuild, además de la implementación de recursos de AWS con pilas de AWS. CloudFormation Puede usar este patrón para todas las cuentas de miembros y regiones de su organización. También puede ampliar la pila Roles creation
para implementar otros roles de IAM en sus cuentas de miembros.
Herramientas
El AWS Cloud Development Kit (AWS CDK) es un marco de desarrollo de software para definir la infraestructura de nube en el código y aprovisionarla a través de AWS. CloudFormation
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 shell de línea de comandos.
AWS CodeBuild es un servicio de compilación en la nube totalmente gestionado.
AWS CodeCommit es un servicio de control de versiones que puede utilizar para almacenar y gestionar activos de forma privada.
AWS CodePipeline es un servicio de entrega continua que puede utilizar para modelar, visualizar y automatizar los pasos necesarios para lanzar el software.
AWS Identity and Access Management (IAM) es un servicio web que le ayuda a controlar de forma segura el acceso a los recursos de AWS.
Cloud Custodian
es una herramienta que unifica las decenas de herramientas y scripts que la mayoría de las organizaciones utilizan para administrar sus cuentas de nube pública en una sola herramienta de código abierto. Node.js
es un JavaScript motor de ejecución basado en el JavaScript motor V8 de Google Chrome.
Código
Para obtener una lista detallada de los módulos, las funciones de la cuenta, los archivos y los comandos de implementación que se utilizan en este patrón, consulte el archivo README
en el archivo devops-cdk-cloudcustodian.zip
(adjunto).
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Configura el CodeCommit repositorio. |
Para obtener más información al respecto, consulte Creación de un CodeCommit repositorio en la CodeCommit documentación de AWS. | Desarrollador |
Instalar las herramientas necesarias. | Utilice el archivo Para obtener más información al respecto, consulte la sección Requisitos previos de Introducción a AWS CDK en la documentación de AWS CDK. | Desarrollador |
Instalar los paquetes de AWS CDK obligatorios. |
AWD CDK requiere los siguientes paquetes y se incluyen en el archivo
| Desarrollador |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Actualice las variables requeridas. | Abra el
| Desarrollador |
Actualice el archivo account.yml con la información de la cuenta del miembro. | Para ejecutar la herramienta Cloud Custodian de c7n-org
| Desarrollador |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Arranque la cuenta de seguridad. | Arranque
| Desarrollador |
Opción 1: arrancar automáticamente las cuentas de los miembros. | Si la variable Si es necesario, puede actualizar La canalización arranca automáticamente las cuentas nuevas que se agreguen a la variable | Desarrollador |
Opción 2: Inicie manualmente el proceso de arranque de las cuentas de los miembros. | Aunque no se recomienda utilizar este enfoque, puede establecer el valor de
Importante: asegúrese de actualizar los valores También puede utilizar otros enfoques para impulsar las cuentas de los miembros, por ejemplo, con AWS CloudFormation. Para obtener más información al respecto, consulte Proceso de arranque en la documentación de AWS CDK. | Desarrollador |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree los roles de IAM en las cuentas de los miembros. | Ejecute el siguiente comando para implementar la pila
| Desarrollador |
Implemente la pila de canalizaciones de Cloud Custodian. | Ejecute el siguiente comando para crear la canalización
| Desarrollador |
Recursos relacionados
Conexiones
Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip