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 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'organizzazione apigee.
  • Scenario a basso rischio: se la minimizzazione del tempo di riposo è più importante del potenziale rischio, devi prima ricreare l'istanza apigee e l'organizzazione apigee 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:

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.

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 comando import.
  • 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.
  • 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 organizzazioni apigee, 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:

  1. Segui i passaggi descritti in Creare una nuova istanza per creare una nuova istanza.
  2. 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.
  3. 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:

Esegui il deployment dei proxy

Per eseguire il deployment dei proxy, utilizza una delle seguenti opzioni:

Spostare il traffico

Per spostare il traffico:

  1. Prepara i test di integrazione automatici per la nuova istanza.
  2. Configura un bilanciatore del carico per spostare gradualmente il traffico verso la nuova istanza monitorando al contempo il rendimento.