Registrazione centralizzata e barriere di sicurezza per più account - 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à.

Registrazione centralizzata e barriere di sicurezza per più account

Creato da Ankush Verma (AWS), Shree Gautam (), Tracy Hickey (AWS) e Corie White () AWS AWS

Ambiente: produzione

Tecnologie: sicurezza, identità, conformità; gestione e governance

AWSservizi: AWS CloudFormation; AWS Config; Amazon CloudWatch; Amazon; GuardDuty AWS Lambda; AWS CodePipeline Amazon Macie; Security AWS Hub; Amazon S3

Riepilogo

Avviso: non AWS CodeCommit è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni

L'approccio descritto in questo modello è adatto ai clienti che dispongono di più account Amazon Web Services (AWS) presso AWS Organizations e che ora incontrano difficoltà nell'utilizzare AWS Control Tower, una landing zone o i servizi di distribuzione automatica di account per configurare guardrail di base nei propri account.

Questo modello dimostra l'uso di un'architettura semplificata con più account per configurare registrazioni centralizzate e controlli di sicurezza standardizzati in modo ben strutturato. Con l'aiuto di AWS CloudFormation modelli e script di automazione AWS CodePipeline, questa configurazione viene implementata in tutti gli account che appartengono a un'organizzazione.

L'architettura con più account include i seguenti account:

  • Account di registrazione centralizzato: l'account in cui sono archiviati tutti i log, i log AWS CloudTrail , il log AWS Config e tutti i log di Amazon CloudWatch Logs (utilizzando gli abbonamentiVPC) di tutti gli altri account.

  • Account di sicurezza principale: l'account che funge da account principale per i seguenti servizi di sicurezza che gestiscono più account.

    • Amazon GuardDuty

    • AWS Security Hub

    • Amazon Macie

    • Amazon Detective

  • Account per bambini: gli altri account dell'organizzazione. Questi account archiviano tutti i log utili nell'account di registrazione centralizzato. Gli account secondari si aggiungono all'account di sicurezza principale come membri dei servizi di sicurezza.

Dopo aver avviato il CloudFormation modello (allegato), effettua il provisioning di tre bucket Amazon Simple Storage Service (Amazon S3) nell'account di registrazione centralizzato. Un bucket viene utilizzato per archiviare tutti i log AWS correlati (ad esempio i log di VPC Flow Logs CloudTrail e AWS Config) di tutti gli account. Il secondo bucket serve per archiviare i modelli di tutti gli CloudFormation account. Il terzo bucket serve per archiviare i log di accesso di Amazon S3.

Un CloudFormation modello separato crea la pipeline che utilizza. AWS CodeCommit Dopo che il codice aggiornato è stato inviato al CodeCommit repository, si occupa dell'avvio delle risorse e della configurazione dei servizi di sicurezza in tutti gli account. Per ulteriori informazioni sulla struttura dei file che verranno caricati nel CodeCommit repository, consultate il README file.md (allegato).

Prerequisiti e limitazioni

Prerequisiti

  • Un ID dell'organizzazione AWS Organizations, con tutti gli account uniti alla stessa organizzazione.

  • Un indirizzo e-mail attivo per ricevere le notifiche di Amazon Simple Notification Service (AmazonSNS).

  • Quote confermate per i bucket Amazon Simple Storage Service (Amazon S3) in ciascuno dei tuoi account. Per impostazione predefinita, ogni account ha 100 bucket S3. Se hai bisogno di bucket aggiuntivi, richiedi un aumento della quota prima di implementare questa soluzione.

Limitazioni

Tutti gli account devono far parte della stessa organizzazione. Se non utilizzi AWS Organizations, devi modificare alcune policy, come la policy del bucket S3, per consentire l'accesso dai ruoli AWS Identity and Access Management (IAM) per ogni account.

Nota: durante l'implementazione della soluzione, devi confermare l'SNSabbonamento Amazon. Il messaggio di conferma viene inviato all'indirizzo e-mail fornito durante il processo di distribuzione. Ciò avvierà alcuni messaggi di avviso e-mail a questo indirizzo e-mail, poiché questi allarmi vengono attivati ogni volta che vengono create o modificate le politiche relative ai IAM ruoli nell'account. Durante il processo di distribuzione, puoi ignorare questi messaggi di avviso.

Architettura

