Configurazione e funzionamento sicuri dell'ADDF - AWS Guida prescrittiva

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

Configurazione e funzionamento sicuri dell'ADDF

L'Autonomous Driving Data Framework (ADDF) deve essere trattato come un software personalizzato che richiede manutenzione e assistenza continue da parte di un team DevOps e di sicurezza dedicato all'interno dell'organizzazione. Questa sezione descrive le attività relative alla sicurezza comuni che consentono di configurare e utilizzare l'ADDF per tutto il suo ciclo di vita.

Questa sezione contiene le attività seguenti:

Definizione dell'architettura dell'ADDF

Un'istanza ADDF è sicura quanto l'ambiente dell'Account AWS in cui viene implementata. L'ambiente dell'Account AWS deve essere progettato per soddisfare le esigenze di sicurezza e operative del caso d'uso specifico. Ad esempio, le attività e le considerazioni relative alla sicurezza e alle operazioni per la configurazione di un'istanza ADDF in un ambiente proof-of-concept (PoC) sono diverse da quelle per la configurazione dell'ADDF in un ambiente di produzione.

Esecuzione dell'ADDF in un ambiente PoC

Se intendi usare l'ADDF in un ambiente PoC, ti consigliamo di creare un account dedicato all'Account AWS che non contenga altri carichi di lavoro. Questo aiuta a proteggere il tuo account mentre esplori l'ADDF e le sue funzionalità. I vantaggi di questo approccio sono i seguenti: 

  • In caso di gravi errori di configurazione dell'ADDF, nessun altro carico di lavoro subirebbe conseguenze negative.

  • Non c'è il rischio di altre configurazioni del carico di lavoro errate che potrebbero influire negativamente sulla configurazione dell'ADDF.

Anche per l'ambiente PoC, è comunque preferibile seguire il più possibile tutte le best practice elencate in Esecuzione dell'ADDF in un ambiente di produzione.

Esecuzione dell'ADDF in un ambiente di produzione

