Crea un rapporto sui risultati di Network Access Analyzer per l'accesso a Internet in entrata su più account AWS - 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à.

Crea un rapporto sui risultati di Network Access Analyzer per l'accesso a Internet in entrata su più account AWS

Creato da Mike Virgilio () AWS

Riepilogo

L'accesso involontario alle AWS risorse via Internet in entrata può comportare rischi per il perimetro dei dati di un'organizzazione. Network Access Analyzer è una funzionalità di Amazon Virtual Private Cloud (AmazonVPC) che ti aiuta a identificare gli accessi di rete non intenzionali alle tue risorse su Amazon Web Services ()AWS. Puoi utilizzare Network Access Analyzer per specificare i requisiti di accesso alla rete e identificare potenziali percorsi di rete che non soddisfano i requisiti specificati. È possibile utilizzare Network Access Analyzer per effettuare le seguenti operazioni:

  1. Identifica AWS le risorse accessibili a Internet tramite gateway Internet.

  2. Verifica che i tuoi cloud privati virtuali (VPCs) siano segmentati in modo appropriato, ad esempio isolando gli ambienti di produzione e sviluppo e separando i carichi di lavoro transazionali.

Network Access Analyzer analizza le condizioni di raggiungibilità della rete e non solo un singolo componente end-to-end. Per determinare se una risorsa è accessibile da Internet, Network Access Analyzer valuta il gateway Internet, le tabelle di VPC routing, gli elenchi di controllo degli accessi alla rete (ACLs), gli indirizzi IP pubblici su interfacce di rete elastiche e i gruppi di sicurezza. Se qualcuno di questi componenti impedisce l'accesso a Internet, Network Access Analyzer non genera alcun risultato. Ad esempio, se un'istanza Amazon Elastic Compute Cloud (AmazonEC2) ha un gruppo di sicurezza aperto che consente il traffico da 0/0 una sottorete privata che non è instradabile da nessun gateway Internet, Network Access Analyzer non genererebbe alcun risultato. Ciò fornisce risultati ad alta fedeltà che consentono di identificare le risorse realmente accessibili da Internet.

Quando si esegue Network Access Analyzer, si utilizzano Network Access Scopes per specificare i requisiti di accesso alla rete. Questa soluzione identifica i percorsi di rete tra un gateway Internet e un'interfaccia di rete elastica. In questo modello, si implementa la soluzione in un AWS account centralizzato dell'organizzazione, gestito da AWS Organizations, e analizza tutti gli account, in qualsiasi AWS regione, dell'organizzazione.

Questa soluzione è stata progettata tenendo presente quanto segue:

  • I AWS CloudFormation modelli riducono lo sforzo richiesto per distribuire le AWS risorse secondo questo schema.

  • È possibile modificare i parametri nei CloudFormation modelli e nello script naa-script.sh al momento della distribuzione per personalizzarli in base all'ambiente.

  • Lo scripting di Bash fornisce e analizza automaticamente gli ambiti di accesso alla rete per più account, in parallelo.

  • Uno script Python elabora i risultati, estrae i dati e quindi consolida i risultati. È possibile scegliere di esaminare il report consolidato dei risultati di Network Access Analyzer in CSV formato o in AWS Security Hub. Un esempio del CSV rapporto è disponibile nella sezione Informazioni aggiuntive di questo modello.

  • È possibile correggere i risultati oppure escluderli dalle analisi future aggiungendoli al file naa-exclusions.csv.

Prerequisiti e limitazioni

