Etichetta automaticamente gli allegati Transit Gateway utilizzando AWS Organizations - Prontuario AWS

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à.

Etichetta automaticamente gli allegati Transit Gateway utilizzando AWS Organizations

Creato da Richard Milner-Watts (AWS), Haris Bin Ayub (AWS) e John Capps (AWS)

Archivio di codice: Transit Gateway Attachment Tagger

Ambiente: produzione

Tecnologie: reti; infrastruttura; gestione e governance; operazioni

Servizi AWS: AWS Step Functions; AWS Transit Gateway; Amazon VPC; AWS Lambda

Riepilogo

Su Amazon Web Services (AWS), puoi utilizzare AWS Resource Access Manager per condividere AWS Transit Gateway attraverso i confini degli account AWS. Tuttavia, quando si creano allegati Transit Gateway oltre i limiti dell'account, gli allegati vengono creati senza un tag Name. Ciò può rendere l'identificazione degli allegati dispendiosa in termini di tempo. 

Questa soluzione fornisce un meccanismo automatizzato per raccogliere informazioni su ogni allegato Transit Gateway per gli account all'interno di un'organizzazione gestita da AWS Organizations. Il processo include la ricerca dell'intervallo Classless Inter-Domain Routing (CIDR) dalla tabella di routing Transit Gateway. La soluzione applica quindi un tag Name sotto forma di all'allegato all'interno dell'<CIDR-range>-<AccountName>account che contiene il gateway di transito.

Questa soluzione può essere utilizzata insieme a una soluzione come Serverless Transit Network Orchestrator della AWS Solutions Library. Serverless Transit Network Orchestrator consente la creazione automatizzata di allegati Transit Gateway su larga scala.

Prerequisiti e limitazioni

Prerequisiti

  • Un account AWS attivo

  • Un'organizzazione AWS Organizations che contiene tutti gli account correlati

  • Accesso all'account di gestione dell'organizzazione, nella directory principale dell'organizzazione, per creare il ruolo AWS Identity and Access Management (IAM) richiesto

  • Un account membro di Shared Networking contenente uno o più gateway di transito condivisi con l'organizzazione e dotati di allegati

Architettura

La seguente schermata della Console di gestione AWS mostra esempi di allegati Transit Gateway senza tag Name associato e due allegati Transit Gateway con tag Name generati da questa soluzione. La struttura del tag Name generato è. <CIDR-range>-<AccountName>

La console mostra gli allegati senza tag Name e due allegati con i tag Name.

Questa soluzione utilizza AWS CloudFormation per implementare un flusso di lavoro AWS Step Functions che gestisce la creazione di tag Transit Gateway Name in tutte le regioni configurate. Il flusso di lavoro richiama le funzioni di AWS Lambda, che eseguono le attività sottostanti.

Dopo che la soluzione ha ottenuto i nomi degli account da AWS Organizations, la macchina a stati Step Functions ottiene tutti gli ID degli allegati Transit Gateway. Questi vengono elaborati in parallelo dalla regione AWS. Questa elaborazione include la ricerca dell'intervallo CIDR per ogni allegato. L'intervallo CIDR si ottiene cercando nelle tabelle di routing Transit Gateway all'interno della regione un ID allegato Transit Gateway corrispondente. Se tutte le informazioni richieste sono disponibili, la soluzione applica un tag Name all'allegato. La soluzione non sovrascriverà alcun tag Name esistente.

La soluzione viene eseguita secondo una pianificazione controllata da un EventBridge evento Amazon. L'evento avvia la soluzione ogni giorno alle 06:00 UTC.

Stack tecnologico Target

  • Amazon EventBridge

  • AWS Lambda

  • AWS Organizations

  • AWS Transit Gateway

  • Amazon Virtual Private Cloud (Amazon VPC) (Amazon VPC)

  • AWS X-Ray

Architettura Target

L'architettura della soluzione e il flusso di lavoro sono illustrati nel diagramma seguente.

Processo in nove fasi tra account di rete condivisi e di gestione dell'organizzazione.
  1. L'evento pianificato avvia la regola.

  2. La EventBridge regola avvia la macchina a stati Step Functions.

  3. La macchina a stati richiama la funzione Lambdatgw-tagger-organizations-account-query.

  4. La funzione tgw-tagger-organizations-account-query Lambda assume il ruolo nell'account di gestione dell'organizzazione.

  5. La funzione tgw-tagger-organizations-account-query Lambda richiama l'API Organizations per restituire i metadati dell'account AWS.

  6. La macchina a stati richiama la funzione Lambdatgw-tagger-attachment-query.

  7. Per ogni regione, in parallelo, la macchina a stati richiama la funzione tgw-tagger-rtb-query Lambda per leggere l'intervallo CIDR per ogni allegato.

  8. Per ogni regione, in parallelo, la macchina a stati richiama la funzione Lambda tgw-tagger-attachment-tagger.

  9. I name tag vengono creati per gli allegati Transit Gateway nell'account Shared Networking.

