Best practice per CMEK di Apigee

Questa pagina descrive le best practice per CMEK con Apigee.

Prevenzione dei rischi

Al momento, Apigee supporta un insieme limitato di funzionalità delle chiavi di crittografia gestite dal cliente. Per evitare l'eliminazione accidentale delle chiavi CMEK o delle versioni delle chiavi, ti consigliamo di implementare quanto segue:

  • Rafforza i controlli di accesso:limita il ruolo roles/cloudkms.admin o le autorizzazioni di eliminazione/aggiornamento delle chiavi solo ad amministratori attendibili o membri senior del team.
  • Controlla regolarmente le autorizzazioni:assicurati che le autorizzazioni non vengano ampliate inavvertitamente nel tempo.
  • Eliminazione automatica delle chiavi:non configurare automazioni per eliminare/disattivare automaticamente le chiavi.

Configura la durata e la rotazione dell'eliminazione delle chiavi

  • Valuta la possibilità di estendere la durata predefinita dell'eliminazione:il periodo di eliminazione programmata predefinito è di 30 giorni. L'impostazione di una durata di eliminazione personalizzata durante la creazione della chiave o l'applicazione di una durata più lunga tramite le policy dell'organizzazione può fornire più tempo per il recupero in caso di eliminazione accidentale. Se ritieni che tempi di eliminazione più lunghi comportino un rischio maggiore, tieni presente che una durata più lunga dell'eliminazione impedisce anche l'eliminazione accidentale della chiave. Puoi bilanciare i vantaggi e i rischi per vedere qual è la durata più adatta a te.
  • Richiedi la disattivazione delle chiavi prima dell'eliminazione: ti consigliamo di disattivare le versioni delle chiavi prima di pianificarne l'eliminazione. In questo modo, puoi verificare che la chiave non sia in uso attivo e si tratta di un passaggio importante per determinare se è sicuro eliminare una versione della chiave.
  • Implementa la rotazione delle chiavi: la rotazione regolare delle chiavi limita l'impatto di una potenziale compromissione. Nel caso in cui una chiave venga compromessa, la rotazione regolare limita il numero di messaggi effettivi vulnerabili alla compromissione.

Rotazione delle chiavi in Apigee

Lo scopo principale della rotazione delle chiavi è ridurre la quantità di dati criptati con una singola chiave, non sostituire completamente la vecchia versione della chiave. Per le chiavi di runtime e del control plane, la versione originale della chiave rimane associata alla risorsa dal momento della creazione.

Esempi illustrativi

  • Un'istanza Apigee utilizzerà sempre la versione della chiave CMEK primaria che era attiva al momento della sua creazione, anche dopo la rotazione della chiave.
  • Un bundle proxy continuerà a utilizzare la versione della chiave CMEK principale che era attiva al momento della sua creazione. Tuttavia, se questo bundle proxy viene modificato dopo la rotazione della chiave, tutti i nuovi dati al suo interno verranno criptati con la nuova versione della chiave primaria.

Limitazione attuale: nessuna ricrittografia automatica

È importante notare che Apigee al momento non supporta la ricriptazione automatica dei dati esistenti quando una chiave viene ruotata. Solo una quantità limitata di nuovi dati verrà criptata con la nuova versione della chiave primaria. La maggior parte dei tuoi dati, come quelli di analisi, del disco di runtime e le revisioni precedenti del proxy, verranno comunque criptati con la vecchia versione della chiave.

Disattivazione della chiave

La disattivazione o l'eliminazione delle chiavi interromperà la funzionalità Apigee. Se disattivi prima la chiave, puoi riattivarla se si tratta di un falso allarme.

Se sospetti la compromissione di una chiave (o di una versione della chiave):

  • Scenario ad alto rischio: se ritieni che i tuoi dati Apigee siano sensibili e che un malintenzionato abbia un'alta probabilità di sfruttarli, disattiva immediatamente la chiave e revoca l'accesso. Devi prima disabilitare la chiave prima di ricreare un'istanza apigee e un'organizzazione apigee.
  • Scenario a basso rischio: se ridurre al minimo i tempi di inattività è più importante del potenziale rischio, devi ricreare l'istanza apigee e l'organizzazione apigee prima di disattivare/eliminare CMEK. Di seguito scopri come prevenire in modo proattivo i tempi di inattività investendo nel backup/ripristino.
  • Contatta l'assistenza:ti consigliamo di contattare l'assistenza clienti Google Cloud quando ritieni che una chiave sia compromessa e devi disattivarla.

Controlla l'impatto della disattivazione/revoca/distruzione di una chiave di seguito. Dopo aver disattivato la chiave, dovrai ricreare l'organizzazione/le istanze apigee. Consulta le best practice.

  • Compromissione di CMEK runtime:crea nuove istanze con una nuova CMEK, quindi elimina le istanze originali e la vecchia CMEK runtime dopo la migrazione del traffico.
  • Compromissione di tutte le chiavi CMEK:crea una nuova organizzazione apigee con una nuova chiave CMEK, replica la configurazione, sposta il traffico, quindi arresta la vecchia organizzazione e disattiva/elimina la chiave CMEK originale.
  • Contatta l'assistenza clienti Google Cloud: se l'API per eliminare/ricreare istanze o apigee org richiede molto tempo, contatta l'assistenza clienti Google Cloud.