Se intendi utilizzare ADDF in un ambiente di produzione aziendale, ti consigliamo vivamente di osservare le best practice di sicurezza della tua organizzazione e di implementare l'ADDF di conseguenza. Oltre a seguire le best practice di sicurezza della tua organizzazione, ti consigliamo di adottare i seguenti accorgimenti:

  • Crea un team DevOps ADDF impegnato a lungo termine: l'ADDF deve essere trattato come un software personalizzato. Richiede manutenzione e assistenza continue da parte di un team DevOps dedicato. Prima di iniziare a eseguire l'ADDF in un ambiente di produzione, è necessario definire un team DevOps di dimensioni e capacità sufficienti, con un impegno di risorse completo, fino alla fine del ciclo di vita dell'implementazione dell'ADDF.

  • Utilizza un'architettura multi-account: ciascuna istanza ADDF deve essere implementata nel proprio ambiente AWS multi-account dedicato, senza altri carichi di lavoro non correlati. Come definito nella Gestione e separazione degli account AWS (Canone di architettura AWS), è considerata una best practice separare le risorse e i carichi di lavoro in più Account AWS, in base ai requisiti dell'organizzazione. Ciò è dovuto al fatto che un Account AWS funge da limite di isolamento. Un'architettura AWS multi-account correttamente progettata fornisce una categorizzazione del carico di lavoro e riduce la portata dell'impatto in caso di violazione della sicurezza rispetto a un'architettura ad account singolo. L'utilizzo di un'architettura multi-account aiuta inoltre gli account a restare all'interno delle loro quote Servizio AWS. Distribuisci i moduli ADDF su tutti gli Account AWS necessari per soddisfare i requisiti di sicurezza e di separazione delle responsabilità della tua organizzazione.

  • Implementa più istanze ADDF: configura tutte le istanze ADDF separate di cui hai bisogno per sviluppare, testare e implementare correttamente i moduli ADDF in base ai processi di sviluppo software della tua organizzazione. Inoltre, quando configuri più istanze ADDF puoi utilizzare uno dei seguenti approcci:

    • Istanze ADDF multiple in diversi ambienti AWS multi-account - È possibile utilizzare Account AWS separati per isolare diverse istanze ADDF. Ad esempio, se l'organizzazione ha fasi di sviluppo, test e produzione dedicate, è possibile creare istanze ADDF separate e account dedicati per ogni fase. Ciò offre molti vantaggi, quali la riduzione del rischio di propagazione degli errori tra più fasi, e aiuta a implementare un processo di approvazione e a limitare l'accesso degli utenti solo a determinati ambienti. L'immagine seguente mostra due istanze ADDF implementate in ambienti multi-account separati.

      Due istanze ADDF in ambienti AWS distinti con architetture multi-account
    • Istanze ADDF multiple nello stesso ambiente AWS multi-account - È possibile creare istanze ADDF multiple che condividono lo stesso ambiente AWS multi-account. Questo crea efficacemente rami isolati negli stessi Account AWS. Ad esempio, se diversi sviluppatori lavorano in parallelo, uno sviluppatore può creare un'istanza ADDF dedicata negli stessi Account AWS. Questo aiuta gli sviluppatori a lavorare in rami isolati per scopi di sviluppo e test. Se si utilizza questo approccio, le risorse ADDF devono avere nomi di risorse univoci per ogni istanza ADDF. Per impostazione predefinita, questa funzionalità è supportata nei moduli forniti di default dall'ADDF. È possibile utilizzare questo approccio purché non si superino le quote Servizio AWS. L'immagine seguente mostra due istanze ADDF implementate in un ambiente multi-account condiviso.

      Due istanze ADDF implementate nello stesso ambiente multi-account AWS.
    • Istanze ADDF multiple nello stesso ambiente AWS ad account singolo - Questa architettura è molto simile all'esempio precedente. La differenza sta nel fatto che le istanze ADDF multiple vengono implementate in un ambiente ad account singolo invece che in un ambiente multi-account. Questa architettura può adattarsi a casi d'uso dell'ADDF molto semplici caratterizzati da un ambito molto limitato e con più sviluppatori che lavorano contemporaneamente su diversi rami.

      Due istanze ADDF distribuite nello stesso ambiente AWS ad account singolo.

    Dato che SeedFarmer è l'unico strumento che controlla le implementazioni di un'istanza ADDF, puoi creare qualsiasi ambiente e architettura di account che si adatti alla strategia di implementazione e ai processi CI/CD della tua organizzazione.

  • Personalizza il processo di bootstrap di AWS Cloud Development Kit (AWS CDK) in base ai requisiti di sicurezza della tua organizzazione: per impostazione predefinita, AWS CDK assegna la policy gestita AWS AdministratorAccess durante il processo di bootstrap. Inoltre, questa policy garantisce privilegi amministrativi completi. Se questa policy è troppo permissiva per i requisiti di sicurezza dell'organizzazione, è possibile personalizzare i criteri da applicare. Per ulteriori informazioni, consulta Policy personalizzata relativa ai privilegi minimi per il ruolo di implementazione AWS CDK.

  • Rispetta le best practice durante la configurazione dell'accesso in IAM: stabilisci una soluzione di accesso AWS Identity and Access Management (IAM) strutturata che consenta agli utenti di accedere all'Account AWS ADDF. L'ADDF è progettato per aderire al principio del privilegio minimo. Il tuo schema di accesso IAM dovrebbe inoltre seguire il principio del privilegio minimo, essere conforme ai requisiti dell'organizzazione e rispettare le best practice per la sicurezza in IAM (documentazione IAM).

  • Configura la rete secondo le best practice della tua organizzazione: ADDF include uno stack AWS CloudFormation di rete opzionale che crea un cloud privato virtuale (VPC) pubblico o privato di base. A seconda della configurazione dell'organizzazione, questo VPC potrebbe esporre le risorse direttamente a Internet. Pertanto ti consigliamo di seguire le best practice di rete della tua organizzazione e di creare un modulo di rete personalizzato con protezione avanzata.

  • Implementa misure di prevenzione, rilevamento e mitigazione dei rischi a livello di Account AWS: AWS offre diversi servizi di sicurezza, come Amazon GuardDuty, AWS Security Hub, Amazon Detective e AWS Config. Abilita questi servizi nel tuo Account AWS ADDF e integra i processi di prevenzione, rilevamento, mitigazione dei rischi e gestione degli incidenti della tua organizzazione. È fortemente consigliato seguire le Best practice per sicurezza, identità e conformità (Centro di architettura AWS) ed eventuali raccomandazioni specifiche relative al servizio contenute nella documentazione relativa a tale servizio. Per ulteriori informazioni, consulta la Documentazione sulla sicurezza AWS.

L'ADDF non affronta nessuno di questi argomenti perché i dettagli di implementazione e configurazione dipendono in larga misura dai requisiti e dai processi specifici dell'organizzazione. Affrontare questi argomenti è invece una responsabilità fondamentale dell'organizzazione. In genere, il team che gestisce la zona di destinazione AWS può aiutarti a pianificare e implementare il tuo ambiente ADDF.

Configurazione iniziale

Configura l'ADDF in base alla Guida all'implementazione dell'ADDF (GitHub). Il punto di partenza per qualsiasi implementazione è la cartella /manifest nel repository Git Hub autonomous-driving-data-framework. La cartella /manifest/example-dev contiene un'implementazione di esempio a scopo dimostrativo. Puoi usare questo esempio come punto di partenza per progettare la tua implementazione. In quella directory è presente un file manifesto dell'implementazione dell'ADDF chiamato deployment.yaml. Contiene tutte le informazioni necessarie a SeedFarmer per gestire, implementare o eliminare l'ADDF e le sue risorse nel Cloud AWS. È possibile creare gruppi di moduli ADDF in file dedicati. Il file core-modules.yaml è un esempio del gruppo di moduli core e include tutti i moduli principali forniti dall'ADDF. Per riassumere, il file deployment.yaml contiene tutti i riferimenti ai gruppi e ai moduli che saranno implementati nei rispettivi account target e specifica l'ordine di implementazione.