Automazione e scalabilità

La soluzione elabora ogni regione in parallelo per ridurre la durata totale dell'esecuzione.

Strumenti

Servizi AWS

  • AWS CloudFormation: AWS CloudFormation offre un modo per modellare una raccolta di risorse AWS e di terze parti correlate, eseguirne il provisioning in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita, trattando l'infrastruttura come codice.

  • Amazon EventBridge: Amazon EventBridge è un servizio di bus eventi senza server che puoi utilizzare per connettere le tue applicazioni con dati provenienti da una varietà di fonti. EventBridge riceve un evento, un indicatore di un cambiamento nell'ambiente e applica una regola per indirizzare l'evento verso un obiettivo. Le regole abbinano gli eventi agli obiettivi in base alla struttura dell'evento, chiamata pattern di evento, o a una pianificazione.

  • AWS Lambda: AWS Lambda è un servizio di elaborazione che supporta l'esecuzione di codice senza effettuare il provisioning o la gestione di server. Lambda esegue il codice solo quando necessario e si ridimensiona automaticamente, da poche richieste al giorno a migliaia al secondo. I costi saranno calcolati in base al tempo di elaborazione effettivo. Quando il codice non è in esecuzione non viene addebitato alcun costo.

  • AWS Organizations — AWS Organizations ti aiuta a gestire e governare centralmente il tuo ambiente man mano che cresci e ridimensioni le tue risorse AWS. Con AWS Organizations, puoi creare in modo programmatico nuovi account AWS e allocare risorse, raggruppare account per organizzare i flussi di lavoro, applicare policy ad account o gruppi per la governance e semplificare la fatturazione utilizzando un unico metodo di pagamento per tutti i tuoi account.

  • AWS Step Functions — AWS Step Functions è un servizio di flusso di lavoro visivo a basso codice utilizzato per orchestrare i servizi AWS, automatizzare i processi aziendali e creare applicazioni serverless. I flussi di lavoro gestiscono gli errori, i nuovi tentativi, la parallelizzazione, le integrazioni dei servizi e l'osservabilità in modo che gli sviluppatori possano concentrarsi su logiche di business di maggior valore.

  • AWS Transit Gateway: AWS Transit Gateway collega VPC e reti locali tramite un hub centrale. Ciò semplifica la rete e pone fine a complesse relazioni di peering. Funziona come un router cloud, in modo che ogni nuova connessione venga effettuata una sola volta.

  • Amazon VPC: Amazon Virtual Private Cloud (Amazon VPC) è un servizio per il lancio di risorse AWS in una rete virtuale logicamente isolata da te definita.

  • AWS X-Ray — AWS X-Ray raccoglie dati sulle richieste servite dall'applicazione e fornisce strumenti che puoi utilizzare per visualizzare, filtrare e ottenere informazioni su tali dati per identificare problemi e opportunità di ottimizzazione.

Codice

Il codice sorgente di questa soluzione è disponibile nel GitHub repository Transit Gateway Attachment Tagger. Il repository include i seguenti file:

  • tgw-attachment-tagger-main-stack.yamlcrea tutte le risorse per supportare questa soluzione all'interno dell'account Shared Networking.

  • tgw-attachment-tagger-organizations-stack.yamlcrea un ruolo nell'account di gestione dell'organizzazione.

Epiche

AttivitàDescrizioneCompetenze richieste

Raccogli le informazioni necessarie sui prerequisiti.

Per configurare l'accesso tra account dalla funzione Lambda all'API AWS Organizations, è necessario l'ID dell'account di gestione dell'organizzazione.

Nota: l'ordine in cui vengono creati i due CloudFormation stack è importante. È necessario prima distribuire le risorse nell'account di rete condivisa. Il ruolo nell'account di rete condivisa deve già esistere prima di distribuire le risorse nell'account di gestione dell'organizzazione. Per ulteriori informazioni, consulta la documentazione di AWS.

DevOps ingegnere

Avvia il CloudFormation modello per lo stack di soluzioni principale.