Prerequisiti

  • Un AWS account per l'hosting di servizi e strumenti di sicurezza, gestito come account membro di un'organizzazione in AWS Organizations. In questo schema, questo account viene definito account di sicurezza.

  • Nell'account di sicurezza, è necessario disporre di una sottorete privata con accesso a Internet in uscita. Per istruzioni, consulta Creare una sottorete nella VPC documentazione di Amazon. Puoi stabilire l'accesso a Internet utilizzando un NATgateway o un VPCendpoint di interfaccia.

  • Accesso all'account di gestione AWS Organizations o a un account con autorizzazioni di amministratore delegate per. CloudFormation Per istruzioni, consulta Registrare un amministratore delegato nella documentazione. CloudFormation

  • Abilita l'accesso affidabile tra AWS Organizations e CloudFormation. Per istruzioni, consulta Enable trusted access with AWS Organizations nella CloudFormation documentazione.

  • Se carichi i risultati su Security Hub, Security Hub deve essere abilitato nell'account e nella AWS regione in cui viene eseguito il provisioning dell'EC2istanza. Per ulteriori informazioni, vedere Configurazione del AWS Security Hub.

Limitazioni

  • I percorsi di rete tra account non vengono attualmente analizzati a causa delle limitazioni della funzionalità Network Access Analyzer.

  • AWSGli account di destinazione devono essere gestiti come organizzazione in AWS Organizations. Se non utilizzi AWS Organizations, puoi aggiornare il CloudFormation modello naa-execrole.yaml e lo script naa-script.sh per il tuo ambiente. Fornisci invece un elenco di AWS account IDs e regioni in cui desideri eseguire lo script.

  • Il CloudFormation modello è progettato per distribuire l'EC2istanza in una sottorete privata con accesso a Internet in uscita. AWSSystems Manager Agent (SSMAgent) richiede l'accesso in uscita per raggiungere l'endpoint del servizio Systems Manager ed è necessario l'accesso in uscita per clonare l'archivio del codice e installare le dipendenze. Se si desidera utilizzare una sottorete pubblica, è necessario modificare il modello naa-resources.yaml per associare un indirizzo IP elastico all'istanza. EC2

Architettura

Stack tecnologico Target

  • Strumento di analisi degli accessi alla rete

  • EC2Istanza Amazon

  • AWSRuoli di Identity and Access Management (IAM)

  • Bucket Amazon Simple Storage Service (Amazon S3)

  • Argomento di Amazon Simple Notification Service (AmazonSNS)

  • AWSSecurity Hub (solo opzione 2)

Architettura Target

Opzione 1: accedere ai risultati in un bucket Amazon S3

Diagramma dell'architettura di accesso al report dei risultati di Network Access Analyzer in un bucket Amazon S3

Il diagramma mostra il seguente processo:

  1. Se esegui manualmente la soluzione, l'utente si autentica sull'EC2istanza utilizzando Session Manager e quindi esegue lo script naa-script.sh. Questo script di shell esegue i passaggi da 2 a 7.

    Se esegui automaticamente la soluzione, lo script naa-script.sh si avvia automaticamente in base alla pianificazione definita nell'espressione cron. Questo script di shell esegue i passaggi da 2 a 7. Per ulteriori informazioni, vedere Automazione e scalabilità alla fine di questa sezione.

  2. L'EC2istanza scarica il file naa-exception.csv più recente dal bucket S3. Questo file viene utilizzato più avanti nel processo quando lo script Python elabora le esclusioni.

  3. L'EC2istanza assume il NAAEC2Role IAM ruolo, che concede le autorizzazioni per accedere al bucket S3 e per assumere i NAAExecRole IAM ruoli negli altri account dell'organizzazione.

  4. L'EC2istanza assume il NAAExecRole IAM ruolo nell'account di gestione dell'organizzazione e genera un elenco degli account dell'organizzazione.

  5. L'EC2istanza assume il NAAExecRole IAM ruolo negli account dei membri dell'organizzazione (denominati account del carico di lavoro nel diagramma di architettura) ed esegue una valutazione della sicurezza in ciascun account. I risultati vengono archiviati come JSON file sull'istanza. EC2

  6. L'EC2istanza utilizza uno script Python per elaborare i JSON file, estrarre i campi di dati e creare un CSV report.

  7. L'EC2istanza carica il CSV file nel bucket S3.

  8. Una EventBridge regola Amazon rileva il caricamento del file e utilizza un SNS argomento Amazon per inviare un'e-mail che notifica all'utente che il rapporto è completo.

  9. L'utente scarica il CSV file dal bucket S3. L'utente importa i risultati nel modello di Excel e li esamina.

