View a markdown version of this page

Nozioni di base su AWS DevOps Agente che utilizza 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à.

Nozioni di base su AWS DevOps Agente che utilizza AWS CDK

Panoramica di

Questa guida mostra come utilizzare il AWS Cloud Development Kit (AWS CDK) per creare e distribuire risorse per gli AWS DevOps agenti. L'applicazione AWS CDK automatizza la creazione di uno spazio agente, dei ruoli IAM ( AWS Identity and Access Management), di un'app per operatori e AWS delle 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 in codice.

AWS DevOps L'agente è disponibile in più regioni. AWS Per l'elenco completo, 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 copre 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 a quell'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 degli agenti 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.

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

  • Agent space (MyCDKAgentSpace): lo spazio centrale dell'agente, 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 dell'agente utilizzando la AWS::DevOpsAgent::Association CloudFormation risorsa.

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

Parte 2: ServiceStack (account di servizio, opzionale)

  • Ruolo IAM (DevOpsAgentRole-SecondaryAccount) — Cross-account ruolo con un nome fisso. Scelto dallo spazio dell'agente 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.

Configurazione

Fase 1: clonare il repository di esempio

Eseguite 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 comando seguente per installare le dipendenze del progetto:

npm install

Parte 1: Distribuisci lo spazio dell'agente

In questa sezione, crei lo spazio dell'agente, i ruoli IAM, l'app per gli operatori 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 il AWS Ambiente 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: Compilazione e distribuzione

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 intendete completare la parte 2, salvate il AgentSpaceArn valore. È necessario per configurare lo stack degli account di servizio.

Passaggio 5: verifica la distribuzione

Per verificare che lo spazio dell'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 dell'agente 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 (opzionale): aggiungere il monitoraggio su più account

In questa sezione, estendi la configurazione in modo che il tuo spazio 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 punti all'account del servizio.

  2. Implementazione dell' ServiceStack account di servizio con un ruolo IAM che consideri attendibile lo spazio dell'agente.

Importante

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

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

Apri lib/constants.ts e imposta l'ID del tuo 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 account. Se hai distribuito DevOpsAgentStack prima di impostare questo valore, ridistribuiscilo per creare l'associazione:

Esegui i seguenti comandi per ridistribuire:

npm run build cdk deploy DevOpsAgentStack --profile monitoring

Passaggio 2: imposta l'ARN dello spazio dell'agente

Copia il AgentSpaceArn valore dall' DevOpsAgentStack output (parte 1, passaggio 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 la 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: Implementa il ServiceStack

Esegui i seguenti comandi per creare e distribuire ServiceStack utilizzando le credenziali per l'account di servizio:

npm run build cdk deploy ServiceStack --profile service

Questo crea le seguenti risorse nell'account di servizio:

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

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

Fase 5: Verifica 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.

Cross-account la distribuzione non riesce con «Impossibile assumere il ruolo nell'account di destinazione»

  • Ogni stack deve essere distribuito con le credenziali per l'account di destinazione. Usa 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 gli stack in ordine inverso.

Esegui i seguenti comandi per distruggere le pile:

# 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 politiche 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 all'ARN dello spazio agente.

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

  • Il ruolo tra account (DevOpsAgentRole-SecondaryAccount) utilizza un nome fisso e ha come ambito un ARN specifico dello spazio agente.

Fasi successive

Dopo aver distribuito il tuo AWS DevOps agente utilizzando il CDK: AWS

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

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

  3. Se registri un'integrazione di terze parti, ottieni l'URL e il segreto del webhook ruotando il webhook nella console. Il AWS CDK viene implementato tramite AWS CloudFormation, il che non restituisce il segreto del webhook come output dello stack. Per istruzioni sulla gestione delle credenziali webhook, vedi Gestione delle credenziali webhook. Richiamo DevOps dell'agente tramite Webhook

Risorse aggiuntive