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 di chiavi CMEK o versioni di chiavi, ti consigliamo di implementare quanto segue:
-
Rinforza i controlli di accesso: limita le autorizzazioni di distruzione/aggiornamento delle chiavi o del ruolo
roles/cloudkms.admin
solo agli amministratori attendibili o ai membri di alto livello del team. - Esegui regolarmente controlli delle autorizzazioni:assicurati che le autorizzazioni non vengano ampliate inavvertitamente nel tempo.
- Eliminazione automatica delle chiavi: non configurare automazioni per eliminare/disattivare automaticamente le chiavi.
Configurare 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 personalizzata per l'eliminazione durante la creazione della chiave o la applicazione di una durata più lunga tramite i criteri dell'organizzazione può offrire più tempo per il recupero in caso di eliminazione accidentale. Se ritieni che tempi di distruzione più lunghi comportino un rischio maggiore, tieni presente che una durata di distruzione più lunga ti impedisce anche di eliminare accidentalmente la chiave. Puoi bilanciare i vantaggi e i rischi per capire quale durata è la migliore per te.
- Richiedi la disattivazione delle chiavi prima dell'eliminazione: 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 ed è un passaggio importante per determinare se è sicuro distruggere una versione della chiave.
- Implementa rotazione della chiave: la rotazione regolare delle chiavi limita l'impatto di un potenziale compromesso. 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 della chiave è ridurre la quantità di dati criptati con una singola chiave, non sostituire completamente la versione precedente della chiave. Sia per le chiavi di runtime sia per le chiavi del piano di controllo, la versione della chiave originale rimane legata alla risorsa dal momento della sua creazione.
Esempi illustrativi
- Un'istanza Apigee utilizzerà sempre la versione della chiave CMEK principale attiva al momento della sua creazione, anche dopo rotazione della chiave.
- Un bundle proxy continuerà a utilizzare la versione della chiave CMEK principale attiva al momento della sua creazione. Tuttavia, se questo bundle proxy viene modificato dopo rotazione della chiave, tutti i nuovi dati al suo interno verranno criptati con la nuova versione della chiave primaria.
Limitazione attuale: nessuna nuova crittografia automatica
È importante notare che al momento Apigee non supporta la ricrittografia automatica dei dati esistenti quando viene ruotata una chiave. Solo una quantità limitata di nuovi dati verrà criptata con la nuova versione della chiave primaria. La maggior parte dei dati, come dati di analisi, dati di runtime del disco e revisioni proxy precedenti, continuerà a essere criptata con la vecchia versione della chiave.
Disattivazione della chiave
La disattivazione o l'eliminazione delle chiavi interromperà la funzionalità di Apigee. Se disattivi prima la chiave, puoi riattivarla se si tratta di un falso allarme.
Se sospetti una 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 disattivare la chiave prima di ricreare un'istanza
apigee
e un'organizzazioneapigee
. -
Scenario a basso rischio: se la minimizzazione del tempo di riposo è più importante del potenziale rischio, devi prima ricreare l'istanza
apigee
e l'organizzazioneapigee
prima di disattivare/eliminare il CMEK. Continua a leggere per scoprire come prevenire in modo proattivo i tempi di riposo investendo in backup/ripristino. - Contatta l'assistenza:ti consigliamo di contattare l'assistenza clienti Google Cloud se 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 le organizzazioni/le istanze apigee
. Consulta le best practice.
- Compromesso CMEK di runtime: crea nuove istanze con un nuovo CMEK, quindi elimina le istanze originali e il vecchio CMEK di runtime dopo la migrazione del traffico.
-
Compromesso di tutte le chiavi CMEK: crea una nuova organizzazione
apigee
con una nuova chiave CMEK, replica la configurazione, sposta il traffico, poi arresta la vecchia organizzazione e disattiva/elimina la chiave CMEK originale. -
Contatta l'assistenza clienti Google Cloud: se l'API per l'eliminazione/la ricostruzione di istanze o dell'
apigee
org richiede molto tempo, contatta l'assistenza clienti Google Cloud.
Conseguenze della disattivazione/revoca/distruzione della chiave
Se disattivi, revochi o distruggi la chiave, Apigee non funzionerà correttamente. Gli impatti sono i seguenti:
- Disattivazione/revoca/distruzione dell'intera chiave: le API rivolte ai clienti di Apigee smetteranno di funzionare immediatamente. I sistemi interni subiranno un arresto anomalo entro pochi minuti, con ripercussioni sul deployment dei proxy, sul traffico di runtime, sull'analisi e sulla sicurezza delle API. L'istanza non potrà più essere avviata tra alcune settimane a causa di problemi di rimontaggio del disco.
- Disattivazione/revoca/distruzione di una versione della chiave (inclusa la versione della chiave primaria o la versione della chiave precedente): le API Apigee rivolte ai clienti che utilizzano la versione della chiave in questione non funzioneranno più 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 dei dischi.
Riattivazione di una chiave
Se una compromissione è un falso allarme o se la disattivazione della chiave non è intenzionale, puoi riattivarla. La riattivazione di una chiave consente di ripristinare la funzionalità delle API rivolte ai clienti. I sistemi interni dovrebbero recuperare entro pochi minuti. Tuttavia, durante il periodo di mancata disponibilità della chiave potrebbe verificarsi una perdita di dati per la sicurezza e l'analisi delle API.
- Se il periodo di disattivazione della chiave è breve: il sistema dovrebbe recuperare tranne per alcune perdite di dati relative alla sicurezza e all'analisi delle API.
- Se il periodo di disattivazione della chiave è lungo: il sistema riprende a gestire il traffico, ma possono verificarsi incoerenze nei 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, valuta la possibilità di procedere nel seguente modo:
- A scopo di pulizia: non eliminare le vecchie chiavi finché Apigee non ha rilasciato il monitoraggio delle chiavi per comprendere l' utilizzo delle chiavi prima di eliminarle.
- Se è necessaria l'eliminazione: disabilita prima la chiave, quindi pianifica la sua eliminazione. Puoi utilizzare un criterio dell'organizzazione per applicare disattiva prima la chiave e durata minima per l'eliminazione.
Protezione dell'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 distruggere la chiave compromessa. Tuttavia, questa misura di sicurezza necessaria può rendere non funzionante il sistema Apigee, causando potenziali tempi di riposo 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/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 facilmente una nuova organizzazione Apigee 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 il tempo 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 apigee
organizzazione e testare la procedura di recupero.
- Se vuoi solo ricreare le istanze Apigee, consulta Creare nuovamente un'istanza Apigee senza tempi di inattività.
-
Se vuoi utilizzare Terraform, puoi prendere in prestito idee dall'open source
apigee/terraform modules
. -
Se vuoi ricreare le organizzazioni Apigee, puoi utilizzare
apigeecli
,apigeecli organizations export
eapigeecli organizations import
come base per il backup. Consulta Esportare/ricreare le organizzazioni. - Se vuoi eseguire il backup e il ripristino di più risorse oltre a quelle elencate sopra, devi interagire direttamente con l'API o utilizzare un altro comando apigeecli.
Best practice
- Backup regolari: pianifica i backup regolari per assicurarti di avere la configurazione più aggiornata disponibile. Vedi Esportare/ricreare le organizzazioni.
- Spazio di archiviazione sicuro: archivia i backup in un luogo sicuro, ad esempio un repository criptato.
- Testa i ripristini: testa periodicamente il processo di ripristino per assicurarti di poter recuperare efficacemente la tua organizzazione Apigee. Testa periodicamente il processo 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. Ti 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:
- Documentazione del portale API
- Categorie del portale API
- Proxy API
- Configurazione della sicurezza dell'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 dei terminali di raccolta dati
- 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 magazzini delle chiavi 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 appena create richiederanno ai clienti di eseguire nuovamente l'accesso.
- I controlli di accesso come i criteri dell'organizzazione e le regole IAM non vengono sottoposti a migrazione. 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 dell'ambiente, allegati dell'endpoint o esegue il deployment dei proxy per tuo conto. Puoi gestire queste risorse, ma non direttamente tramite il comandoimport
. -
Questo comando
import
non crea automaticamente i siti del portale. La creazione dei siti del portale deve essere eseguita manualmente tramite l'interfaccia utente. - 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 installato: installa
apigeecli
seguendo i passaggi descritti nella guida all'installazione. -
Autenticazione: devi disporre delle autorizzazioni e delle credenziali di autenticazione necessarie per interagire con le organizzazioni Apigee. Assicurati di avere configurato:
-
Google Cloud SDK (
gcloud
): installato e autenticato. -
Token di accesso: ottieni un token di accesso utilizzando
gcloud auth print-access-token
.
-
Google Cloud SDK (
- Accesso alla rete: assicurati che la rete consenta l'accesso alle API Apigee.
-
Crea organizzazione: crea una nuova organizzazione
apigee
di destinazione della migrazione. Puoi creare diversi tipi di organizzazioniapigee
, ma assicurati di utilizzare lo stesso tipo di organizzazione (a pagamento o in abbonamento) e lo stesso tipo di routing di rete utilizzato con l'organizzazione originale.
Esportazione di un'organizzazione Apigee
Di seguito è riportato un comando di esempio. Consulta apigeecli organizations export per informazioni dettagliate sui diversi flag.
# 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. Consulta apigeecli organizations import per informazioni dettagliate sui diversi flag
# Sample command # gcloud auth application-default login export ORG_TO=REPLACE apigeecli organizations import -o $ORG_TO -f . --default-token
Passaggi successivi all'importazione
Creare istanze e configurare le reti
Per creare un'istanza e configurare le reti:
- Segui i passaggi descritti in Creare una nuova istanza per creare una nuova istanza.
- Configura il traffico in entrata: il traffico in entrata si riferisce al traffico API da client esterni o interni ad Apigee tramite un bilanciatore del carico. Devi assicurarti di configurare correttamente il PSC o il VPC in modo che l'istanza sia raggiungibile. Dovrai configurare i nomi host dei gruppi di ambienti nella nuova organizzazione.
- Configurazione del 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 i firewall/le liste consentite sugli endpoint di destinazione.
Per ulteriori informazioni, consulta le opzioni di networking di Apigee.
Eseguire il backup o il ripristino di altre configurazioni
Utilizza una delle seguenti opzioni per eseguire il backup/ripristino di altre configurazioni:
-
Per le regole IAM: puoi utilizzare
gcloud projects get-iam-policy
egcloud projects set-iam-policy
per copiare il tuo criterio IAM, modificare il nome del progetto e dell'organizzazioneapigee
e applicarlo a nuovi progetti e organizzazioniapigee
di Google Cloud. - Per altre configurazioni di Apigee: puoi utilizzare l'API di gestione di Apigee.
Esegui il deployment dei proxy
Per eseguire il deployment dei proxy, utilizza una delle seguenti opzioni:
- Utilizza
apigeecli
- Utilizza lo script della community di Apigee come riferimento
- Utilizza l' API di gestione Apigee
Spostare il traffico
Per spostare il traffico:
- Prepara i test di integrazione automatici per la nuova istanza.
- Configura un bilanciatore del carico per spostare gradualmente il traffico verso la nuova istanza monitorando al contempo il rendimento.