Correggi automaticamente istanze e cluster Amazon RDS DB non crittografati - 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à.

Correggi automaticamente istanze e cluster Amazon RDS DB non crittografati

Creato da Ajay Rawat (AWS) e Josh Joy (AWS)

Ambiente: PoC o pilota

Tecnologie: sicurezza, identità, conformità; database

Servizi AWS: AWS Config; AWS KMS; AWS Identity and Access Management; AWS Systems Manager; Amazon RDS

Riepilogo

Questo modello descrive come correggere automaticamente le istanze e i cluster DB non crittografati di Amazon Relational Database Service (Amazon RDS) su Amazon Web Services (AWS) utilizzando AWS Config, runbook AWS Systems Manager e chiavi AWS Key Management Service (AWS KMS).

Le istanze DB RDS crittografate forniscono un ulteriore livello di protezione dei dati proteggendo i dati dall'accesso non autorizzato allo storage sottostante. Puoi utilizzare la crittografia Amazon RDS per aumentare la protezione dei dati delle tue applicazioni distribuite nel cloud AWS e soddisfare i requisiti di conformità per la crittografia a riposo. Puoi abilitare la crittografia per un'istanza DB RDS al momento della creazione, ma non dopo la creazione. Tuttavia, è possibile aggiungere la crittografia a un'istanza RDS DB non crittografata creando uno snapshot dell'istanza DB e quindi creando una copia crittografata di tale istantanea. È quindi possibile ripristinare un'istanza DB dallo snapshot crittografato per ottenere una copia crittografata dell'istanza DB originale.

Questo modello utilizza le regole di AWS Config per valutare le istanze e i cluster DB RDS. Applica la correzione utilizzando i runbook di AWS Systems Manager, che definiscono le azioni da eseguire su risorse Amazon RDS non conformi, e le chiavi AWS KMS per crittografare gli snapshot DB. Quindi applica le politiche di controllo dei servizi (SCP) per impedire la creazione di nuove istanze e cluster DB senza crittografia.

Il codice per questo modello è fornito in. GitHub

Prerequisiti e limitazioni

Prerequisiti

Limitazioni

  • Puoi abilitare la crittografia per un'istanza DB RDS solo quando la crei, non dopo che è stata creata.

  • Non è possibile creare una replica di lettura crittografata di un'istanza database non crittografata o una replica di lettura non crittografata di un'istanza database crittografata.

  • Non puoi ripristinare un backup o uno snapshot non crittografato in un'istanza database crittografata.

  • La crittografia Amazon RDS è disponibile per la maggior parte delle classi di istanza database. Per un elenco di eccezioni, consulta Encrypting Amazon RDS resources nella documentazione di Amazon RDS.

  • Per copiare uno snapshot crittografato da una regione AWS a un'altra, devi specificare la chiave KMS nella regione AWS di destinazione. Questo perché le chiavi KMS sono specifiche della regione AWS in cui vengono create.

  • La snapshot di origine resta crittografata nel processo di copia. Amazon RDS utilizza la crittografia a busta per proteggere i dati durante il processo di copia. Per ulteriori informazioni, consulta Envelope encryption nella documentazione di AWS KMS.

  • Non è possibile decrittografare un'istanza DB crittografata. Tuttavia, è possibile esportare dati da un'istanza DB crittografata e importarli in un'istanza DB non crittografata.

  • Dovresti eliminare una chiave KMS solo quando sei sicuro di non averne più bisogno. Se non sei sicuro, prendi in considerazione la possibilità di disabilitare la chiave KMS anziché eliminarla. Puoi riattivare una chiave KMS disabilitata se devi riutilizzarla in un secondo momento, ma non puoi recuperare una chiave KMS eliminata. 

  • Se scegli di non conservare i backup automatici, i backup automatici che si trovano nella stessa regione AWS dell'istanza DB vengono eliminati. Non potranno quindi essere recuperati dopo aver eliminato l'istanza database.

  • I backup automatici vengono conservati per il periodo di conservazione impostato sull'istanza DB al momento dell'eliminazione. Questo periodo di conservazione impostato si verifica se si sceglie o meno di creare uno snapshot DB finale.

  • Se la riparazione automatica è abilitata, questa soluzione crittografa tutti i database che hanno la stessa chiave KMS.

Architettura

Il diagramma seguente illustra l'architettura per l'implementazione di CloudFormation AWS. Tieni presente che puoi implementare questo modello anche utilizzando AWS Cloud Development Kit (AWS CDK).

CloudFormation Implementazione AWS per la correzione di istanze Amazon RDS non crittografate.

Strumenti

Strumenti

  • AWS ti CloudFormation aiuta a configurare automaticamente le tue risorse AWS. Ti consente di utilizzare un file modello per creare ed eliminare una raccolta di risorse insieme come una singola unità (uno stack).

  • AWS Cloud Development Kit (AWS CDK) è un framework di sviluppo software per definire l'infrastruttura cloud in codice e fornirla utilizzando linguaggi di programmazione familiari.

