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á.
Conceitos básicos de AWS DevOps Agente usando 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 para agentes, funções de gerenciamento de AWS identidade e acesso (IAM), um aplicativo de operador e associações de AWS contas por meio dele. 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 e código.
AWS DevOps O agente está disponível em várias AWS regiões. Para ver a lista completa, consulte Regiõ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 posterior
AWS Interface de linha de comando (CLI) 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 de 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)
Papel do IAM (
DevOpsAgentRole-AgentSpace) — Assumido pelo serviço do DevOps agente para monitorar a conta. Inclui a políticaAIDevOpsAgentAccessPolicygerenciada e uma política em linha que permite a criação da função vinculada ao serviço do Resource Explorer.Papel do IAM (
DevOpsAgentRole-WebappAdmin) — Função do aplicativo do operador com a políticaAIDevOpsOperatorAppAccessPolicygerenciada para operações do agente.Espaço do agente (
MyCDKAgentSpace) — O espaço do agente central, criado usando oAWS::DevOpsAgent::AgentSpaceCloudFormation 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::AssociationCloudFormation recurso.Associação (AWS origem) — (opcional) vincula a conta de serviço ao espaço do agente para monitoramento entre contas.
Parte 2: ServiceStack (conta de serviço, opcional)
Papel do IAM (
DevOpsAgentRole-SecondaryAccount) — Cross-account função com um nome fixo. Confiável pelo espaço do agente na conta de monitoramento. Inclui a políticaAIDevOpsAgentAccessPolicygerenciada e uma política em linha que permite a criação da função vinculada ao serviço do Resource Explorer.Função lambda (
echo-service) — Um exemplo de serviço simples que ecoa eventos de entrada.
Configuração
Etapa 1: clonar o repositório de amostra
Execute os seguintes comandos 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 em 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: inicialize o AWS Ambiente 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 seguintes comandos para criar o TypeScript código e implantar a pilha:
npm run build cdk deploy DevOpsAgentStack --profile monitoring
Etapa 4: registre 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 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:
Adicionar uma AWS associação de origem DevOpsAgentStack que aponte para a conta de serviço.
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 secundária da conta. O só ServiceStack é sintetizado quando esse valor é definido.
Etapa 3: inicializar a conta de serviço
Se você não inicializou o AWS CDK em 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 seguintes comandos 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 monitoramentoUma função echo Lambda (
echo-service) como um serviço de exemplo
Etapa 5: Verificar a implantação
Para confirmar se 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.
Cross-account a implantação 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
--profilesinalizador 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 serem propagadas. 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 principal do
aidevops.amazonaws.com.rproxy.govskope.caserviç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 específico do espaço do agente.
Próximas etapas
Depois de implantar seu AWS DevOps agente usando o AWS CDK:
Saiba mais sobre a gama completa de recursos do DevOps agente no Guia do usuário do AWS DevOps agente.
Considere integrar a implantação do AWS CDK em seus CI/CD pipelines para o gerenciamento automatizado da infraestrutura.
Se você registrar uma integração de terceiros, obtenha o URL e o segredo do webhook girando o webhook no console. O AWS CDK é implantado por meio de AWS CloudFormation, o que não retorna o segredo do webhook como uma saída de pilha. Para obter instruções sobre como gerenciar credenciais de webhook, consulte Gerenciando credenciais de webhook.
Recursos adicionais do
Exemplo de repositório CDK
no site GitHub AWS Referência da biblioteca de construção do CDK DevOps Agent na Referência da AWS API CDK