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íticaAIDevOpsAgentAccessPolicygerenciada 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í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 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íticaAIDevOpsAgentAccessPolicygerenciada 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:
Adicionar uma AWS associação de origem na DevOpsAgentStack que aponta 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 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 monitoramentoUma 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
--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 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.rproxy.govskope.usserviç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:
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 gerenciamento automatizado da infraestrutura.