View a markdown version of this page

Cómo empezar a usar AWS DevOps Agent AWS CloudFormation - 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.

Cómo empezar a usar AWS DevOps Agent AWS CloudFormation

Descripción general de

En esta guía, se muestra cómo utilizar AWS CloudFormation plantillas para crear e implementar los recursos AWS DevOps del agente. Las plantillas automatizan la creación de un espacio de agentes, funciones de AWS Identity and Access Management (IAM), una aplicación de operador y asociaciones de AWS cuentas tanto de infraestructura como de código.

El CloudFormation enfoque automatiza los pasos manuales descritos en la guía de incorporación de la CLI al definir todos los recursos necesarios en plantillas YAML declarativas.

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

  • Permisos para crear roles y CloudFormation pilas de IAM

  • 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): implementar una función de IAM multicuenta en una cuenta secundaria y añadir una asociación de origen AWS . Esta configuración permite que el espacio de agentes supervise los recursos de todas las cuentas.

Parte 1: Despliegue el espacio de agentes

En esta sección, debe crear una CloudFormation plantilla que aprovisione el espacio de agente, las funciones de IAM, la aplicación del operador y una AWS asociación en su cuenta de monitoreo.

Paso 1: Crea la plantilla CloudFormation

Guarde la siguiente plantilla comodevops-agent-stack.yaml:

AWSTemplateFormatVersion: '2010-09-09' Description: AWS DevOps Agent - Agent Space with IAM roles, operator app, and AWS association Parameters: AgentSpaceName: Type: String Default: MyCloudFormationAgentSpace Description: Name for the agent space AgentSpaceDescription: Type: String Default: Agent space deployed with CloudFormation Description: Description for the agent space Resources: # IAM role assumed by the DevOps Agent service to monitor the account DevOpsAgentSpaceRole: Type: AWS::IAM::Role Properties: RoleName: DevOpsAgentRole-AgentSpace AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: aidevops.amazonaws.com Action: sts:AssumeRole Condition: StringEquals: aws:SourceAccount: !Ref AWS::AccountId ArnLike: aws:SourceArn: !Sub arn:aws:aidevops:${AWS::Region}:${AWS::AccountId}:agentspace/* ManagedPolicyArns: - arn:aws:iam::aws:policy/AIDevOpsAgentAccessPolicy Policies: - PolicyName: AllowCreateServiceLinkedRoles PolicyDocument: Version: '2012-10-17' Statement: - Sid: AllowCreateServiceLinkedRoles Effect: Allow Action: - iam:CreateServiceLinkedRole Resource: - !Sub arn:aws:iam::${AWS::AccountId}:role/aws-service-role/resource-explorer-2.amazonaws.com/AWSServiceRoleForResourceExplorer # IAM role for the operator app interface DevOpsOperatorRole: Type: AWS::IAM::Role Properties: RoleName: DevOpsAgentRole-WebappAdmin AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: aidevops.amazonaws.com Action: - sts:AssumeRole - sts:TagSession Condition: StringEquals: aws:SourceAccount: !Ref AWS::AccountId ArnLike: aws:SourceArn: !Sub arn:aws:aidevops:${AWS::Region}:${AWS::AccountId}:agentspace/* ManagedPolicyArns: - arn:aws:iam::aws:policy/AIDevOpsOperatorAppAccessPolicy # The agent space resource AgentSpace: Type: AWS::DevOpsAgent::AgentSpace DependsOn: - DevOpsAgentSpaceRole - DevOpsOperatorRole Properties: Name: !Ref AgentSpaceName Description: !Ref AgentSpaceDescription OperatorApp: Iam: OperatorAppRoleArn: !GetAtt DevOpsOperatorRole.Arn # Association linking the monitoring account to the agent space MonitorAssociation: Type: AWS::DevOpsAgent::Association Properties: AgentSpaceId: !GetAtt AgentSpace.AgentSpaceId ServiceId: aws Configuration: Aws: AssumableRoleArn: !GetAtt DevOpsAgentSpaceRole.Arn AccountId: !Ref AWS::AccountId AccountType: monitor Outputs: AgentSpaceId: Description: The agent space ID Value: !GetAtt AgentSpace.AgentSpaceId AgentSpaceArn: Description: The agent space ARN Value: !GetAtt AgentSpace.Arn AgentSpaceRoleArn: Description: The agent space IAM role ARN Value: !GetAtt DevOpsAgentSpaceRole.Arn OperatorRoleArn: Description: The operator app IAM role ARN Value: !GetAtt DevOpsOperatorRole.Arn