Opzione 2: accedere ai risultati in AWS Security Hub

Diagramma dell'architettura di accesso ai risultati di Network Access Analyzer tramite AWS Security Hub

Il diagramma mostra il seguente processo:

  1. Se esegui manualmente la soluzione, l'utente si autentica sull'EC2istanza utilizzando Session Manager e quindi esegue lo script naa-script.sh. Questo script di shell esegue i passaggi da 2 a 7.

    Se esegui automaticamente la soluzione, lo script naa-script.sh si avvia automaticamente in base alla pianificazione definita nell'espressione cron. Questo script di shell esegue i passaggi da 2 a 7. Per ulteriori informazioni, vedere Automazione e scalabilità alla fine di questa sezione.

  2. L'EC2istanza scarica il file naa-exception.csv più recente dal bucket S3. Questo file viene utilizzato più avanti nel processo quando lo script Python elabora le esclusioni.

  3. L'EC2istanza assume il NAAEC2Role IAM ruolo, che concede le autorizzazioni per accedere al bucket S3 e per assumere i NAAExecRole IAM ruoli negli altri account dell'organizzazione.

  4. L'EC2istanza assume il NAAExecRole IAM ruolo nell'account di gestione dell'organizzazione e genera un elenco degli account dell'organizzazione.

  5. L'EC2istanza assume il NAAExecRole IAM ruolo negli account dei membri dell'organizzazione (denominati account del carico di lavoro nel diagramma di architettura) ed esegue una valutazione della sicurezza in ciascun account. I risultati vengono archiviati come JSON file sull'istanza. EC2

  6. L'EC2istanza utilizza uno script Python per elaborare JSON i file ed estrarre i campi di dati per l'importazione in Security Hub.

  7. L'EC2istanza importa i risultati di Network Access Analyzer in Security Hub.

  8. Una EventBridge regola Amazon rileva l'importazione e utilizza un SNS argomento Amazon per inviare un'e-mail che notifica all'utente che il processo è completo.

  9. L'utente visualizza i risultati in Security Hub.

Automazione e scalabilità

È possibile pianificare questa soluzione per eseguire automaticamente lo script naa-script.sh in base a una pianificazione personalizzata. Per impostare una pianificazione personalizzata, nel modello CloudFormation naa-resources.yaml, modifica il parametro. CronScheduleExpression Ad esempio, il valore predefinito di 0 0 * * 0 esegue la soluzione a mezzanotte di ogni domenica. Il valore di 0 0 * 1-12 0 eseguirebbe la soluzione a mezzanotte della prima domenica di ogni mese. Per ulteriori informazioni sull'uso delle espressioni cron, vedere Cron e rate expression nella documentazione di Systems Manager.

Se desideri modificare la pianificazione dopo che lo NAA-Resources stack è stato distribuito, puoi modificare manualmente la pianificazione cron in. /etc/cron.d/naa-schedule

Strumenti

Servizi AWS

  • Amazon Elastic Compute Cloud (AmazonEC2) fornisce capacità di elaborazione scalabile nel AWS cloud. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.

  • Amazon EventBridge è un servizio di bus eventi senza server che ti aiuta a connettere le tue applicazioni con dati in tempo reale provenienti da una varietà di fonti. Ad esempio, funzioni AWS Lambda, endpoint di HTTP invocazione che utilizzano API destinazioni o bus di eventi in altri account. AWS

  • AWSIdentity and Access Management (IAM) consente di gestire in modo sicuro l'accesso alle AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.

  • AWSOrganizations è un servizio di gestione degli account che consente di consolidare più AWS account in un'organizzazione da creare e gestire centralmente.

  • AWSSecurity Hub offre una visione completa dello stato di sicurezza inAWS. Inoltre, consente di verificare la conformità AWS dell'ambiente agli standard e alle best practice del settore della sicurezza.

  • Amazon Simple Notification Service (AmazonSNS) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

  • AWSSystems Manager ti aiuta a gestire le applicazioni e l'infrastruttura in esecuzione nel AWS cloud. Semplifica la gestione delle applicazioni e delle risorse, riduce i tempi di rilevamento e risoluzione dei problemi operativi e aiuta a gestire le AWS risorse in modo sicuro su larga scala. Questo modello utilizza Session Manager, una funzionalità di Systems Manager.