Servizi e funzionalità AWS

  • AWS Config tiene traccia della configurazione delle tue risorse AWS e delle loro relazioni con le altre risorse. Può anche valutare la conformità di tali risorse AWS. Questo servizio utilizza regole che possono essere configurate per valutare le risorse AWS rispetto alle configurazioni desiderate. Puoi utilizzare un set di regole gestite da AWS Config per scenari di conformità comuni oppure puoi creare regole personalizzate per scenari personalizzati. Quando una risorsa AWS risulta non conforme, puoi specificare un'azione di riparazione tramite un runbook di AWS Systems Manager e, facoltativamente, inviare un avviso tramite un argomento Amazon Simple Notification Service (Amazon SNS). In altre parole, puoi associare le azioni di riparazione alle regole di AWS Config e scegliere di eseguirle automaticamente per affrontare le risorse non conformi senza interventi manuali. Se una risorsa non è ancora conforme dopo la riparazione automatica, puoi impostare la regola per riprovare la riparazione automatica.

  • Amazon Relational Database Service (Amazon RDS) semplifica la configurazione, il funzionamento e la scalabilità di un database relazionale nel cloud. L'elemento costitutivo di base di Amazon RDS è l'istanza DB, che è un ambiente di database isolato nel cloud AWS. Amazon RDS offre una selezione di tipi di istanze ottimizzati per adattarsi a diversi casi d'uso di database relazionali. I tipi di istanza comprendono varie combinazioni di CPU, memoria, storage e capacità di rete e offrono la flessibilità necessaria per scegliere la combinazione di risorse appropriata per il database. Ogni tipo di istanza include diverse dimensioni di istanza, che consentono di scalare il database in base ai requisiti del carico di lavoro di destinazione.

  • AWS Key Management Service (AWS KMS) è un servizio gestito che semplifica la creazione e il controllo delle chiavi AWS KMS, che crittografano i dati. Una chiave KMS è una rappresentazione logica di una chiave radice. La chiave KMS include metadati, ad esempio l'ID della chiave, la data di creazione, la descrizione e lo stato della chiave.

  • AWS Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.

  • Le policy di controllo dei servizi (SCP) offrono il controllo centralizzato sulle autorizzazioni massime disponibili per tutti gli account dell'organizzazione. Gli SCP ti aiutano a garantire che i tuoi account rispettino le linee guida per il controllo degli accessi dell'organizzazione. Le SCP non influenzano gli utenti e i ruoli nell'account di gestione. Influiscono solo sugli account membri nell'organizzazione. È consigliabile non collegare le SCP alla root della tua organizzazione senza testare accuratamente l'impatto che la policy ha sugli account. Create invece un'unità organizzativa (OU) in cui spostare i vostri account uno alla volta, o almeno in piccoli numeri, per assicurarvi di non bloccare inavvertitamente gli utenti dall'accesso ai servizi chiave.

Codice

Il codice sorgente e i modelli di questo pattern sono disponibili in un GitHub repository. Il modello offre due opzioni di implementazione: puoi distribuire un CloudFormation modello AWS per creare il ruolo di riparazione che crittografa le istanze e i cluster DB RDS o utilizzare il CDK AWS. Il repository ha cartelle separate per queste due opzioni.

La sezione Epics fornisce step-by-step istruzioni per la distribuzione del modello. CloudFormation Se desideri utilizzare il CDK AWS, segui le istruzioni nel file README.md nel repository. GitHub

Best practice

  • Abilita la crittografia dei dati sia a riposo che in transito.

  • Abilita AWS Config in tutti gli account e le regioni AWS.

  • Registra le modifiche alla configurazione di tutti i tipi di risorse.

  • Ruota periodicamente le credenziali IAM.

  • Sfrutta i tag per AWS Config, che semplifica la gestione, la ricerca e il filtraggio delle risorse.

Epiche

AttivitàDescrizioneCompetenze richieste

Scarica il CloudFormation modello.

Scarica il unencrypted-to-encrypted-rds.template.json file dal GitHub repository.

DevOps ingegnere

Crea lo CloudFormation stack.

  1. Accedi alla Console di gestione AWS e apri la CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation/

  2. Avvia il unencrypted-to-encrypted-rds.template.json modello per creare un nuovo stack.

Per ulteriori informazioni sulla distribuzione dei modelli, consulta la CloudFormation documentazione AWS.

DevOps ingegnere

Rivedi CloudFormation parametri e valori.

  1. Rivedi i dettagli dello stack e aggiorna i valori in base ai requisiti dell'ambiente.

  2. Scegli Crea stack per distribuire il modello.

DevOps ingegnere

Rivedi le risorse.