Paso 2: Despliegue la pila

Ejecute el siguiente comando para implementar la pila. <REGION>Sustitúyalo por un Regiones admitidas (por ejemplo,us-east-1).

aws cloudformation deploy \ --template-file devops-agent-stack.yaml \ --stack-name DevOpsAgentStack \ --capabilities CAPABILITY_NAMED_IAM \ --region <REGION>

Paso 3: Registre las salidas de la pila

Una vez completada la implementación, ejecute el siguiente comando para recuperar los resultados de la pila. Registre estos valores para usarlos más adelante.

aws cloudformation describe-stacks \ --stack-name DevOpsAgentStack \ --query 'Stacks[0].Outputs' \ --region <REGION>

El siguiente ejemplo muestra el resultado esperado:

[ { "OutputKey": "AgentSpaceId", "OutputValue": "abc123def456" }, { "OutputKey": "AgentSpaceArn", "OutputValue": "arn:aws:aidevops:<REGION>:<ACCOUNT_ID>:agentspace/abc123def456" }, { "OutputKey": "AgentSpaceRoleArn", "OutputValue": "arn:aws:iam::<ACCOUNT_ID>:role/DevOpsAgentRole-AgentSpace" }, { "OutputKey": "OperatorRoleArn", "OutputValue": "arn:aws:iam::<ACCOUNT_ID>:role/DevOpsAgentRole-WebappAdmin" } ]

Si planea completar la segunda parte, guarde el AgentSpaceArn valor. Lo necesita para configurar el rol multicuenta.

Paso 4: Verificar la implementación

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

aws devops-agent 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:

  1. Implementar una función de IAM en la cuenta de servicio que confía en el espacio de agentes.

  2. Añadir una AWS asociación de origen a la cuenta de supervisión que apunte a la cuenta de servicio.

Paso 1: Crear la plantilla de cuenta de servicio

Guarde la siguiente plantilla comodevops-agent-service-account.yaml. Esta plantilla crea un rol de IAM multicuenta en la cuenta secundaria.

AWSTemplateFormatVersion: '2010-09-09' Description: AWS DevOps Agent - Cross-account IAM role for secondary account monitoring Parameters: MonitoringAccountId: Type: String Description: The 12-digit AWS account ID of the monitoring account AgentSpaceArn: Type: String Description: The ARN of the agent space from the monitoring account Resources: # Cross-account IAM role trusted by the agent space DevOpsSecondaryAccountRole: Type: AWS::IAM::Role Properties: RoleName: DevOpsAgentRole-SecondaryAccount AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: aidevops.amazonaws.com Action: sts:AssumeRole Condition: StringEquals: aws:SourceAccount: !Ref MonitoringAccountId ArnLike: aws:SourceArn: !Ref AgentSpaceArn ManagedPolicyArns: - arn:aws:iam::aws:policy/AIDevOpsAgentAccessPolicy Policies: - PolicyName: AllowCreateServiceLinkedRoles PolicyDocument: Version: '2012-10-17' Statement: - Sid: AllowCreateServiceLinkedRoles Effect: Allow Action: - iam:CreateServiceLinkedRole Resource: - !Sub arn:aws:iam::${AWS::AccountId}:role/aws-service-role/resource-explorer-2.amazonaws.com/AWSServiceRoleForResourceExplorer Outputs: SecondaryAccountRoleArn: Description: The cross-account IAM role ARN Value: !GetAtt DevOpsSecondaryAccountRole.Arn

