View a markdown version of this page

Introducción al AWS DevOps Agente que usa AWS CDK - AWS DevOps Agente

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.

Introducción al AWS DevOps Agente que usa AWS CDK

Descripción general de

En esta guía se muestra cómo usar el kit de desarrollo AWS en la nube (AWS CDK) para crear e implementar los recursos de los AWS DevOps agentes. La aplicación AWS CDK automatiza la creación de un espacio de agentes, funciones de administración de AWS identidades y accesos (IAM), una aplicación de operador y AWS mediante asociaciones de cuentas. AWS CloudFormation

El enfoque del AWS CDK automatiza los pasos manuales descritos en la guía de incorporación de la CLI al definir todos los recursos necesarios, como infraestructura, como código.

AWS DevOps El agente está disponible en varias regiones. AWS Puede consultar la lista completa e Regiones admitidas.

Requisitos previos

Antes de comenzar, asegúrese de que dispone de lo siguiente:

  • AWS La interfaz de línea de AWS comandos (CLI) está instalada y configurada con las credenciales adecuadas

  • Node.js versión 18 o posterior

  • AWS La interfaz de línea de comandos (CLI) del CDK está instalada globalmente. Para instalar la CLI del AWS CDK, ejecute el siguiente comando:

npm install -g aws-cdk
  • Una AWS cuenta para la cuenta de supervisión (principal)

  • (Opcional) Una segunda AWS cuenta si quieres configurar la supervisión multicuenta

Qué cubre esta guía

Esta guía se divide en dos partes:

  • Parte 1: Implemente un espacio de agentes con una aplicación de operador y una AWS asociación en su cuenta de monitoreo. Tras completar esta parte, el agente puede supervisar los problemas de esa cuenta.

  • Parte 2 (opcional): añadir una AWS asociación de origen para una cuenta de servicio e implementar una función de IAM multicuenta en esa cuenta. Esta configuración permite al espacio de agentes supervisar los recursos de todas las cuentas.

Recursos creados

Parte 1: DevOpsAgentStack (supervisión de la cuenta)

  • Función de IAM (DevOpsAgentRole-AgentSpace): la asume el servicio de DevOps agentes para supervisar la cuenta. Incluye la política AIDevOpsAgentAccessPolicy gestionada y una política integrada que permite la creación de la función vinculada al servicio Resource Explorer.

  • Función de IAM (DevOpsAgentRole-WebappAdmin): función de la aplicación operadora con la política AIDevOpsOperatorAppAccessPolicy gestionada para las operaciones de los agentes.

  • Espacio de agente (MyCDKAgentSpace): el espacio de agente central, creado mediante el uso del AWS::DevOpsAgent::AgentSpace CloudFormation recurso. Incluye la configuración de la aplicación de operador.

  • Asociación (AWS monitor): vincula la cuenta de monitoreo al espacio del agente mediante el AWS::DevOpsAgent::Association CloudFormation recurso.

  • Asociación (AWS fuente): (opcional) vincula la cuenta de servicio al espacio de agentes para la supervisión entre cuentas.

Parte 2: ServiceStack (cuenta de servicio, opcional)

  • Función de IAM (DevOpsAgentRole-SecondaryAccount): Cross-account función con un nombre fijo. El espacio de agentes de la cuenta de monitoreo confía en nosotros. Incluye la política AIDevOpsAgentAccessPolicy gestionada y una política integrada que permite la creación de la función vinculada al servicio Resource Explorer.

  • Función Lambda (echo-service): un servicio de ejemplo sencillo que repite los eventos de entrada.

Configuración

Paso 1: clona el repositorio de muestras

Ejecute los siguientes comandos para clonar el repositorio y cambiarlo al directorio del proyecto:

git clone https://github.com/aws-samples/sample-aws-devops-agent-cdk.git cd sample-aws-devops-agent-cdk

Paso 2: Instalar las dependencias

Ejecute el siguiente comando para instalar las dependencias del proyecto:

npm install

Parte 1: implementar el espacio de agentes

En esta sección, crea el espacio de agentes, las funciones de IAM, la aplicación de operador y una AWS asociación en su cuenta de monitoreo.

Paso 1: Configurar el ID de la cuenta de monitoreo

Abra lib/constants.ts y configure el ID de su cuenta de monitoreo:

El siguiente ejemplo muestra la constante que hay que actualizar:

export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";

Paso 2: Arranca el AWS Entorno CDK

Si no ha iniciado el AWS CDK en su cuenta de monitoreo, ejecute el siguiente comando:

cdk bootstrap aws://<MONITORING_ACCOUNT_ID>/<REGION> --profile monitoring

Paso 3: Compila e implementa

Ejecute los siguientes comandos para crear el TypeScript código e implementar la pila:

npm run build cdk deploy DevOpsAgentStack --profile monitoring

Paso 4: Registre las salidas de la pila

Una vez finalizada la implementación, el AWS CDK imprime las salidas de la pila. Registre estos valores para usarlos más adelante.

El siguiente ejemplo muestra el resultado esperado:

Outputs: DevOpsAgentStack.AgentSpaceArn = arn:aws:aidevops:<REGION>:123456789012:agentspace/abc123 DevOpsAgentStack.AgentSpaceRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-AgentSpace DevOpsAgentStack.OperatorRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-WebappAdmin DevOpsAgentStack.AssociationId = assoc-xyz

Si planea completar la parte 2, guarde el AgentSpaceArn valor. Lo necesita para configurar la pila de cuentas de servicio.

Paso 5: Verificar la implementación

Para comprobar que el espacio de agente se creó correctamente, ejecute el siguiente comando de la AWS CLI:

aws devopsagent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>

En este punto, su espacio de agente está desplegado con la aplicación del operador habilitada y su cuenta de monitoreo asociada. El agente puede supervisar los problemas de esta cuenta.