Quando lo stack è stato creato, il suo stato cambia in CREATE_COMPLETE. Esamina le risorse create (ruolo IAM, runbook AWS Systems Manager) nella CloudFormation console.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Aggiorna la tua politica sulle chiavi KMS.

  1. Assicurati che l'alias alias/RDSEncryptionAtRestKMSAlias della chiave esista. 

  2. La dichiarazione politica chiave dovrebbe includere il ruolo di riparazione IAM. (Controlla le risorse create dal CloudFormation modello che hai distribuito nell'epopea precedente.) 

  3. Nella seguente politica chiave, aggiorna le parti in grassetto in modo che corrispondano al tuo account e al ruolo IAM che è stato creato.

{ "Sid": "Allow access through RDS for all principals in the account that are authorized to use RDS", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:: <your-AWS-account-ID>”:role/<your-IAM-remediation-role>" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:ListGrants", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "rds.us-east-1.amazonaws.com", "kms:CallerAccount": "<your-AWS-account-ID>" } } }
DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Visualizza le risorse non conformi.

  1. Per visualizzare un elenco di risorse non conformi, apri la console AWS Config all'indirizzo https://console.aws.amazon.com/config/. 

  2. Nel pannello di navigazione, scegli Regole, quindi scegli la regola. rds-storage-encrypted

Le risorse non conformi elencate nella console AWS Config saranno istanze, non cluster. L'automazione della riparazione crittografa istanze e cluster e crea una nuova istanza crittografata o un cluster appena creato. Tuttavia, assicurati di non correggere contemporaneamente più istanze che appartengono allo stesso cluster.

Prima di correggere eventuali istanze o volumi DB RDS, assicurati che l'istanza DB RDS non sia in uso. Verifica che non siano in corso operazioni di scrittura durante la creazione dello snapshot, per assicurarti che l'istantanea contenga i dati originali. Valuta la possibilità di applicare una finestra di manutenzione durante la quale verrà eseguita la riparazione.

DevOps ingegnere

Correggi le risorse non conformi.

  1. Quando sei pronto e la finestra di manutenzione è attiva, scegli la risorsa da correggere, quindi scegli Ripara.

    La colonna Stato dell'azione dovrebbe ora visualizzare l'azione in coda di esecuzione.

  2. Visualizza l'avanzamento e lo stato della riparazione in Systems Manager. Apri la console AWS Systems Manager all'indirizzo https://console.aws.amazon.com/systems-manager/. Nel riquadro di navigazione, scegli Automazione, quindi seleziona l'ID di esecuzione dell'automazione corrispondente per visualizzare ulteriori dettagli.

DevOps ingegnere

Verifica che l'istanza DB RDS sia disponibile.

Una volta completata l'automazione, la nuova istanza DB RDS crittografata sarà disponibile. L'istanza DB RDS crittografata avrà il prefisso encrypted  seguito dal nome originale. Ad esempio, se il nome dell'istanza DB RDS non crittografata fossedatabase-1, lo sarebbe l'istanza DB RDS appena crittografata. encrypted-database-1

DevOps ingegnere

Termina l'istanza non crittografata.

Una volta completata la riparazione e convalidata la nuova risorsa crittografata, è possibile terminare l'istanza non crittografata. Assicurati di confermare che la nuova risorsa crittografata corrisponda alla risorsa non crittografata prima di terminare qualsiasi risorsa.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Applica gli SCP.

Implementa gli SCP per impedire che in futuro vengano creati istanze e cluster di database senza crittografia. Utilizza il rds_encrypted.json file fornito nel GitHub repository per questo scopo e segui le istruzioni nella documentazione AWS

Ingegnere della sicurezza

Risorse correlate

Riferimenti

Strumenti

Guide e pattern

Informazioni aggiuntive

DOMANDE FREQUENTI

D: Come funziona AWS Config?

R. Quando attivi AWS Config, rileva innanzitutto le risorse AWS supportate presenti nel tuo account e genera un elemento di configurazione per ogni risorsa. AWS Config genera anche elementi di configurazione quando la configurazione di una risorsa cambia e conserva i record storici degli elementi di configurazione delle tue risorse dal momento in cui avvii il registratore di configurazione. Per impostazione predefinita, AWS Config crea elementi di configurazione per ogni risorsa supportata nella regione AWS. Se non desideri che AWS Config crei elementi di configurazione per tutte le risorse supportate, puoi specificare i tipi di risorse che desideri venga monitorato.

D: In che modo le regole di AWS Config e AWS Config sono correlate ad AWS Security Hub?

R. AWS Security Hub è un servizio di sicurezza e conformità che fornisce la gestione della situazione di sicurezza e conformità come servizio. Utilizza AWS Config e le regole AWS Config come meccanismo principale per valutare la configurazione delle risorse AWS. Le regole di AWS Config possono essere utilizzate anche per valutare direttamente la configurazione delle risorse. Le regole di configurazione vengono utilizzate anche da altri servizi AWS, come AWS Control Tower e AWS Firewall Manager.