Il modello per lo stack di soluzioni principale implementerà i ruoli IAM, il flusso di lavoro Step Functions, le funzioni Lambda e l'evento. CloudWatch

Apri la console di gestione AWS per l'account Shared Networking, quindi apri la CloudFormation console.  Crea lo stack utilizzando il tgw-attachment-tagger-main-stack.yaml modello e i seguenti valori:  

  • Nome dello stack: -stack tgw-attachment-tagger-main 

  • awsOrganizationsRootAccountId— ID dell'account di gestione dell'organizzazione

  • Parametro TGWRegions: regioni AWS per la soluzione, inserite come stringa delimitata da virgole

  • Parametro TGWList: ID del gateway di transito da escludere dalla soluzione, inseriti in una stringa delimitata da virgole

Per ulteriori informazioni sul lancio di uno CloudFormation stack, consulta la documentazione AWS.

DevOps ingegnere

Verifica che la soluzione sia stata avviata correttamente.

Attendi che lo CloudFormation stack raggiunga lo stato CREATE_COMPLETE. Questa operazione dovrebbe richiedere meno di un minuto.

Apri la console Step Functions e verifica che sia stata creata una nuova macchina a stati con il nome tgw-attachment-tagger-state-machine.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Raccogli le informazioni necessarie sui prerequisiti.

Per configurare l'accesso tra account dalla funzione Lambda all'API AWS Organizations, è necessario l'ID account per l'account Shared Networking.

DevOps ingegnere

Avvia il CloudFormation modello per lo stack Organizations

Il modello per lo stack AWS Organizations implementerà il ruolo IAM nell'account di gestione dell'organizzazione. 

Accedi alla console AWS per l'account di gestione dell'organizzazione, quindi apri la CloudFormation console.  Crea lo stack utilizzando il tgw-attachment-tagger-organizations-stack.yaml modello e i seguenti valori:

  • Nome dello stack: -stack tgw-attachment-tagger-organizations

  • NetworkingAccountIdparametro — ID account per l'account di rete condivisa 

Per le altre opzioni di creazione dello stack, utilizzate le impostazioni predefinite.

DevOps ingegnere

Verifica che la soluzione sia stata avviata correttamente.

Attendi che lo CloudFormation stack raggiunga lo stato CREATE_COMPLETE. Questa operazione dovrebbe richiedere meno di un minuto.

Apri la console Identity and Access Management (IAM) e verifica che sia stato creato un nuovo ruolo con il tgw-attachment-tagger-organizationnome -query-role.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Avvia la macchina a stati.

Apri la console Step Functions per l'account Shared Networking e scegli Macchine a stati nel riquadro di navigazione.

Seleziona la macchina a stati tgw-attachment-tagger-state-machine e scegli Avvia esecuzione.  

Poiché l'input di questa macchina a stati non viene utilizzato dalla soluzione, è possibile utilizzare il valore predefinito.

{ "Comment": "Insert your JSON here" }

Selezionare Start Execution (Avvia esecuzione).

DevOps ingegnere

Guarda la macchina statale fino al completamento.

Nella nuova pagina che si apre, puoi guardare la macchina a stati funzionare. La durata dipenderà dal numero di allegati Transit Gateway da elaborare.

In questa pagina è possibile esaminare ogni fase della macchina a stati. È possibile visualizzare le varie attività all'interno della macchina a stati e seguire i collegamenti ai CloudWatch registri delle funzioni Lambda. Per le attività eseguite in parallelo all'interno della mappa, puoi utilizzare l'elenco a discesa Indice per visualizzare le implementazioni specifiche per ogni regione.

DevOps ingegnere

Verifica i tag degli allegati Transit Gateway.

Apri la console VPC per l'account Shared Networking e scegli Transit Gateway Attachments.  Sulla console, viene fornito un tag Name per gli allegati che soddisfano i criteri (l'allegato viene propagato a una tabella di routing Transit Gateway e il proprietario della risorsa è un membro dell'organizzazione).

DevOps ingegnere

Verifica l'inizio CloudWatch dell'evento.

Attendi l'inizio CloudWatch dell'evento. È previsto per le 06:00 UTC. 

Quindi apri la console Step Functions per l'account Shared Networking e scegli Macchine a stati nel riquadro di navigazione.

Seleziona la macchina a stati tgw-attachment-tagger-state-macchina. Verifica che la soluzione sia stata eseguita alle 06:00 UTC.

DevOps ingegnere

Risorse correlate