Archivio di codice

Il codice di questo pattern è disponibile nel repository GitHub Network Access Analyzer Multi-Account Analysis. L'archivio del codice contiene i seguenti file:

  • naa-script.sh — Questo script bash viene utilizzato per avviare un'analisi di Network Access Analyzer di più AWS account, in parallelo. Come definito nel CloudFormation modello naa-resources.yaml, questo script viene distribuito automaticamente nella cartella sull'istanza. /usr/local/naa EC2

  • naa-resources.yaml: utilizzi questo modello per creare uno stack nell'account di sicurezza dell'organizzazione. CloudFormation Questo modello distribuisce tutte le risorse necessarie per questo account per supportare la soluzione. Questo stack deve essere distribuito prima del modello naa-execrole.yaml.

    Nota: se questo stack viene eliminato e ridistribuito, è necessario ricostruire il set di stack per ricostruire le dipendenze tra gli account tra i ruoli. NAAExecRole IAM

  • naa-execrole.yaml: questo CloudFormation modello viene utilizzato per creare un set di stack che distribuisce il ruolo in tutti gli account dell'organizzazione, incluso l'account di gestione. NAAExecRole IAM

  • naa-processfindings.py — Lo script naa-script.sh chiama automaticamente questo script Python per elaborare gli JSON output di Network Access Analyzer, escludere eventuali risorse note valide nel file naa-exclusions.csv e quindi generare un CSV file dei risultati consolidati o importare i risultati in Security Hub.

Epiche

AttivitàDescrizioneCompetenze richieste

Clona il repository del codice.

  1. In un'interfaccia a riga di comando, modificate la directory di lavoro nella posizione in cui desiderate archiviare i file di esempio.

  2. Inserire il seguente comando.

    git clone https://github.com/aws-samples/network-access-analyzer-multi-account-analysis.git

AWS DevOps

Esamina i modelli.

  1. Nel repository clonato, apri i file naa-resources.yaml e naa-execrole.yaml.

  2. Esamina le risorse create da questi modelli e modifica i modelli in base alle esigenze del tuo ambiente. Per ulteriori informazioni, consulta Lavorare con i modelli nella CloudFormation documentazione.

  3. Salvate e chiudete i file naa-resources.yaml e naa-execrole.yaml.

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Fornisci risorse nell'account di sicurezza.

