View a markdown version of this page

Introdução ao AWS DevOps Agent usando o AWS CDK - AWS DevOps Agente

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Introdução ao AWS DevOps Agent usando o AWS CDK

Visão geral do

Este guia mostra como usar o AWS Cloud Development Kit (AWS CDK) para criar e implantar recursos do AWS DevOps Agente. O aplicativo AWS CDK automatiza a criação de um espaço de agente, funções de AWS Identity and Access Management (IAM), um aplicativo de operador e associações de contas por meio de. AWS AWS CloudFormation

A abordagem AWS CDK automatiza as etapas manuais descritas no guia de integração da CLI, definindo todos os recursos necessários como infraestrutura como código.

AWS DevOps O agente está disponível nas seguintes 6 AWS regiões: Leste dos EUA (Norte da Virgínia), Oeste dos EUA (Oregon), Ásia-Pacífico (Sydney), Ásia-Pacífico (Tóquio), Europa (Frankfurt) e Europa (Irlanda). Para obter mais informações sobre as regiões suportadas, consulteRegiões aceitas.

Pré-requisitos

Antes de começar, verifique se você tem o seguinte:

  • AWS Interface de linha de comando (AWS CLI) instalada e configurada com as credenciais apropriadas

  • Node.js, versão 18 ou versões posteriores

  • AWS Interface de linha de comando (CLI) do CDK instalada globalmente. Para instalar a CLI do AWS CDK, execute o seguinte comando:

npm install -g aws-cdk
  • Uma AWS conta para a conta de monitoramento (primária)

  • (Opcional) Uma segunda AWS conta se você quiser configurar o monitoramento entre contas

O que este guia aborda

Este guia está dividido em duas partes:

  • Parte 1 — Implante um espaço de agente com um aplicativo de operador e uma AWS associação em sua conta de monitoramento. Depois de concluir essa parte, o agente pode monitorar problemas nessa conta.

  • Parte 2 (opcional) — Adicione uma AWS associação de origem para uma conta de serviço e implante uma função do IAM entre contas nessa conta. Essa configuração permite que o espaço do agente monitore recursos em todas as contas.

Recursos criados

Parte 1: DevOpsAgentStack (conta de monitoramento)

  • Função do IAM (DevOpsAgentRole-AgentSpace) — assumida pelo serviço do DevOps agente para monitorar a conta. Inclui a política AIDevOpsAgentAccessPolicy gerenciada e uma política em linha que permite a criação da função vinculada ao serviço Resource Explorer.

  • Função do IAM (DevOpsAgentRole-WebappAdmin) — Função do aplicativo operador com a política AIDevOpsOperatorAppAccessPolicy gerenciada para operações do agente.

  • Espaço do agente (MyCDKAgentSpace) — O espaço do agente central, criado usando o AWS::DevOpsAgent::AgentSpace CloudFormation recurso. Inclui a configuração do aplicativo do operador.

  • Associação (AWS monitor) — vincula a conta de monitoramento ao espaço do agente usando o AWS::DevOpsAgent::Association CloudFormation recurso.

  • Associação (AWS fonte) — (Opcional) Vincula a conta de serviço ao espaço do agente para monitoramento entre contas.

Parte 2: ServiceStack (conta de serviço, opcional)

  • Função do IAM (DevOpsAgentRole-SecondaryAccount) — Função entre contas com um nome fixo. Confiável pelo espaço do agente na conta de monitoramento. Inclui a política AIDevOpsAgentAccessPolicy gerenciada e uma política em linha que permite a criação da função vinculada ao serviço Resource Explorer.

  • Função Lambda (echo-service) — Um exemplo simples de serviço que reflete eventos de entrada.

Configuração

Etapa 1: clonar o repositório de amostra

Execute os comandos a seguir para clonar o repositório e mudar para o diretório do projeto:

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

Etapa 2: instalar dependências

Execute o comando a seguir para instalar as dependências do projeto:

npm install

Parte 1: Implantar o espaço do agente

Nesta seção, você cria o espaço do agente, as funções do IAM, o aplicativo do operador e uma AWS associação na sua conta de monitoramento.

Etapa 1: configurar o ID da conta de monitoramento

Abra lib/constants.ts e defina o ID da sua conta de monitoramento:

O exemplo a seguir mostra a constante a ser atualizada:

export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";

Etapa 2: Inicializar o ambiente AWS CDK

Se você não inicializou o AWS CDK em sua conta de monitoramento, execute o seguinte comando:

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

Etapa 3: criar e implantar

Execute os comandos a seguir para criar o TypeScript código e implantar a pilha:

npm run build cdk deploy DevOpsAgentStack --profile monitoring

Etapa 4: Grave as saídas da pilha

Após a conclusão da implantação, o AWS CDK imprime as saídas da pilha. Registre esses valores para uso posterior.

O exemplo a seguir mostra a saída esperada:

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

