

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
<a name="getting-started-with-aws-devops-agent-getting-started-with-aws-devops-agent-using-aws-cdk"></a>

## Descripción general de
<a name="overview"></a>

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](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html) 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, consulte[Regiones admitidas](about-aws-devops-agent-supported-regions.md).

## Requisitos previos
<a name="prerequisites"></a>

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
<a name="what-this-guide-covers"></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
<a name="resources-created"></a>

### Parte 1: DevOpsAgentStack (supervisión de la cuenta)
<a name="part-1-devopsagentstack-monitoring-account"></a>
+ **Función de IAM** (`DevOpsAgentRole-AgentSpace`): la asume el servicio de DevOps agente para supervisar la cuenta. Incluye la política `AIDevOpsAgentAccessPolicy` administrada 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ítica `AIDevOpsOperatorAppAccessPolicy` gestionada para las operaciones de los agentes.
+ **Espacio de agente** (`MyCDKAgentSpace`): el espacio de agente central, creado mediante el `AWS::DevOpsAgent::AgentSpace` CloudFormation 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::Association` CloudFormation 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)
<a name="part-2-servicestack-service-account-optional"></a>
+ **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ítica `AIDevOpsAgentAccessPolicy` administrada 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
<a name="setup"></a>

### Paso 1: clona el repositorio de muestras
<a name="step-1-clone-the-sample-repository"></a>

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
<a name="step-2-install-dependencies"></a>

Ejecute el siguiente comando para instalar las dependencias del proyecto:

```
npm install
```

## Parte 1: Despliegue el espacio de agentes
<a name="part-1-deploy-the-agent-space"></a>

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
<a name="step-1-configure-the-monitoring-account-id"></a>

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
<a name="step-2-bootstrap-the-aws-cdk-environment"></a>

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
<a name="step-3-build-and-deploy"></a>

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
<a name="step-4-record-the-stack-outputs"></a>

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
<a name="step-5-verify-the-deployment"></a>

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
<a name="part-2-optional-add-cross-account-monitoring"></a>

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:

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

1. 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
<a name="step-1-configure-the-service-account-id"></a>

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
<a name="step-2-set-the-agent-space-arn"></a>

Copie el `AgentSpaceArn` valor de la DevOpsAgentStack salida (parte 1, paso 4) y configúrelo en`lib/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
<a name="step-3-bootstrap-the-service-account"></a>

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
<a name="step-4-deploy-the-servicestack"></a>

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ón
+ Una función echo Lambda (`echo-service`) como servicio de ejemplo

### Paso 5: Verificar el despliegue
<a name="step-5-verify-the-deployment"></a>

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
<a name="troubleshooting"></a>

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 un[Regiones admitidas](about-aws-devops-agent-supported-regions.md).
+ 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 `--profile` marca 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
<a name="cleanup"></a>

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
<a name="security-considerations"></a>
+ La aplicación AWS CDK crea funciones de IAM con políticas de confianza que solo permiten que el director del `aidevops.amazonaws.com` servicio 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
<a name="next-steps"></a>

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

1. Obtenga más información sobre la gama completa de funciones del DevOps agente en la [Guía del usuario del AWS DevOps agente](https://docs.aws.amazon.com/devopsagent/latest/userguide/).

1. 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
<a name="additional-resources"></a>
+ [AWS DevOps Guía del usuario del agente](https://docs.aws.amazon.com/devopsagent/latest/userguide/)
+ [Ejemplo de repositorio de CDK](https://github.com/aws-samples/sample-aws-devops-agent-cdk) en el sitio web GitHub 
+ [Guía de incorporación de CLI](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html)