Utilizzando il modello naa-resources.yaml, crei uno CloudFormation stack che distribuisce tutte le risorse richieste nell'account di sicurezza. Per istruzioni, consulta Creazione di uno stack nella documentazione. CloudFormation Tieni presente quanto segue durante la distribuzione di questo modello:

  1. Nella pagina Specificare il modello, scegliete Il modello è pronto, quindi caricate il file naa-resources.yaml.

  2. Nella pagina Specificare i dettagli dello stack, nella casella Nome dello stack, immettere. NAA-Resources

  3. Nella sezione Parametri, inserisci quanto segue:

    • VPCId— Seleziona un VPC nell'account.

    • SubnetId— Seleziona una sottorete privata con accesso a Internet.

      Nota: se si seleziona una sottorete pubblica, è possibile che all'EC2istanza non venga assegnato un indirizzo IP pubblico perché il CloudFormation modello, per impostazione predefinita, non fornisce e non collega un indirizzo IP elastico.

    • InstanceType— Lasciare il tipo di istanza predefinito.

    • InstanceImageId— Lasciare il valore predefinito.

    • KeyPairName— Se si utilizza SSH for access, specificare il nome di una key pair esistente.

    • PermittedSSHInbound— Se lo utilizzi SSH per l'accesso, specifica un CIDR blocco consentito. Se non lo utilizziSSH, mantieni il valore predefinito di127.0.0.1.

    • BucketName— Il valore predefinito ènaa-<accountID>-<region>. È possibile modificarlo in base alle esigenze. Se si specifica un valore personalizzato, l'ID dell'account e la regione vengono aggiunti automaticamente al valore specificato.

    • EmailAddress— Specificare un indirizzo e-mail per una SNS notifica Amazon al termine dell'analisi.

      Nota: la configurazione dell'SNSabbonamento Amazon deve essere confermata prima del completamento dell'analisi, altrimenti non verrà inviata alcuna notifica.

    • NAAEC2Role— Mantieni l'impostazione predefinita a meno che le tue convenzioni di denominazione non richiedano un nome diverso per questo IAM ruolo.

    • NAAExecRole— Mantieni il valore predefinito a meno che non venga utilizzato un altro nome durante la distribuzione di naa-execrole.yaml

    • Parallelism— Specificare il numero di valutazioni parallele da eseguire.

    • Regions— Specificare le AWS regioni che si desidera analizzare.

    • ScopeNameValue— Specificare il tag che verrà assegnato all'ambito. Questo tag viene utilizzato per determinare l'ambito di accesso alla rete.

    • ExclusionFile— Specificare il nome del file di esclusione. Le voci in questo file verranno escluse dai risultati.

    • FindingsToCSV— Specificare se i risultati devono essere restituiti aCSV. I valori accettati sono true efalse.

    • FindingsToSecurityHub— Specificare se i risultati devono essere importati in Security Hub. I valori accettati sono true efalse.

    • EmailNotificationsForSecurityHub— Specificare se l'importazione dei risultati in Security Hub deve generare notifiche e-mail. I valori accettati sono true e. false

    • ScheduledAnalysis— Se desiderate che la soluzione venga eseguita automaticamente in base a una pianificazionetrue, immettete e quindi personalizzate la pianificazione nel CronScheduleExpression parametro. Se non desiderate eseguire la soluzione automaticamente, immettetefalse.

    • CronScheduleExpression— Se state eseguendo la soluzione automaticamente, inserite un'espressione cron per definire la pianificazione. Per ulteriori informazioni, consulta Automazione e scalabilità nella sezione Architettura di questo modello.

  1. Nella pagina Revisione, seleziona Le seguenti risorse richiedono funzionalità: [: AWSIAM: :Role], quindi scegli Create Stack.

  2. Dopo che lo stack è stato creato con successo, nella CloudFormation console, nella scheda Outputs, copia NAAEC2Role Amazon Resource Name ()ARN. Lo usi ARN più tardi quando distribuisci il file naa-execrole.yaml.

AWS DevOps

IAMAssegna il ruolo negli account dei membri.

Nell'account di gestione AWS Organizations o in un account con autorizzazioni di amministratore delegato per CloudFormation, usa il modello naa-execrole.yaml per creare un set di stack. CloudFormation Lo stack set distribuisce il ruolo in tutti gli account dei membri dell'organizzazione. NAAExecRole IAM Per istruzioni, consulta Creare un set di stack con autorizzazioni gestite dal servizio nella documentazione. CloudFormation Tieni presente quanto segue durante la distribuzione di questo modello:

  1. In Prepara modello, scegli Il modello è pronto, quindi carica il file naa-execrole.yaml.

  2. Nella pagina Specificare i dettagli, assegnate un nome al set di stack StackSet . NAA-ExecRole

  3. Nella sezione Parametri, inserisci quanto segue:

    • AuthorizedARN— Inserisci il NAAEC2RoleARN, che hai copiato quando hai creato lo NAA-Resources stack.

    • NAARoleName— Mantieni il valore predefinito a NAAExecRole meno che non sia stato usato un altro nome durante la distribuzione del file naa-resources.yaml.

  4. In Permissions (Autorizzazioni) scegliere Service-managed permissions (Autorizzazioni gestite dal servizio).

  5. Nella pagina Imposta opzioni di distribuzione, in Obiettivi di distribuzione, scegli Distribuisci nell'organizzazione e accetta tutte le impostazioni predefinite.

    Nota: se desideri che gli stack vengano distribuiti contemporaneamente su tutti gli account membri, imposta il numero massimo di account simultanei e la tolleranza agli errori su un valore elevato, ad esempio 100.

  6. In Regioni di distribuzione, scegli la regione in cui viene distribuita l'EC2istanza di Network Access Analyzer. Poiché IAM le risorse sono globali e non regionali, il IAM ruolo viene distribuito in tutte le regioni attive.

  7. Nella pagina Revisione, seleziona Riconosco che AWS CloudFormation potrebbe creare IAM risorse con nomi personalizzati, quindi scegli Crea StackSet.

  8. Monitora la scheda Stack Instances (per lo stato dei singoli account) e la scheda Operazioni (per lo stato generale) per determinare quando la distribuzione è completa.