Impatto della disattivazione/revoca/eliminazione della chiave

La disattivazione, la revoca o l'eliminazione della chiave impedirà il corretto funzionamento di Apigee. Gli impatti sono i seguenti:

  • Disattivazione/revoca/eliminazione dell'intera chiave: le API rivolte ai clienti di Apigee smetteranno di funzionare immediatamente. I sistemi interni avranno esito negativo entro pochi minuti, con conseguenze su deployment del proxy, traffico di runtime, analisi e sicurezza delle API. L'istanza non potrà più essere avviata tra qualche settimana a causa di problemi di rimontaggio del disco.
  • Disattivazione/revoca/eliminazione di una versione della chiave (inclusa la versione della chiave primaria o la versione precedente della chiave): le API rivolte ai clienti di Apigee che utilizzano quella versione della chiave smetteranno di funzionare immediatamente. Alcuni sistemi interni e il traffico di runtime saranno interessati. L'istanza potrebbe non essere avviabile se la versione della chiave è stata utilizzata per la crittografia del disco.

Riattivazione di una chiave

Se la compromissione è un falso allarme o la disattivazione della chiave non è intenzionale, puoi riattivarla se è in fase di disattivazione. La riattivazione di una chiave ripristina la funzionalità delle API rivolte ai clienti. I sistemi interni dovrebbero recuperare entro pochi minuti. Tuttavia, potrebbe verificarsi una perdita di dati per la sicurezza delle API e l'analisi durante il periodo di mancata disponibilità della chiave.

  • Se il periodo di disattivazione della chiave è breve:il sistema dovrebbe essere ripristinato, ad eccezione di una perdita di dati relativa alla sicurezza e all'analisi delle API.
  • Se il periodo di disattivazione della chiave è lungo:il sistema verrà ripristinato per servire il traffico, ma ciò può comportare incoerenze dei dati in cui una regione restituisce un valore e la regione precedentemente inattiva ne restituisce un altro. Contatta l'assistenza clienti Google Cloud per risolvere il problema del cluster Apigee.

Eliminazione di una chiave

Prima di eliminare una chiave, tieni presente quanto segue:

Proteggere l'organizzazione Apigee con i backup CI/CD

In caso di compromissione delle chiavi di crittografia gestite dal cliente (CMEK), è fondamentale intervenire immediatamente per disattivare, revocare o eliminare la chiave compromessa. Tuttavia, questa misura di sicurezza necessaria può rendere non funzionale il tuo sistema Apigee, causando potenziali tempi di inattività e interruzioni del servizio.

Per garantire tempi di inattività minimi o nulli per i tuoi servizi Apigee, è fondamentale implementare un approccio proattivo: backup continui della configurazione della tua organizzazione (backup di integrazione continua/deployment continuo (CI/CD)). Consulta gli strumenti disponibili e le best practice per il ripristino di un'organizzazione Apigee.

La potenza di CI/CD e IaC

Investire in strumenti come Terraform, una soluzione Infrastructure as Code (IaC), consente di creare una nuova organizzazione Apigee senza problemi dalla configurazione di cui è stato eseguito il backup. Questa procedura semplificata ti consente di ricreare la tua organizzazione Apigee in modo rapido ed efficiente, riducendo al minimo i tempi di inattività e garantendo la continuità aziendale.

Strumenti disponibili per l'utilizzo

Puoi combinare tutti i seguenti strumenti per eseguire periodicamente il backup della tua organizzazione apigee e testare la procedura di recupero.

Best practice

  • Backup regolari: pianifica backup regolari per assicurarti di avere la configurazione più aggiornata disponibile. Consulta Esportazione/ricreazione delle organizzazioni.
  • Archiviazione sicura: archivia i backup in una posizione sicura, ad esempio un repository criptato.
  • Testa i ripristini: testa periodicamente la procedura di ripristino per assicurarti di poter recuperare in modo efficace la tua organizzazione Apigee. Esegui periodicamente test della procedura di ripristino per assicurarti di poter trasferire rapidamente il traffico alle organizzazioni Apigee appena create.

Esportazione/ricreazione delle organizzazioni

Lo strumento apigeecli è uno strumento a riga di comando che consente di gestire le risorse Apigee. Consente di eseguire le stesse azioni dell'API Apigee in un'interfaccia a riga di comando facile da usare, analoga ai comandi gcloud.
Se vuoi ricreare organizzazioni Apigee o eseguire la migrazione a un'altra organizzazione Apigee, puoi utilizzare apigeecli organizations export e apigeecli organizations import. Può essere utilizzato anche come base per i backup continui. Può esportare e importare risorse come:

  • Documenti del portale API
  • Categorie del portale API
  • Proxy API
  • Configurazione della sicurezza delle API e profili di sicurezza
  • Flussi condivisi
  • Prodotti basati su API
  • Sviluppatori
  • App per sviluppatori, incluse le credenziali
  • AppGroups e app, incluse le credenziali
  • Dettagli ambiente
  • Gruppi di ambienti
  • Configurazione di Data Collectors
  • Keystore e certificati alias a livello di ambiente
  • Server di destinazione a livello di ambiente
  • Riferimenti a livello di ambiente
  • Mappe chiave-valore (KVM) e voci a livello di organizzazione, ambiente e proxy
  • Keystore e certificati alias, ad eccezione delle chiavi private