Se você planeja concluir a Parte 2, salve o AgentSpaceArn valor. Você precisa dele para configurar a pilha de contas de serviço.

Etapa 5: verificar a implantação

Para verificar se o espaço do agente foi criado com êxito, execute o seguinte comando da AWS CLI:

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

Nesse ponto, seu espaço de agente é implantado com o aplicativo do operador ativado e sua conta de monitoramento associada. O agente pode monitorar problemas nessa conta.

Parte 2 (opcional): adicionar monitoramento entre contas

Nesta seção, você estende a configuração para que seu espaço de agente possa monitorar recursos em uma segunda AWS conta (a conta de serviço). Isso envolve duas ações:

  1. Adicionar uma AWS associação de origem na DevOpsAgentStack que aponta para a conta de serviço.

  2. Implantando o ServiceStack na conta de serviço com uma função do IAM que confia no espaço do agente.

Importante

Você deve concluir a Parte 1 antes de continuar. O ServiceStack requer o AgentSpaceArn da saída DevOpsAgentStack de implantação.

Etapa 1: configurar o ID da conta de serviço

Abra lib/constants.ts e defina o ID da sua conta de serviço:

O exemplo a seguir mostra a constante a ser atualizada:

export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";

O DevOpsAgentStack cria uma AWS associação de origem usando esse ID de conta. Se você implantou o DevOpsAgentStack antes de definir esse valor, reimplante para criar a associação:

Execute os seguintes comandos para reimplantar:

npm run build cdk deploy DevOpsAgentStack --profile monitoring

Etapa 2: definir o ARN do espaço do agente

Copie o AgentSpaceArn valor da DevOpsAgentStack saída (Parte 1, Etapa 4) e defina-o emlib/constants.ts:

O exemplo a seguir mostra a constante a ser atualizada:

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

O ServiceStack usa esse valor para definir o escopo da política de confiança na função de conta secundária. O só ServiceStack é sintetizado quando esse valor é definido.

Etapa 3: inicializar a conta de serviço

Se você não inicializou o AWS CDK na sua conta de serviço, execute o seguinte comando:

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

Etapa 4: implantar o ServiceStack

Execute os comandos a seguir para criar e implantar o ServiceStack usando credenciais para a conta de serviço:

npm run build cdk deploy ServiceStack --profile service

Isso cria os seguintes recursos na conta de serviço:

  • Uma função do IAM (DevOpsAgentRole-SecondaryAccount) que confia no espaço do agente na conta de monitoramento

  • Uma função echo Lambda echo-service () como um serviço de exemplo

Etapa 5: verificar a implantação

Para confirmar que a função Lambda foi implantada com sucesso, execute os seguintes comandos para testar o serviço echo:

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

Solução de problemas

Esta seção descreve problemas comuns e como resolvê-los.

CloudFormation tipo de recurso não encontrado

  • Verifique se você está implantando em umRegiões aceitas.

  • Confirme se sua AWS CLI está configurada com as permissões apropriadas.

Falha na criação da função do IAM

  • Verifique se sua função de implantação tem permissões para criar funções do IAM.

  • Verifique se as condições da política de confiança correspondem ao ID da sua conta.

A implantação entre contas falha com “Não foi possível assumir a função na conta de destino”

  • Cada pilha deve ser implantada com credenciais para a conta de destino. Use o --profile sinalizador para especificar o perfil AWS CLI correto.

  • Verifique se o AWS CDK foi inicializado na conta de destino.

Atrasos na propagação do IAM

  • As mudanças de função do IAM podem levar alguns minutos para se propagar. Se a criação do espaço do agente falhar imediatamente após a criação da função, aguarde alguns minutos e reimplante.

Limpeza

Para remover todos os recursos, destrua as pilhas na ordem inversa.

Execute os seguintes comandos para destruir as pilhas:

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

Aviso: essa ação exclui permanentemente o espaço do agente e todos os dados associados. Esta ação não pode ser desfeita. Certifique-se de ter feito backup de todas as informações importantes antes de continuar.

Considerações sobre segurança

  • O aplicativo AWS CDK cria funções do IAM com políticas de confiança que só permitem que o responsável pelo aidevops.amazonaws.com serviço as assuma.

  • As políticas de confiança incluem condições que restringem o acesso à sua AWS conta específica e ao ARN do espaço do agente.

  • Todas as políticas seguem o princípio do menor privilégio. Analise e personalize as políticas do IAM com base nos requisitos de segurança da sua organização.

  • A função entre contas (DevOpsAgentRole-SecondaryAccount) usa um nome fixo e tem como escopo um ARN de espaço de agente específico.

Próximas etapas

Depois de implantar seu AWS DevOps agente usando o AWS CDK:

  1. Saiba mais sobre a gama completa de recursos do DevOps Agente no Guia do Usuário do AWS DevOps Agente.

  2. Considere integrar a implantação do AWS CDK em seus CI/CD pipelines para gerenciamento automatizado da infraestrutura.

Recursos adicionais do