AWS DevOps

Assegna il IAM ruolo nell'account di gestione.

Utilizzando il modello naa-execrole.yaml, crei uno CloudFormation stack che distribuisce il ruolo nell'account di gestione dell'organizzazione. NAAExecRole IAM Lo stack set creato in precedenza non distribuisce il ruolo nell'account di gestione. IAM Per istruzioni, consulta Creazione di uno stack nella documentazione. CloudFormation Tieni presente quanto segue durante la distribuzione di questo modello:

  1. Nella pagina Specificare il modello, scegliete Il modello è pronto, quindi caricate il file naa-execrole.yaml.

  2. Nella pagina Specificare i dettagli dello stack, nella casella Nome dello stack, immettere. NAA-ExecRole

  3. Nella sezione Parametri, inserisci quanto segue:

    • AuthorizedARN— Inserisci il NAAEC2RoleARN, che hai copiato quando hai creato lo NAA-Resources stack.

    • NAARoleName— Mantieni il valore predefinito a NAAExecRole meno che non sia stato usato un altro nome durante la distribuzione del file naa-resources.yaml.

  4. Nella pagina Revisione, seleziona Le seguenti risorse richiedono funzionalità: [AWS:: :Role], quindi scegli Create IAM Stack.

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Personalizza lo script della shell.

  1. Accedi all'account di sicurezza dell'organizzazione.

  2. Utilizzando Session Manager, connettiti all'EC2istanza di Network Access Analyzer di cui hai precedentemente fornito il provisioning. Per istruzioni, consulta Connect alla tua istanza Linux usando Session Manager. Se non riesci a connetterti, consulta la sezione Risoluzione dei problemi di questo schema.

  3. Immettete i seguenti comandi per aprire il file naa-script.sh e modificarlo.

    sudo -i cd /usr/local/naa vi naa-script.sh
  4. Esaminate e modificate i parametri e le variabili regolabili in questo script in base alle esigenze del vostro ambiente. Per ulteriori informazioni sulle opzioni di personalizzazione, consultate i commenti all'inizio dello script.

    Ad esempio, anziché ottenere un elenco di tutti gli account dei membri dell'organizzazione dall'account di gestione, è possibile modificare lo script per specificare l'AWSaccount IDs o le AWS regioni che si desidera scansionare oppure è possibile fare riferimento a un file esterno che contiene questi parametri.

  5. Salvate e chiudete il file naa-script.sh.

AWS DevOps

Analizza gli account di destinazione.

  1. Esegui i comandi seguenti: Questo esegue lo script naa-script.sh.

    sudo -i cd /usr/local/naa screen ./naa-script.sh

    Tieni presente quanto segue:

    • Il screen comando consente allo script di continuare l'esecuzione nel caso in cui la connessione scada o si perda l'accesso alla console.

    • Dopo l'avvio della scansione, puoi forzare il distacco dello schermo premendo Ctrl+A D. La schermata si stacca ed è possibile chiudere la connessione dell'istanza mentre l'analisi procede.

    • Per riprendere una sessione separata, connettiti all'istanza, entra e poi accedi. sudo -i screen -r

  2. Monitorate l'output per eventuali errori per assicurarvi che lo script funzioni correttamente. Per un esempio di output, consultate la sezione Informazioni aggiuntive di questo modello.

  3. Attendi il completamento del processo. Se hai configurato le notifiche e-mail, ricevi un'e-mail quando i risultati sono stati caricati nel bucket S3 o importati in Security Hub.