Lo strumento può gestire tutte le altre risorse Apigee. L'elenco completo dei comandi può essere visualizzato utilizzando apigeecli tree.

Questo strumento presenta alcune limitazioni:

  • I keystore richiedono il salvataggio della chiave privata al momento della creazione e la sua inclusione nei file di backup locali
  • I token OAuth non potranno essere sottoposti a backup e ripristino, il che implica che le istanze Apigee create di recente richiederanno un nuovo accesso da parte dei tuoi clienti.
  • I controlli dell'accesso, come i criteri dell'organizzazione e le regole IAM, non vengono migrati. Se vuoi eseguire la migrazione di queste regole, devi utilizzare l'API Google Cloud .
  • Le esportazioni dei report di Analytics non sono supportate e le metriche di analisi non vengono copiate nella nuova organizzazione apigee.
  • Questo comando import non crea automaticamente istanze, gruppi di ambienti, allegati di ambienti, allegati di endpoint o proxy di deployment. Puoi gestire queste risorse, ma non direttamente tramite il comando import.
  • Questo comando import non crea automaticamente siti del portale. La creazione dei siti del portale deve essere eseguita manualmente tramite la UI.
  • Ti consigliamo di investire nel ripristino di emergenza per l'eliminazione delle chiavi e di testare periodicamente la procedura di ripristino per assicurarti di poter trasferire rapidamente il traffico alle organizzazioni Apigee appena create.

Prerequisiti

Prima di iniziare, assicurati che siano soddisfatti i seguenti prerequisiti:

  • Apigee CLI installata: installa apigeecli seguendo i passaggi della guida all'installazione.
  • Autenticazione: devi disporre delle autorizzazioni e delle credenziali di autenticazione necessarie per interagire con le organizzazioni Apigee. Assicurati di aver configurato:
    • Google Cloud SDK (gcloud): installato e autenticato.
    • Token di accesso: ottieni un token di accesso utilizzando gcloud auth print-access-token.
  • Accesso alla rete: assicurati che la tua rete consenta l'accesso alle API Apigee.
  • Crea organizzazione: crea una nuova organizzazione apigee a cui vuoi eseguire la migrazione. Puoi creare diversi tipi di apigee organizzazioni; tuttavia, assicurati di utilizzare lo stesso tipo di organizzazione (a consumo o in abbonamento) e lo stesso tipo di routing di rete che hai utilizzato con l'organizzazione originale.

Esportazione di unƏorganizzazione Apigee

Di seguito è riportato un comando di esempio. Per informazioni dettagliate sui vari flag, consulta apigeecli organizations export.

# Sample command
mkdir apigee_backup
cd apigee_backup

# gcloud auth application-default login
export ORG_FROM=REPLACE
apigeecli organizations export -o $ORG_FROM --default-token

Importazione di un'organizzazione Apigee

Di seguito è riportato un comando di esempio. Per informazioni dettagliate sui diversi flag, consulta apigeecli organizations import.

# Sample command
# gcloud auth application-default login
export ORG_TO=REPLACE
apigeecli organizations import -o $ORG_TO -f . --default-token

Passaggi successivi all'importazione

Crea l'istanza e configura le reti

Per creare un'istanza e configurare le reti:

  1. Segui i passaggi descritti in Crea una nuova istanza per creare una nuova istanza.
  2. Configura il traffico in uscita: il traffico in uscita si riferisce al traffico API dai client esterni o interni ad Apigee tramite un bilanciatore del carico. Devi assicurarti di configurare correttamente PSC o VPC in modo che la tua istanza sia raggiungibile. Dovrai configurare i nomi host del gruppo di ambienti nella nuova organizzazione.
  3. Configura il traffico in uscita: il traffico in uscita si riferisce al traffico API da Apigee ai servizi di destinazione del proxy API. Pertanto, devi prenotare e attivare nuovi indirizzi IP per il NAT e riconfigurare firewall/liste consentite sugli endpoint di destinazione.

Per saperne di più, consulta Opzioni di networking di Apigee.

Backup/ripristino di altre configurazioni

Utilizza uno dei seguenti metodi per eseguire il backup/ripristino di altre configurazioni:

Esegui il deployment dei proxy

Utilizza uno dei seguenti metodi per eseguire il deployment dei proxy:

Cambiare il traffico

Per spostare il traffico:

  1. Prepara test di integrazione automatizzati per la nuova istanza.
  2. Configura un bilanciatore del carico per spostare gradualmente il traffico verso la nuova istanza monitorando le prestazioni.