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:
Implementar una función de IAM en la cuenta de servicio que confía en el espacio de agentes.
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
--profilemarca para especificar el perfil AWS CLI correcto.Verifique que el
AgentSpaceArnpará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:
Para conectar integraciones adicionales, consulteConfiguración de las capacidades del AWS DevOps agente.
Para obtener más información sobre las habilidades y capacidades de los agentes, consulteDevOps Habilidades de agente.
Para entender la aplicación web del operador, consulte¿Qué es una aplicación web para DevOps agentes?.