Per una configurazione sicura e conforme, soprattutto in un ambiente che non è un proof of concept, si consiglia di esaminare il codice sorgente di ogni modulo da implementare. In base alle best practice di rafforzamento della sicurezza, è preferibile implementare solo i moduli necessari per il caso d'uso previsto.

Nota

I moduli ADDF nella cartella modules/demo-only/ non hanno una sicurezza elevata e non dovrebbero essere implementati in ambienti di produzione o in qualsiasi ambiente con dati sensibili o protetti. Questi moduli sono inclusi per mostrare le funzionalità del sistema e possono essere utilizzati come base per creare moduli personalizzati e dotati di protezione avanzata.

Personalizzazione del codice del framework di implementazione ADDF

Il framework di implementazione ADDF e la sua logica di orchestrazione e implementazione possono essere completamente personalizzati per soddisfare qualsiasi esigenza. Tuttavia, ti consigliamo di astenerti dal personalizzarlo o di ridurre le modifiche al minimo per i seguenti motivi:

  • Mantenere la compatibilità upstream: la compatibilità upstream semplifica l'aggiornamento dell'ADDF per le funzionalità e gli aggiornamenti di sicurezza più recenti. La modifica del framework interrompe la compatibilità con le versioni precedenti nativa con SeedFarmer, CodeSeeder e tutti i moduli ADDF principali.

  • Conseguenze sulla sicurezza: la modifica del framework di implementazione ADDF può essere un'attività complessa che può avere conseguenze indesiderate sulla sicurezza. Nel peggiore dei casi, le modifiche al framework possono causare vulnerabilità per la sicurezza.

Quando possibile, crea e personalizza il codice del tuo modulo invece di modificare il framework di implementazione ADDF e il codice del modulo ADDF principale.

Nota

Se ritieni che parti specifiche del framework di implementazione ADDF necessitino di miglioramenti o di un ulteriore rafforzamento della sicurezza, apporta le tue modifiche al repository ADDF tramite una richiesta pull. Per ulteriori informazioni, consulta Revisioni e contributi open source sulla sicurezza.

Scrivere moduli personalizzati nell'ADDF

La creazione di un nuovo modulo ADDF o l'estensione di un modulo esistente è un concetto fondamentale dell'ADDF. Quando crei o personalizzi i moduli, ti suggeriamo di seguire le best practice generali di sicurezza di AWS e le best practice della tua organizzazione per una codifica sicura. Inoltre, per ridurre ulteriormente il rischio di problemi di sicurezza, si consiglia di effettuare revisioni tecniche di sicurezza sia iniziali che periodiche, interne o esterne, in base ai requisiti di sicurezza dell'organizzazione.

Implementazioni ADDF ricorrenti

Implementa l'ADDF e i suoi moduli come descritto nella Guida all'implementazione dell'ADDF (GitHub). Per supportare le implementazioni ADDF ricorrenti che aggiungono, aggiornano o rimuovono risorse negli account target, SeedFarmer utilizza gli hash MD5, memorizzati nell'archivio dei parametri dei tuoi account target e toolchain, per confrontare l'infrastruttura attualmente implementata con l'infrastruttura definita nei file manifesto nella tua base di codice locale.

Questo approccio segue il paradigma GitOps, in cui il tuo repository di origine (la base di codice locale in cui gestisci SeedFarmer) è l'unica origine e l'infrastruttura dichiarata esplicitamente in esso è il risultato desiderato della tua implementazione. Per maggiori informazioni su GitOps, consulta Cos'è GitOps (sito web GitLab).

Controlli di sicurezza ricorrenti

Proprio come per qualsiasi altro software della tua organizzazione, integra l'ADDF e il codice del modulo ADDF personalizzato nella gestione dei rischi di sicurezza, nella revisione della sicurezza e nel ciclo di audit di sicurezza.

Aggiornamenti dell'ADDF

L'ADDF riceve aggiornamenti regolari come parte del suo continuo impegno nello sviluppo. Ciò include aggiornamenti delle funzionalità e miglioramenti e correzioni in termini di sicurezza. Ti consigliamo di controllare regolarmente la presenza di nuove versioni del framework e di applicare gli aggiornamenti tempestivamente. Per ulteriori informazioni, consulta Procedura per aggiornare l'ADDF (Documentazione ADDF).

Disattivazione

Se l'ADDF non è più necessario, elimina l'ADDF e tutte le risorse correlate dai tuoi Account AWS. Qualsiasi infrastruttura non presidiata e non utilizzata comporta costi inutili e rappresenta un potenziale rischio per la sicurezza. Per ulteriori informazioni, consulta Passaggi per eliminare ADDF in modo definitivo (Documentazione ADDF).