Stack tecnologico Target

  • CloudWatch Allarmi e registri Amazon

  • AWS CodeCommit deposito

  • AWS CodePipeline

  • AWSConfig

  • Amazon Detective

  • Amazon GuardDuty

  • IAMruoli e autorizzazioni

  • Amazon Macie

  • Bucket S3

  • AWS Security Hub

  • Amazon SNS

Architettura Target

Diagramma che mostra i servizi nei tre AWS account.
Diagrammi che mostrano i dettagli dei servizi di registrazione e sicurezza.
  1. Altri account registrati come account secondari dell'account di sicurezza principale per i servizi di sicurezza

  2. Risultati di sicurezza relativi a tutti gli account per bambini, incluso l'account principale

Risorse

Le seguenti risorse vengono fornite automaticamente quando il codice aggiornato viene inviato al CodeCommit repository di ogni account e regione. AWS

CloudFormation stack 1 — Registrazione dello stack principale

- Stack annidato 1: ruoli e politiche standard IAM

- Nested stack 2 — Configurazione della AWS configurazione nell'account

- Stack annidato 3 — allarmi CloudWatch

            - SecurityGroupChangesAlarm

            - UnauthorizedAttemptAlarm

            - RootActivityAlarm

            - NetworkAclChangesAlarm

            - IAMUserManagementAlarm

            - IAMPolicyChangesAlarm

            - CloudTrailChangeAlarm

            - IAMCreateAccessKeyAlarm

      - Filtri metrici per creare metriche dai CloudTrail log e utilizzarle per gli allarmi

      SNS- argomento

CloudFormation pila 2 — Pila di guardrail principale

- Nested stack 1 — Funzione AWS Lambda per l'impostazione della politica di password dell'account

- Nested stack 2 — Regole di AWS Config di base

      - CIS-SecurityGroupsMustRestrictSshTraffic

      - OpenSecurityGroupRuleCheck insieme alla funzione Lambda per la valutazione delle regole del gruppo di sicurezza

      - check-ec2- for-required-tag

      - check-for-unrestricted-ports

CloudFormation stack 3 — esportazione dei log CloudWatch

- Esportazione di CloudWatch log da gruppi di log ad Amazon S3 utilizzando un abbonamento Amazon Kinesis

Strumenti

  • AWS CloudFormation— AWS CloudFormation utilizza modelli per modellare e fornire, in modo automatizzato e sicuro, tutte le risorse necessarie per le applicazioni in tutte AWS le regioni e gli account.

  • Amazon CloudWatch: Amazon CloudWatch monitora AWS le tue risorse e le applicazioni su cui esegui AWS in tempo reale. Puoi utilizzarlo CloudWatch per raccogliere e tenere traccia delle metriche, che sono variabili che puoi misurare per le tue risorse e applicazioni.

  • AWS CodeCommit— AWS CodeCommit è un servizio di controllo delle versioni ospitato da. AWS È possibile CodeCommit utilizzarlo per archiviare e gestire privatamente risorse (come documenti, codice sorgente e file binari) nel cloud.

  • AWS CodePipeline— AWS CodePipeline è un servizio di distribuzione continua che puoi utilizzare per modellare, visualizzare e automatizzare i passaggi necessari per il rilascio del software.

  • AWSConfig: AWS Config fornisce una visualizzazione dettagliata della configurazione delle AWS risorse nel tuo account. AWS Questo include le relazioni tra le risorse e la maniera in cui sono state configurate in passato, in modo che tu possa vedere come le configurazioni e le relazioni cambiano nel corso del tempo.

  • Amazon Detective: Amazon Detective viene utilizzato per analizzare, indagare e identificare rapidamente la causa principale dei risultati di sicurezza o delle attività sospette. Detective raccoglie automaticamente i dati di registro dalle tue AWS risorse. Utilizza quindi l'apprendimento automatico, l'analisi statistica e la teoria dei grafi per aiutarti a visualizzare e condurre indagini di sicurezza più rapide ed efficienti.

  • Amazon GuardDuty — Amazon GuardDuty è un servizio di monitoraggio continuo della sicurezza che analizza ed elabora i log di flusso, i log degli eventi di CloudTrail gestione, i registri degli eventi CloudTrail dei dati e i log del Domain Name System (). DNS Utilizza feed di intelligence sulle minacce, come elenchi di indirizzi IP e domini dannosi, e l'apprendimento automatico per identificare attività impreviste e potenzialmente non autorizzate e dannose all'interno del tuo ambiente. AWS

  • AWSIdentity and Access Management: AWS Identity and Access Management (IAM) è un servizio web che consente di controllare in modo sicuro l'accesso alle AWS risorse. Viene utilizzato IAM per controllare chi è autenticato (ha effettuato l'accesso) e autorizzato (dispone delle autorizzazioni) a utilizzare le risorse.

  • Amazon Macie — Amazon Macie automatizza l'individuazione di dati sensibili, come informazioni di identificazione personale PII () e dati finanziari, per fornirti una migliore comprensione dei dati archiviati dalla tua organizzazione in Amazon S3.

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) è un servizio di storage di oggetti altamente scalabile che può essere utilizzato per un'ampia gamma di soluzioni di storage, tra cui siti Web, applicazioni mobili, backup e data lake.

  • AWSSecurity Hub: AWS Security Hub ti offre una visione completa dello stato di sicurezza AWS e ti aiuta a controllare il tuo ambiente rispetto agli standard di sicurezza e alle migliori pratiche.

  • Amazon SNS — Amazon Simple Notification Service (AmazonSNS) è un servizio gestito che fornisce il recapito dei messaggi dagli editori agli abbonati (noti anche come produttori e consumatori).