AWS DevOps

Opzione 1: recupera i risultati dal bucket S3.

  1. Scarica il CSV file dal bucket. naa-<accountID>-<region> Per istruzioni, consulta Download di un oggetto nella documentazione di Amazon S3.

  2. Elimina il CSV file dal bucket S3. Si tratta di una procedura consigliata per l'ottimizzazione dei costi. Per istruzioni, consulta Eliminazione di oggetti nella documentazione di Amazon S3.

AWS DevOps

Opzione 2: rivedi i risultati in Security Hub.

  1. Apri la console Security Hub all'indirizzo https://console.aws.amazon.com/securityhub/.

  2. Scegli Findings dal pannello di navigazione.

  3. Esamina i risultati di Network Access Analyzer. Per istruzioni, consulta Visualizzazione degli elenchi e dei dettagli dei risultati nella documentazione del Security Hub.

    Nota: puoi cercare i risultati aggiungendo un titolo che inizia con il filtro e l'immissioneNetwork Access Analyzer.

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Correggere i risultati.

Correggi tutti i risultati che desideri correggere. Per ulteriori informazioni e best practice su come creare un perimetro attorno a AWS identità, risorse e reti, consulta Building a data perimeter on (Whitepaper). AWS AWS

AWS DevOps

Escludi le risorse con percorsi di rete noti e validi.

Se Network Access Analyzer genera risultati relativi a risorse che dovrebbero essere accessibili da Internet, puoi aggiungere tali risorse a un elenco di esclusione. La prossima volta che Network Access Analyzer verrà eseguito, non genererà alcun risultato per quella risorsa.

  1. Accedere allo script naa-script.sh /usr/local/naa, quindi aprirlo. Prendi nota del valore della S3_EXCLUSION_FILE variabile.

  2. Se il valore della S3_EXCLUSION_FILE variabile ètrue, scarica il file naa-exclusions.csv dal naa-<accountID>-<region> bucket. Per istruzioni, consulta Download di un oggetto nella documentazione di Amazon S3.

    Se il valore della S3_EXCLUSION_FILE variabile èfalse, accedi al file naa-exclusions.csv /usr/local/naa e apri.

    Nota: se il valore della S3_EXCLUSION_FILE variabile èfalse, lo script utilizza una versione locale del file delle esclusioni. Se successivamente modifichi il valore intrue, lo script sovrascrive la versione locale con il file nel bucket S3.

  3. Nel file naa-exclusions.csv, inserisci le risorse che desideri escludere. Immettete una risorsa in ogni riga e utilizzate il formato seguente.

    <resource_id>,<secgroup_id>,<sgrule_cidr>,<sgrule_portrange>,<sgrule_protocol>

    Di seguito è riportato un esempio di risorsa.

    eni-1111aaaaa2222bbbb,sg-3333ccccc4444dddd,0.0.0.0/0,80 to 80,tcp

  4. Salvate e chiudete il file naa-exclusions.csv.

  5. Se hai scaricato il file naa-exclusions.csv dal bucket S3, carica la nuova versione. Per istruzioni, consulta Caricamento di oggetti nella documentazione di Amazon S3.

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Aggiornare lo script naa-script.sh.

Se desideri aggiornare lo script naa-script.sh all'ultima versione del repository, procedi come segue:

  1. Connect all'EC2istanza utilizzando Session Manager. Per istruzioni, consulta Connect alla tua istanza Linux usando Session Manager.

  2. Inserire il seguente comando.

    sudo -i
  3. Passa alla directory degli script naa-script.sh.

    cd /usr/local/naa
  4. Immettete il seguente comando per nascondere lo script locale in modo da poter unire le modifiche personalizzate nella versione più recente.

    git stash
  5. Immettete il seguente comando per ottenere la versione più recente dello script.

    git pull
  6. Immettere il comando seguente per unire lo script personalizzato alla versione più recente dello script.

    git stash pop
