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.
Cómo empezar a usar AWS DevOps Agent mediante AWS CDK
Descripción general de
Esta guía muestra cómo usar el AWS Cloud Development Kit (AWS CDK) para crear e implementar recursos de AWS DevOps agentes. La aplicación AWS CDK automatiza la creación de un espacio de agentes, funciones de AWS Identity and Access Management (IAM), una aplicación de operador y asociaciones de cuentas mediante. AWS AWS CloudFormation
El enfoque AWS CDK automatiza los pasos manuales descritos en la guía de incorporación de CLI al definir todos los recursos necesarios como infraestructura o código.
AWS DevOps El agente está disponible en las siguientes 6 AWS regiones: EE.UU. Este (Norte de Virginia), EE.UU. Oeste (Oregón), Asia Pacífico (Sídney), Asia Pacífico (Tokio), Europa (Fráncfort) y Europa (Irlanda). Para obtener más información sobre las regiones compatibles, consulteRegiones admitidas.
Requisitos previos
Antes de comenzar, asegúrese de que dispone de lo siguiente:
AWS Interfaz de línea de comandos (AWS CLI) instalada y configurada con las credenciales adecuadas
La versión 18 o posterior de Node.js
AWS Interfaz de línea de comandos (CLI) CDK instalada globalmente. Para instalar la CLI de 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 desea configurar la supervisión multicuenta
¿Qué cubre esta guía
Esta guía se divide en dos partes:
Parte 1: Implemente un espacio de agente con una aplicación de operador y una AWS asociación en su cuenta de monitoreo. Una vez completada esta parte, el agente puede supervisar los problemas en 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 que el espacio de agentes supervise 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 agente para supervisar la cuenta. Incluye la políticaAIDevOpsAgentAccessPolicyadministrada y una política en línea que permite la creación del rol vinculado al servicio Resource Explorer.Función de IAM (
DevOpsAgentRole-WebappAdmin): función de operador en la aplicación con la políticaAIDevOpsOperatorAppAccessPolicygestionada para las operaciones de los agentes.Espacio de agente (
MyCDKAgentSpace): el espacio de agente central, creado mediante elAWS::DevOpsAgent::AgentSpaceCloudFormation recurso. Incluye la configuración de la aplicación del operador.Asociación (AWS monitor): vincula la cuenta de monitoreo al espacio del agente mediante el
AWS::DevOpsAgent::AssociationCloudFormation recurso.Asociación (AWS fuente): (opcional) vincula la cuenta de servicio al espacio de agentes para la supervisión de varias cuentas.
Parte 2: ServiceStack (cuenta de servicio, opcional)
Función de IAM (
DevOpsAgentRole-SecondaryAccount): función multicuenta con un nombre fijo. El espacio de agente de la cuenta de supervisión confía en él. Incluye la políticaAIDevOpsAgentAccessPolicyadministrada y una política en línea que permite la creación del rol vinculado al servicio Resource Explorer.Función Lambda (
echo-service): un servicio de ejemplo sencillo que reproduce 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: Despliegue el espacio de agentes
En esta sección, creará el espacio de agentes, las funciones de IAM, la aplicación del operador y una AWS asociación en su cuenta de supervisión.
Paso 1: Configure 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 se va a actualizar:
export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";
Paso 2: Inicie el entorno AWS 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: Registra los resultados de la pila
Una vez completada la implementación, la AWS CDK imprime los resultados 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 segunda parte, 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 agentes se creó correctamente, ejecute el siguiente comando AWS CLI:
aws devopsagent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>
En este punto, su espacio de agente se despliega con la aplicación del operador habilitada y su cuenta de supervisión asociada. El agente puede supervisar los problemas en esta cuenta.
Parte 2 (opcional): Añadir la supervisión entre cuentas
En esta sección, ampliará la configuración para que su espacio de agente pueda supervisar los recursos de una segunda AWS cuenta (la cuenta de servicio). Esto implica dos acciones:
Añadir una AWS asociación de origen en la DevOpsAgentStack que apunte a la cuenta de servicio.
Implementarla ServiceStack en la cuenta de servicio con una función de IAM que confíe en el espacio del agente.
importante
Debe completar la primera parte antes de continuar. ServiceStack Requiere el resultado AgentSpaceArn del DevOpsAgentStack despliegue.
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 se va a actualizar:
export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";
DevOpsAgentStack Crea una AWS asociación de fuentes 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 desplegarla:
npm run build cdk deploy DevOpsAgentStack --profile monitoring
Paso 2: Configurar el ARN del espacio de agentes
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 va a actualizar:
export const AGENT_SPACE_ARN = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<SPACE_ID>";
ServiceStack Utiliza este valor para determinar el alcance de la política de confianza en el rol de cuenta secundaria. El solo ServiceStack se sintetiza cuando se establece este valor.
Paso 3: Inicie la cuenta de servicio
Si no has iniciado la AWS CDK de tu cuenta de servicio, ejecuta el siguiente comando:
cdk bootstrap aws://<SERVICE_ACCOUNT_ID>/<REGION> --profile service
Paso 4: Implemente el ServiceStack
Ejecute los siguientes comandos para crear e implementar el 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 agentes de la cuenta de supervisiónUna función echo Lambda (
echo-service) como servicio de ejemplo
Paso 5: Verificar el despliegue
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 más comunes y cómo resolverlos.
CloudFormation no se encontró el tipo de recurso
Compruebe que está realizando el despliegue en unRegiones admitidas.
Confirme que la AWS CLI esté configurada con los permisos adecuados.
Error al crear el rol de IAM
Compruebe que su función de despliegue tenga permisos para crear funciones de IAM.
Comprueba que las condiciones de la política de confianza coincidan con tu ID de cuenta.
El despliegue entre cuentas falla y muestra el mensaje «No se pudo asumir el rol en la cuenta de destino»
Cada pila debe implementarse con las credenciales de la cuenta de destino. Utilice la
--profilemarca para especificar el perfil AWS CLI correcto.Compruebe que la 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 se produce un error al crear el espacio de agente inmediatamente después de crear el rol, espere unos minutos y vuelva a desplegarlo.
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 su espacio de agente y todos los datos asociados. Esta acción no se puede deshacer. Asegúrese de haber hecho 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 director del
aidevops.amazonaws.com.rproxy.govskope.usservicio las asuma.Las políticas de confianza incluyen condiciones que restringen el acceso a su AWS cuenta específica y al ARN del espacio de agente.
Todas las políticas siguen el principio del privilegio mínimo. Revise y personalice las políticas de IAM en función de los requisitos de seguridad de su 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 la CDK: AWS
Obtenga más información sobre la gama completa de funciones del DevOps agente en la Guía del usuario del AWS DevOps agente.
Considere la posibilidad de integrar la implementación de la AWS CDK en sus CI/CD procesos para automatizar la administración de la infraestructura.
Recursos adicionales
Ejemplo de repositorio de CDK
en el sitio web GitHub