Parte 2 (opcional): añadir la supervisión multicuenta

En esta sección, amplías la configuración para que tu espacio de agente pueda supervisar los recursos de una segunda AWS cuenta (la cuenta de servicio). Esto implica dos acciones:

  1. Agregar una AWS asociación de origen en la DevOpsAgentStack que apunte a la cuenta de servicio.

  2. Implementarla ServiceStack en la cuenta de servicio con una función de IAM que confíe en el espacio de los agentes.

importante

Debe completar la primera parte antes de continuar. Esto ServiceStack requiere el resultado AgentSpaceArn de la DevOpsAgentStack implementación.

Paso 1: configurar el ID de la cuenta de servicio

Abra lib/constants.ts y configure el ID de su cuenta de servicio:

El siguiente ejemplo muestra la constante que hay que actualizar:

export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";

DevOpsAgentStack Crea una AWS asociación de origen con este identificador de cuenta. Si lo implementó DevOpsAgentStack antes de establecer este valor, vuelva a implementarlo para crear la asociación:

Ejecute los siguientes comandos para volver a implementar:

npm run build cdk deploy DevOpsAgentStack --profile monitoring

Paso 2: Defina el ARN del espacio del agente

Copie el AgentSpaceArn valor de la DevOpsAgentStack salida (parte 1, paso 4) y configúrelo enlib/constants.ts:

El siguiente ejemplo muestra la constante que se debe actualizar:

export const AGENT_SPACE_ARN = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<SPACE_ID>";

ServiceStack Utiliza este valor para definir el ámbito de la política de confianza en el rol de cuenta secundaria. El solo ServiceStack se sintetiza cuando se establece este valor.

Paso 3: Arrancar la cuenta de servicio

Si no has arrancado el AWS CDK de tu cuenta de servicio, ejecuta el siguiente comando:

cdk bootstrap aws://<SERVICE_ACCOUNT_ID>/<REGION> --profile service

Paso 4: Despliegue el ServiceStack

Ejecute los siguientes comandos para crear e implementar la ServiceStack mediante las credenciales de la cuenta de servicio:

npm run build cdk deploy ServiceStack --profile service

Esto crea los siguientes recursos en la cuenta de servicio:

  • Un rol de IAM (DevOpsAgentRole-SecondaryAccount) que confía en el espacio de agente de la cuenta de monitoreo

  • Una función echo Lambda (echo-service) como servicio de ejemplo

Paso 5: Verificar la implementación

Para confirmar que la función Lambda se implementó correctamente, ejecute los siguientes comandos para probar el servicio echo:

aws lambda invoke \ --function-name echo-service \ --payload '{"test": "hello world"}' \ --profile service \ response.json cat response.json

Resolución de problemas

En esta sección se describen los problemas comunes y cómo resolverlos.

CloudFormation no se encontró el tipo de recurso

  • Compruebe que está realizando la implementación en unRegiones admitidas.

  • Confirme que su AWS CLI esté configurada con los permisos adecuados.

No se pudo crear el rol de IAM

  • Compruebe que su rol de implementación tenga permisos para crear roles de IAM.

  • Comprueba que las condiciones de la política de confianza coincidan con el identificador de tu cuenta.

Cross-account la implementación falla y aparece el mensaje «No se pudo asumir el rol en la cuenta de destino»

  • Cada pila se debe implementar con las credenciales de la cuenta de destino. Utilice la --profile marca para especificar el perfil AWS CLI correcto.

  • Verifique que el AWS CDK se haya iniciado en la cuenta de destino.

Retrasos en la propagación de IAM

  • Los cambios de rol de IAM pueden tardar unos minutos en propagarse. Si la creación del espacio de agentes falla inmediatamente después de crear el rol, espere unos minutos y vuelva a implementarlo.

Limpieza

Para eliminar todos los recursos, destruye las pilas en orden inverso.

Ejecuta los siguientes comandos para destruir las pilas:

# If you deployed the ServiceStack, destroy it first cdk destroy ServiceStack --profile service # Then destroy the DevOpsAgentStack cdk destroy DevOpsAgentStack --profile monitoring

Advertencia: esta acción elimina permanentemente tu espacio de agente y todos los datos asociados. Esta acción no se puede deshacer. Asegúrese de haber realizado una copia de seguridad de toda la información importante antes de continuar.

Consideraciones de seguridad

  • La aplicación AWS CDK crea funciones de IAM con políticas de confianza que solo permiten que el principal del aidevops.amazonaws.com servicio las asuma.

  • Las políticas de confianza incluyen condiciones que restringen el acceso a su AWS cuenta y espacio de agente específicos (ARN).

  • Todas las políticas siguen el principio de privilegio mínimo. Revisa y personaliza las políticas de IAM en función de los requisitos de seguridad de tu organización.

  • El rol multicuenta (DevOpsAgentRole-SecondaryAccount) usa un nombre fijo y se limita a un ARN de espacio de agentes específico.

Siguientes pasos

Una vez que haya desplegado su AWS DevOps agente mediante el CDK: AWS

  1. Obtenga más información sobre la gama completa de capacidades del DevOps agente en la guía del usuario del AWS DevOps agente.

  2. Considere la posibilidad de integrar la implementación del AWS CDK en sus CI/CD procesos para una administración automatizada de la infraestructura.

  3. Si registras una integración de terceros, gira el webhook en la consola para obtener la URL y el secreto del webhook. El AWS CDK se implementa de forma automática AWS CloudFormation, lo que no devuelve el secreto del webhook como resultado de la pila. Para obtener instrucciones sobre cómo administrar las credenciales de los webhooks, consulte Administrar las credenciales de los webhooks.

Recursos adicionales