AWS DevOps
AttivitàDescrizioneCompetenze richieste

Eliminare tutte le risorse distribuite.

È possibile lasciare le risorse distribuite negli account.

Se desideri eseguire il deprovisioning di tutte le risorse, procedi come segue:

  1. Elimina lo NAA-ExecRole stack fornito nell'account di gestione. Per istruzioni, consulta Eliminazione di uno stack nella documentazione. CloudFormation

  2. Elimina il set di NAA-ExecRole stack fornito nell'account di gestione dell'organizzazione o nell'account amministratore delegato. Per istruzioni, consulta Eliminare un set di stack nella documentazione. CloudFormation

  3. Elimina tutti gli oggetti nel bucket naa-<accountID>-<region> S3. Per istruzioni, consulta Eliminazione di oggetti nella documentazione di Amazon S3.

  4. Elimina lo NAA-Resources stack fornito nell'account di sicurezza. Per istruzioni, consulta Eliminazione di uno stack nella documentazione. CloudFormation

AWS DevOps

Risoluzione dei problemi

ProblemaSoluzione

Impossibile connettersi all'EC2istanza utilizzando Session Manager.

L'SSMagente deve essere in grado di comunicare con l'endpoint Systems Manager. Esegui questa operazione:

  1. Verifica che la sottorete in cui è distribuita l'EC2istanza abbia accesso a Internet.

  2. Riavvia l'istanza EC2.

Quando si distribuisce lo stack set, la console richiede di farlo. CloudFormation Enable trusted access with AWS Organizations to use service-managed permissions

Ciò indica che l'accesso affidabile non è stato abilitato tra AWS Organizations e CloudFormation. È necessario un accesso affidabile per distribuire il set di stack gestito dai servizi. Scegli il pulsante per abilitare l'accesso affidabile. Per ulteriori informazioni, consulta Abilitare l'accesso affidabile nella CloudFormation documentazione.

Risorse correlate

Informazioni aggiuntive

Esempio di output da console

L'esempio seguente mostra il risultato della generazione dell'elenco degli account di destinazione e dell'analisi degli account di destinazione.

[root@ip-10-10-43-82 naa]# ./naa-script.sh download: s3://naa-<account ID>-us-east-1/naa-exclusions.csv to ./naa-exclusions.csv AWS Management Account: <Management account ID> AWS Accounts being processed... <Account ID 1> <Account ID 2> <Account ID 3> Assessing AWS Account: <Account ID 1>, using Role: NAAExecRole Assessing AWS Account: <Account ID 2>, using Role: NAAExecRole Assessing AWS Account: <Account ID 3>, using Role: NAAExecRole Processing account: <Account ID 1> / Region: us-east-1 Account: <Account ID 1> / Region: us-east-1 – Detecting Network Analyzer scope... Processing account: <Account ID 2> / Region: us-east-1 Account: <Account ID 2> / Region: us-east-1 – Detecting Network Analyzer scope... Processing account: <Account ID 3> / Region: us-east-1 Account: <Account ID 3> / Region: us-east-1 – Detecting Network Analyzer scope... Account: <Account ID 1> / Region: us-east-1 – Network Access Analyzer scope detected. Account: <Account ID 1> / Region: us-east-1 – Continuing analyses with Scope ID. Accounts with many resources may take up to one hour Account: <Account ID 2> / Region: us-east-1 – Network Access Analyzer scope detected. Account: <Account ID 2> / Region: us-east-1 – Continuing analyses with Scope ID. Accounts with many resources may take up to one hour Account: <Account ID 3> / Region: us-east-1 – Network Access Analyzer scope detected. Account: <Account ID 3> / Region: us-east-1 – Continuing analyses with Scope ID. Accounts with many resources may take up to one hour

CSVesempi di report

Le immagini seguenti sono esempi del CSV risultato.

Esempio 1 del CSV rapporto generato da questa soluzione.

Esempio 2 del CSV rapporto generato da questa soluzione.