Best practice

< Autore Rimuovi queste note: fornisci un elenco di linee guida e consigli che possono aiutare gli utenti a implementare questo modello in modo più efficace. >

Epiche

AttivitàDescrizioneCompetenze richieste

Avvia il modello Childaccount_ IAM CloudFormation _Role_all_accounts.yaml per creare il ruolo nella regione us-east-1. IAM

Per creare i IAM ruoli e le autorizzazioni richiesti, è necessario avviare manualmente questo modello in ogni account, uno per uno (account di registrazione centralizzato, account di sicurezza principale e tutti gli altri AWS account dell'organizzazione) nella regione us-east-1. Il Childaccount_IAM_role_All_Accounts.yaml modello si trova nella cartella del pacchetto. /templates/initial_deployment_templates Il IAM ruolo viene utilizzato quando si effettuano API chiamate per il provisioning e la configurazione del resto dell'architettura. Assicurati che il nome del IAM ruolo passato come parametro sia coerente in tutti gli account.

Architetto del cloud

Nei parametri del modello, fornisci il nome del IAM ruolo.

Fornisci il IAM ruolo che CodeBuild, nell'account di sicurezza principale, può assumere in tutti gli altri account secondari. Il nome del ruolo predefinito è security_execute_child_stack_role.

Architetto del cloud

Nei parametri, fornisci l'ID dell'account di sicurezza principale.

L'account di sicurezza principale è l'account su cui CodeBuild viene eseguito.

Architetto del cloud
AttivitàDescrizioneCompetenze richieste

Nell'account di registrazione centralizzato, in us-east-1, avvia il modello S3Buckets-Centralized- .yaml. LoggingAccount CloudFormation

Per creare i bucket S3 nell'account di registrazione centralizzato, avvia il. S3Buckets-Centralized-LoggingAccount.yaml Il modello si trova nella /templates/initial_deployment_templates cartella del pacchetto. I bucket S3 memorizzeranno tutti i log, i modelli e i log di accesso di Amazon S3. Prendi nota di tutti i nomi dei bucket S3, che utilizzerai per modificare i file dei parametri nei passaggi seguenti.

Architetto del cloud

Nei parametri del modello, fornisci il nome del bucket S3 per l'archiviazione dei AWS log.

Immettete un nome per il parametro. S3 Bucket Name for Centralized Logging in Logging Account Questo bucket funge da posizione centralizzata per archiviare AWS i log, come i log di flusso e i CloudTrail log, di tutti gli account. Prendi nota sia del nome del bucket che dell'Amazon Resource Name (ARN).

Architetto del cloud

Fornisci il nome del bucket S3 per archiviare i log di accesso.

Immettete il nome di un bucket S3 per il parametro. S3 Bucket Name for Access Logs in Logging Account Questo bucket S3 memorizza i log di accesso per Amazon S3.

Architetto del cloud

Fornisci il nome del bucket S3 per l'archiviazione dei modelli.

Inserisci il nome di un bucket S3 nel parametro. S3 Bucket Name for CloudFormation Template storage in Logging Account

Architetto del cloud

Fornisci l'ID dell'organizzazione.

Per fornire l'accesso ai bucket S3 all'interno dell'organizzazione, inserisci l'ID dell'organizzazione nel Organization Id for Non-AMS accounts parametro.

Architetto del cloud
AttivitàDescrizioneCompetenze richieste

Avvia il modello security-guard-rails-codepipeline -Centralized- SecurityAccount .yml. CloudFormation

Per implementare la pipeline CI/CD, avvia manualmente il security-guard-rails-codepipeline-Centralized-SecurityAccount.yml modello nell'account di sicurezza principale in us-east-1. Il modello si trova nella directory del pacchetto. /templates/initial_deployment_templates Questa pipeline implementerà tutta l'infrastruttura in tutti gli account secondari.

Architetto del cloud

Fornisci un nome per il bucket S3 che memorizzerà i modelli nell'account di registrazione centralizzato.

Inserisci il nome del bucket S3 che hai fornito per il parametro nel passaggio 2. S3 Bucket Name for the CloudFormation Template storage in Logging Account

Architetto del cloud

Fornisci il nome del IAM ruolo da utilizzare negli account per bambini.

Inserisci il nome che hai fornito per il Name of the IAM role parametro nel passaggio 1.

Architetto del cloud

Fornisci un indirizzo email attivo per ricevere le notifiche di CodePipeline errore.

Inserisci l'indirizzo e-mail che desideri utilizzare per ricevere notifiche di CodePipeline errore e altre notifiche relative agli CloudWatch allarmi.

Architetto del cloud
AttivitàDescrizioneCompetenze richieste

Modifica AccountList.json.

Nel Accountlist.json file, che si trova al livello più alto del pacchetto, aggiungi il numero di account di sicurezza principale e i numeri di account secondario. Tieni presente che il ChildAccountList campo include anche il numero dell'account di sicurezza principale. Vedi l'esempio nel deployment-instructions.md file contenuto nel pacchetto.

Architetto del cloud

Modifica accounts.csv

Nel accounts.csv file, che si trova al livello più alto del pacchetto, aggiungi tutti gli account secondari insieme all'e-mail registrata con gli account. Vedi l'esempio nel deployment-instructions.md file.

Architetto del cloud

Modifica parameters.config.

Nel parameters.config file, che si trova nella /templates cartella, aggiorna i seguenti sei parametri:

  • pNotifyEmail: L'indirizzo e-mail che hai fornito durante la configurazione della pipeline (vedi Passaggio 3)

  • pstackNameLogging: Il nome dello CloudFormation stack per la registrazione centralizzata

  • pS3LogsBucket: Il nome del bucket S3 in cui verranno archiviati i log di tutti gli account (vedi Passaggio 2)

  • pBucketName: Il ARN per il bucket S3 utilizzato per archiviare i log

  • pTemplateBucketName: il nome dei bucket S3 in cui verranno archiviati i modelli (vedi Passaggio 2)

  • pAllowedAccounts: Account IDs per gli account genitore e figlio

Per gli altri parametri, puoi mantenere i valori predefiniti. Per un esempio, consultate il deployment-instructions.md file contenuto nel pacchetto.

Architetto del cloud
AttivitàDescrizioneCompetenze richieste

Accedi al CodeCommit repository che hai creato nel passaggio 3.

Dalla sezione Outputs dello CloudFormation stack di infrastruttura CI/CD (avviato nella fase 3), annota il nome del repository. CodeCommit URL Crea l'accesso al repository in modo che i file possano essere inviati al repository per l'implementazione dell'infrastruttura in tutti gli account di destinazione. Per ulteriori informazioni, consulta Configurazione per. AWS CodeCommit

Architetto del cloud

Invia i file al CodeCommit repository.

Installa Git sulla tua macchina. Quindi esegui i comandi Git per clonare l'archivio vuoto, copiare i file dal laptop alla cartella del repository e inviare gli artefatti al repository. Controlla i comandi Git di esempio nel deployment-instructions.md file del pacchetto. Per i comandi Git di base, consulta la sezione Risorse correlate.

Architetto del cloud
AttivitàDescrizioneCompetenze richieste

Conferma lo stato di CodePipeline and CodeBuild.

Dopo aver inviato gli artefatti al CodeCommit repository, verifica che la CodePipeline pipeline creata nel passaggio 3 sia stata avviata. Quindi controllate i CodeBuild log per confermare lo stato o gli errori.

Architetto del cloud

Risorse correlate

Allegati

Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip