View a markdown version of this page

Guida introduttiva all'utilizzo di AWS DevOps Agent con AWS CDK - AWS DevOps Agente

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Guida introduttiva all'utilizzo di AWS DevOps Agent con AWS CDK

Panoramica di

Questa guida mostra come utilizzare il AWS Cloud Development Kit (AWS CDK) per creare e distribuire risorse per AWS DevOps agenti. L'applicazione AWS CDK automatizza la creazione di uno spazio agente, ruoli AWS Identity and Access Management (IAM), un'app operatore e AWS le associazioni di account tramite. AWS CloudFormation

L'approccio AWS CDK automatizza i passaggi manuali descritti nella guida all'onboarding della CLI definendo tutte le risorse richieste come infrastruttura come codice.

AWS DevOps L'agente è disponibile nelle seguenti 6 AWS regioni: Stati Uniti orientali (Virginia settentrionale), Stati Uniti occidentali (Oregon), Asia Pacifico (Sydney), Asia Pacifico (Tokyo), Europa (Francoforte) ed Europa (Irlanda). Per ulteriori informazioni sulle regioni supportate, consulta. Regioni supportate

Prerequisiti

Prima di iniziare, assicurati di disporre di:

  • AWS Interfaccia a riga di comando (AWS CLI) installata e configurata con le credenziali appropriate

  • Node.js versione 18 o successiva

  • AWS Interfaccia a riga di comando (CLI) CDK installata a livello globale. Per installare la CLI AWS CDK, esegui il seguente comando:

npm install -g aws-cdk
  • Un AWS account per l'account di monitoraggio (primario)

  • (Facoltativo) Un secondo AWS account se desideri configurare il monitoraggio tra più account

Cosa tratta questa guida

Questa guida è divisa in due parti:

  • Parte 1: implementa uno spazio per agenti con un'app per operatori e un' AWS associazione nel tuo account di monitoraggio. Dopo aver completato questa parte, l'agente può monitorare i problemi relativi all'account.

  • Parte 2 (facoltativa): aggiungi un' AWS associazione di origine per un account di servizio e distribuisci un ruolo IAM tra account in quell'account. Questa configurazione consente allo spazio dell'agente di monitorare le risorse tra gli account.

Risorse create

Parte 1: DevOpsAgentStack (account di monitoraggio)

  • Ruolo IAM (DevOpsAgentRole-AgentSpace): assunto dal servizio DevOps Agent per monitorare l'account. Include la policy AIDevOpsAgentAccessPolicy gestita e una policy in linea che consente la creazione del ruolo collegato al servizio Resource Explorer.

  • IAM role (DevOpsAgentRole-WebappAdmin): ruolo dell'operatore nell'app con policy AIDevOpsOperatorAppAccessPolicy gestita per le operazioni degli agenti.

  • Agent space (MyCDKAgentSpace): lo spazio centrale degli agenti, creato utilizzando la AWS::DevOpsAgent::AgentSpace CloudFormation risorsa. Include la configurazione dell'app per l'operatore.

  • Associazione (AWS monitor): collega l'account di monitoraggio allo spazio degli agenti utilizzando la AWS::DevOpsAgent::Association CloudFormation risorsa.

  • Associazione (AWS fonte): (Facoltativo) Collega l'account di servizio allo spazio dell'agente per il monitoraggio tra account.

Parte 2: ServiceStack (account di servizio, opzionale)

  • IAM role (DevOpsAgentRole-SecondaryAccount): ruolo interaccount con un nome fisso. Scelto dallo spazio degli agenti nell'account di monitoraggio. Include la policy AIDevOpsAgentAccessPolicy gestita e una policy in linea che consente la creazione del ruolo collegato al servizio Resource Explorer.

  • Funzione Lambda (echo-service): un semplice servizio di esempio che riproduce gli eventi di input di ritorno.

Configurazione

Fase 1: clonare il repository di esempio

Esegui i seguenti comandi per clonare il repository e passare alla directory del progetto:

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

Fase 2: Installare le dipendenze

Esegui il seguente comando per installare le dipendenze del progetto:

npm install

Parte 1: Distribuisci lo spazio degli agenti

In questa sezione, crei lo spazio degli agenti, i ruoli IAM, l'app operatore e un' AWS associazione nel tuo account di monitoraggio.

Passaggio 1: configura l'ID dell'account di monitoraggio

Apri lib/constants.ts e imposta l'ID del tuo account di monitoraggio:

L'esempio seguente mostra la costante da aggiornare:

export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";

Fase 2: Avvia l'ambiente AWS CDK

Se non hai avviato il AWS CDK nel tuo account di monitoraggio, esegui il seguente comando:

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

Fase 3: Compila e distribuisci

Esegui i seguenti comandi per creare il TypeScript codice e distribuire lo stack:

npm run build cdk deploy DevOpsAgentStack --profile monitoring

Fase 4: Registrare gli output dello stack

Al termine della distribuzione, il AWS CDK stampa gli output dello stack. Registra questi valori per un uso successivo.

L'esempio seguente mostra l'output previsto:

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 intendi completare la Parte 2, salva il AgentSpaceArn valore. È necessario per configurare lo stack di account del servizio.

Fase 5: Verificare la distribuzione

Per verificare che lo spazio agente sia stato creato correttamente, esegui il seguente comando AWS CLI:

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