Paso 2: Implemente la pila de cuentas de servicio

Con las credenciales de la cuenta de servicio, ejecute el siguiente comando:

aws cloudformation deploy \ --template-file devops-agent-service-account.yaml \ --stack-name DevOpsAgentServiceAccountStack \ --capabilities CAPABILITY_NAMED_IAM \ --parameter-overrides \ MonitoringAccountId=<MONITORING_ACCOUNT_ID> \ AgentSpaceArn=<AGENT_SPACE_ARN> \ --region <REGION>

Paso 3: Añada la AWS asociación de origen

Vuelva a la cuenta de monitoreo y cree una AWS asociación de fuentes. Para ello, puede crear una pila independiente o actualizar la plantilla original. En el siguiente ejemplo, se utiliza una plantilla independiente.

Guarde la siguiente plantilla comodevops-agent-source-association.yaml:

AWSTemplateFormatVersion: '2010-09-09' Description: AWS DevOps Agent - Source AWS association for cross-account monitoring Parameters: AgentSpaceId: Type: String Description: The agent space ID from the monitoring account stack ServiceAccountId: Type: String Description: The 12-digit AWS account ID of the service account ServiceAccountRoleArn: Type: String Description: The ARN of the DevOpsAgentRole-SecondaryAccount role in the service account Resources: SourceAssociation: Type: AWS::DevOpsAgent::Association Properties: AgentSpaceId: !Ref AgentSpaceId ServiceId: aws Configuration: SourceAws: AccountId: !Ref ServiceAccountId AccountType: source AssumableRoleArn: !Ref ServiceAccountRoleArn Outputs: SourceAssociationId: Description: The source association ID Value: !Ref SourceAssociation

Implemente la pila de asociaciones mediante las credenciales de la cuenta de supervisión:

aws cloudformation deploy \ --template-file devops-agent-source-association.yaml \ --stack-name DevOpsAgentSourceAssociationStack \ --parameter-overrides \ AgentSpaceId=<AGENT_SPACE_ID> \ ServiceAccountId=<SERVICE_ACCOUNT_ID> \ ServiceAccountRoleArn=arn:aws:iam::<SERVICE_ACCOUNT_ID>:role/DevOpsAgentRole-SecondaryAccount \ --region <REGION>

Verificación

Verifique la configuración ejecutando los siguientes comandos de AWS CLI:

# List your agent spaces aws devops-agent list-agent-spaces \ --region <REGION> # Get details of a specific agent space aws devops-agent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION> # List associations for an agent space aws devops-agent list-associations \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>

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.

No se pudo crear el rol de IAM

  • Compruebe que sus credenciales de despliegue tengan permisos para crear roles de IAM con nombres personalizados ()CAPABILITY_NAMED_IAM.

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

Se produce un error en el despliegue entre cuentas

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

  • Verifique que el AgentSpaceArn parámetro coincida con el ARN exacto de las salidas de la pila de la Parte 1.

Retrasos de 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, elimine las pilas en orden inverso.

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.

Ejecute los siguientes comandos para eliminar las pilas:

# If you deployed the source association stack, delete it first aws cloudformation delete-stack \ --stack-name DevOpsAgentSourceAssociationStack \ --region <REGION> aws cloudformation wait stack-delete-complete \ --stack-name DevOpsAgentSourceAssociationStack \ --region <REGION> # If you deployed the service account stack, delete it next (using service account credentials) aws cloudformation delete-stack \ --stack-name DevOpsAgentServiceAccountStack \ --region <REGION> aws cloudformation wait stack-delete-complete \ --stack-name DevOpsAgentServiceAccountStack \ --region <REGION> # Delete the main stack last aws cloudformation delete-stack \ --stack-name DevOpsAgentStack \ --region <REGION>

Siguientes pasos

Una vez que haya desplegado su AWS DevOps agente mediante AWS CloudFormation: