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:
Identifica AWS le risorse accessibili a Internet tramite gateway Internet.
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

Il diagramma mostra il seguente processo:
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.
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.
L'EC2istanza assume il
NAAEC2Role
IAM ruolo, che concede le autorizzazioni per accedere al bucket S3 e per assumere iNAAExecRole
IAM ruoli negli altri account dell'organizzazione.L'EC2istanza assume il
NAAExecRole
IAM ruolo nell'account di gestione dell'organizzazione e genera un elenco degli account dell'organizzazione.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. EC2L'EC2istanza utilizza uno script Python per elaborare i JSON file, estrarre i campi di dati e creare un CSV report.
L'EC2istanza carica il CSV file nel bucket S3.
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.
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

Il diagramma mostra il seguente processo:
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.
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.
L'EC2istanza assume il
NAAEC2Role
IAM ruolo, che concede le autorizzazioni per accedere al bucket S3 e per assumere iNAAExecRole
IAM ruoli negli altri account dell'organizzazione.L'EC2istanza assume il
NAAExecRole
IAM ruolo nell'account di gestione dell'organizzazione e genera un elenco degli account dell'organizzazione.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. EC2L'EC2istanza utilizza uno script Python per elaborare JSON i file ed estrarre i campi di dati per l'importazione in Security Hub.
L'EC2istanza importa i risultati di Network Access Analyzer in Security Hub.
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.
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
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
EC2naa-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
IAMnaa-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
IAMnaa-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à | Descrizione | Competenze richieste |
---|---|---|
Clona il repository del codice. |
| AWS DevOps |
Esamina i modelli. |
| AWS DevOps |
Attività | Descrizione | Competenze 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:
| 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.
| 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.
| AWS DevOps |
Attività | Descrizione | Competenze richieste |
---|---|---|
Personalizza lo script della shell. |
| AWS DevOps |
Analizza gli account di destinazione. |
| AWS DevOps |
Opzione 1: recupera i risultati dal bucket S3. |
| AWS DevOps |
Opzione 2: rivedi i risultati in Security Hub. |
| AWS DevOps |
Attività | Descrizione | Competenze 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.
| AWS DevOps |
Attività | Descrizione | Competenze richieste |
---|---|---|
Aggiornare lo script naa-script.sh. | Se desideri aggiornare lo script naa-script.sh all'ultima versione del repository, procedi come segue:
| AWS DevOps |
Attività | Descrizione | Competenze 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:
| AWS DevOps |
Risoluzione dei problemi
Problema | Soluzione |
---|---|
Impossibile connettersi all'EC2istanza utilizzando Session Manager. | L'SSMagente deve essere in grado di comunicare con l'endpoint Systems Manager. Esegui questa operazione:
|
Quando si distribuisce lo stack set, la console richiede di farlo. CloudFormation | 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.