A questo punto, lo spazio per gli agenti viene distribuito con l'app operatore abilitata e l'account di monitoraggio associato. L'agente può monitorare i problemi relativi a questo account.

Parte 2 (facoltativa): aggiungi il monitoraggio tra account

In questa sezione, estendete la configurazione in modo che lo spazio dell'agente possa monitorare le risorse in un secondo AWS account (l'account di servizio). Ciò comporta due azioni:

  1. Aggiungere un' AWS associazione di origine DevOpsAgentStack che punta all'account di servizio.

  2. Implementazione dell'account ServiceStack nell'account di servizio con un ruolo IAM che si fida dello spazio dell'agente.

Importante

È necessario completare la parte 1 prima di procedere. ServiceStack Richiede l'AgentSpaceArnoutput dell' DevOpsAgentStack implementazione.

Fase 1: Configurare l'ID dell'account del servizio

Apri lib/constants.ts e imposta l'ID dell'account di servizio:

L'esempio seguente mostra la costante da aggiornare:

export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";

DevOpsAgentStack crea un' AWS associazione di origine utilizzando questo ID di account. Se hai distribuito DevOpsAgentStack prima di impostare questo valore, ridistribuisci per creare l'associazione:

Esegui i seguenti comandi per ridistribuire:

npm run build cdk deploy DevOpsAgentStack --profile monitoring

Fase 2: Impostare lo spazio dell'agente (ARN)

Copia il AgentSpaceArn valore dall' DevOpsAgentStack output (Parte 1, Fase 4) e impostalo inlib/constants.ts:

L'esempio seguente mostra la costante da aggiornare:

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

ServiceStack utilizza questo valore per definire l'ambito della politica di fiducia sul ruolo secondario dell'account. ServiceStack Viene sintetizzato solo quando questo valore è impostato.

Fase 3: Avvia l'account del servizio

Se non hai avviato il AWS CDK nel tuo account di servizio, esegui il seguente comando:

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

Fase 4: Implementare ServiceStack

Esegui i seguenti comandi per crearlo e distribuirlo ServiceStack utilizzando le credenziali per l'account del servizio:

npm run build cdk deploy ServiceStack --profile service

In questo modo vengono create le seguenti risorse nell'account di servizio:

  • Un ruolo IAM (DevOpsAgentRole-SecondaryAccount) che affida lo spazio dell'agente nell'account di monitoraggio

  • Una funzione echo Lambda echo-service () come servizio di esempio

Fase 5: Verificare la distribuzione

Per confermare che la funzione Lambda è stata implementata correttamente, esegui i seguenti comandi per testare il servizio echo:

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

Risoluzione dei problemi

Questa sezione descrive i problemi più comuni e come risolverli.

CloudFormation tipo di risorsa non trovato

  • Verifica di eseguire la distribuzione in unRegioni supportate.

  • Verifica che la tua AWS CLI sia configurata con le autorizzazioni appropriate.

Creazione del ruolo IAM non riuscita

  • Verifica che il tuo ruolo di distribuzione disponga delle autorizzazioni per creare ruoli IAM.

  • Verifica che le condizioni della politica di fiducia corrispondano all'ID del tuo account.

La distribuzione tra account non riesce e viene visualizzato il messaggio «Impossibile assumere il ruolo nell'account di destinazione»

  • Ogni stack deve essere distribuito con le credenziali per l'account di destinazione. Utilizzate il --profile flag per specificare il profilo AWS CLI corretto.

  • Verifica che il AWS CDK sia stato avviato nell'account di destinazione.

Ritardi di propagazione IAM

  • La propagazione delle modifiche ai ruoli IAM può richiedere alcuni minuti. Se la creazione dello spazio dell'agente fallisce subito dopo la creazione del ruolo, attendi qualche minuto e ridistribuisci.

Pulizia

Per rimuovere tutte le risorse, distruggi le pile in ordine inverso.

Esegui i seguenti comandi per distruggere gli stack:

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

Avviso: questa azione elimina definitivamente lo spazio dell'agente e tutti i dati associati. Questa azione non può essere annullata. Assicurati di aver eseguito il backup di tutte le informazioni importanti prima di procedere.

Considerazioni relative alla sicurezza

  • L'applicazione AWS CDK crea ruoli IAM con policy di fiducia che consentono solo al responsabile del aidevops.amazonaws.com servizio di assumerli.

  • Le politiche di fiducia includono condizioni che limitano l'accesso al tuo AWS account specifico e allo spazio ARN dello spazio agente.

  • Tutte le politiche seguono il principio del privilegio minimo. Rivedi e personalizza le policy IAM in base ai requisiti di sicurezza della tua organizzazione.

  • Il ruolo tra account (DevOpsAgentRole-SecondaryAccount) utilizza un nome fisso ed è limitato a uno spazio di agenti ARN specifico.

Fasi successive

Dopo aver distribuito l' AWS DevOps agente utilizzando il CDK: AWS

  1. Scopri l'intera gamma di funzionalità dell' DevOps agente nella Guida per l'utente dell'AWS DevOps agente.

  2. Prendi in considerazione l'integrazione dell'implementazione AWS CDK nelle tue CI/CD pipeline per la gestione automatizzata dell'infrastruttura.

Risorse aggiuntive