Introduzione a CMEK

Questa pagina descrive l'utilizzo di CMEK con Apigee. Per le best practice, consulta Best practice per CMEK di Apigee.

Panoramica

Per impostazione predefinita, Google Cloud cripta automaticamente i dati at-rest utilizzando chiavi di crittografia di proprietà di Google e gestite da Google. Se hai requisiti normativi o di conformità specifici relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK).

Puoi scoprire di più sull'utilizzo di CMEK per Apigee in Utilizzo di CMEK con Apigee. Per saperne di più su CMEK in generale, incluso quando e perché abilitarla, consulta la documentazione di Cloud Key Management Service.

L'utilizzo di chiavi di crittografia gestite dal cliente (CMEK) non garantisce necessariamente una maggiore sicurezza rispetto ai meccanismi di crittografia predefiniti di Google. Tuttavia, ti consente di controllare più aspetti del ciclo di vita e della gestione delle chiavi per soddisfare i requisiti di sicurezza e conformità.

Se hai bisogno di un maggiore controllo sulle operazioni con le chiavi rispetto a quanto consentito dalle basate su Google Cloud di proprietà di Google e gestite da Google, puoi utilizzare le chiavi di crittografia gestite dal cliente. Queste chiavi vengono create e gestite utilizzando Cloud Key Management Service (Cloud KMS) e le memorizzi come chiavi software, in un cluster HSM o esternamente.

Le funzionalità di gestione delle chiavi sono fornite dal servizio Cloud KMS.

Casi d'uso di CMEK

Questa sezione descrive i casi d'uso tipici per l'utilizzo di CMEK con Apigee.

Rotazione chiave

Ruota la chiave automaticamente o manualmente. Tieni presente che quando la chiave viene ruotata, i dati precedentemente archiviati in Apigee non vengono criptati nuovamente in modo automatico con la nuova versione della chiave, ma continueranno a essere accessibili finché la versione precedente della chiave utilizzata per criptare i dati non viene disattivata o eliminata.

Lo scopo principale della rotazione della chiave è limitare l'esposizione dei dati a una singola chiave, non sostituire completamente la vecchia versione della chiave. Al momento Apigee non supporta la ri-crittografia in caso di rotazione della chiave. Per Apigee in particolare, quando ruoti una chiave, solo un numero limitato di nuovi dati (ad esempio una nuova revisione del proxy) verrà criptato con la nuova versione della chiave primaria. La maggior parte dei dati, come i dati analitici, il disco di runtime e la vecchia revisione del proxy, utilizza ancora la vecchia versione della chiave. Se vuoi eliminare completamente la versione precedente della chiave, devi ricreare l'organizzazione apigee. Per le chiavi di crittografia runtime, se vuoi eliminare completamente la versione precedente della chiave, devi ricreare le istanze runtime. Per maggiori dettagli, consulta Best practice per Apigee CMEK.

Vedi anche: Ruotare una chiave

Eliminazione e disattivazione della chiave

Quando una versione della chiave viene disattivata, i dati Apigee criptati con quella versione della chiave non saranno accessibili. Per ripristinare l'accesso ai dati, la chiave può essere riattivata.

Quando elimini o disattivi la chiave CMEK, anche solo per le versioni precedenti, la tua organizzazione apigee inizierà a funzionare in modo anomalo a seconda della versione della chiave utilizzata per la crittografia. Alcune API smetteranno di funzionare immediatamente perché richiedono una chiave CMEK per decriptare i dati, mentre alcune funzioni inizieranno a funzionare in modo anomalo solo quando viene attivata un'azione di sistema, ad esempio il rimontaggio dei dischi permanenti di Compute Engine. Per saperne di più, consulta la sezione Disattivazione delle chiavi.

Quando una versione della chiave viene eliminata, tutti i dati Apigee criptati con quella versione della chiave diventano illeggibili e irrecuperabili. Questa è un'operazione definitiva e irreversibile.

Vedi anche:

Ripristino delle chiavi

Se elimini o disattivi per errore una chiave o una versione precedente della chiave, devi tentare di ripristinarle il prima possibile. Tieni presente che CMEK è una funzionalità pensata per la perdita di dati se la chiave non è disponibile. Dopo aver ripristinato la chiave, non è garantito il recupero dell'organizzazione apigee e potresti riscontrare una perdita di dati. Per saperne di più, vedi Riattivare una chiave. Contatta l'assistenza clienti Google Cloud e scopri qual è il passo successivo migliore.

Vedi anche: Distruzione e ripristino delle versioni delle chiavi

Revoca l'accesso alla chiave

Se revochi l'accesso dell'agente di servizio Apigee alla chiave utilizzando IAM, Apigee non potrà accedere a nessun dato del control plane criptato da qualsiasi versione della chiave. Le operazioni API Apigee che dipendono dalla decriptazione dei dati non andranno a buon fine. L'accesso ai dati può essere ripristinato concedendo nuovamente l'accesso alla chiave e le operazioni API Apigee che decriptano i dati verranno ripristinate.

Vedi anche: Gestisci l'accesso a progetti, cartelle e organizzazioni

EKM

Apigee non supporta attualmente Cloud External Key Manager (Cloud EKM). Se utilizzi Cloud EKM, è presente un difetto noto per cui gli errori di Cloud EKM non vengono propagati e visualizzati correttamente.

Monitoraggio delle chiavi

Apigee non supporta il monitoraggio delle chiavi. Se utilizzi la visualizzazione dell'utilizzo delle chiavi e ti accorgi che una determinata versione della chiave non viene utilizzata, tieni presente che non è accurata perché Apigee non è integrato con le funzionalità di monitoraggio delle chiavi.

Quote

L'utilizzo delle chiavi CMEK può generare un utilizzo rispetto ad alcune quote di Cloud KMS. Per le informazioni più recenti sulle quote di Cloud KMS, consulta Quote.

Revoca della chiave di crittografia

Se ritieni che i tuoi dati su Apigee in Google Cloud siano stati compromessi, puoi revocare le chiavi di crittografia. Revoca la CMEK di runtime per far sì che l'istanza di runtime non funzioni correttamente e non possa accedere ai dati del gateway. Revoca della CMEK del piano di controllo per impedire ad Apigee di eseguire analisi o di eseguire il deployment di nuovi proxy.

Utilizzo di CMEK con Apigee

Le chiavi di crittografia Apigee vengono utilizzate per i dati di runtime e del control plane e vengono create durante la procedura di provisioning.

I dati del control plane Apigee vengono criptati utilizzando una chiave di crittografia diversa rispetto ai dati di runtime e potrebbero essere archiviati in regioni diverse. Come indicato nella documentazione relativa alle CMEK, questa crittografia si applica solo ai dati at-rest, ovvero i dati archiviati su disco.

I dati del piano di controllo Apigee includono configurazioni proxy (bundle), alcuni dati di configurazione dell'ambiente e dati di analisi. I dati di runtime di Apigee includono dati delle applicazioni come KVM, cache e client secret, che vengono poi archiviati nel database di runtime.

Consulta Informazioni sulle chiavi di crittografia di Apigee per le descrizioni dei tipi di chiavi di crittografia.

Puoi aggiungere chiavi di crittografia solo al momento della creazione dell'organizzazione Apigee. Una volta assegnata una chiave CMEK, non puoi passare a una CMEK diversa dopo la creazione dell'organizzazione.

Regioni CMEK del control plane per la residenza dei dati

Nel piano di controllo Apigee regionalizzato, seleziona due chiavi di crittografia per il piano di controllo. Questo perché alcuni dei componenti alla base del control plane Apigee si trovano sempre in una singola regione all'interno della posizione del control plane. Per ulteriori informazioni, consulta Regioni di residenza dei dati.

Dettagli Chiavi obbligatorie

La regione del control plane è quella in cui viene eseguito il control plane. Il control plane in Apigee è un concetto astratto in cui più componenti sottostanti costituiscono insieme il control plane di Apigee. I dati del control plane sono l'archiviazione della configurazione del proxy e dell'analisi.

Altri dati del control plane (ad es. elaborazione di Analytics, portali) si trovano in una sotto-regione del control plane.

Tutti i componenti della sotto-regione si troveranno nella stessa regione.

Una chiave per i dati del control plane.

Una chiave per i dati della sotto-regione del control plane.

Vincoli dei criteri dell'organizzazione

Se hai vincoli di policy dell'organizzazione CMEK nel tuo progetto Google Cloud, Apigee applicherà la conformità a questi vincoli. Se utilizzi Apigee tramite l'interfaccia utente Google Cloud , la CLI o direttamente tramite le API Apigee, l'applicazione delle policy CMEK è garantita. Quando utilizzi l'interfaccia utente Apigee Google Cloud , i vincoli dei criteri dell'organizzazione CMEK vengono pre-convalidati in modo che l'interfaccia utente possa guidarti nella scelta di una configurazione valida e conforme.

È possibile creare vincoli delle policy dell'organizzazione CMEK per richiedere che:

Non tutte le funzionalità di Apigee sono attualmente conformi a CMEK. Per garantire che i progetti che richiedono CMEK non utilizzino inconsapevolmente funzionalità non protette da CMEK, queste funzionalità verranno disattivate per i progetti con vincoli CMEK finché non saranno conformi. Verranno disattivati solo i nuovi utilizzi delle funzionalità (creazione di nuove risorse o attivazione di un componente aggiuntivo). Le funzionalità e le risorse già in uso rimarranno disponibili e modificabili, ma non conformi a CMEK. Le seguenti funzionalità verranno disabilitate:

  • L'interfaccia utente classica di Apigee non sarà disponibile per le organizzazioni appena create che richiedono CMEK perché le organizzazioni CMEK sono organizzazioni regionali che non sono supportate nell'interfaccia utente classica. Le organizzazioni esistenti potranno comunque utilizzare l'interfaccia utente classica. Tieni presente che la pre-validazione di CMEK non verrà implementata nella UI classica e si baserà sull'errore API. Ciò significa che le organizzazioni esistenti che richiedono CMEK non avranno un'esperienza utente guidata per la configurazione di CMEK o per la disattivazione delle funzionalità non conformi a CMEK.
  • Rilevamento delle API shadow di Apigee non è soggetto alla policy dell'organizzazione CMEK e non è conforme a CMEK.

  • La creazione di organizzazioni di valutazione verrà bloccata sia dall'API CreateOrganization per le organizzazioni di valutazione sia dalla procedura guidata di provisioning di valutazione.
  • Gemini Code Assist non è disponibile.

  • La creazione di organizzazioni globali verrà bloccata dall'API CreateOrganization dell'organizzazione di valutazione e dalla procedura guidata di provisioning della valutazione.
  • La creazione di istanze ibride non è disponibile per l'applicazione.
  • Il pulsante Looker Studio per aprire Looker Studio con i dati di Apigee verrà disattivato quando è richiesta CMEK.
  • La creazione di portali verrà bloccata dall'API CreateSite. Poiché la UI dei portali è disponibile solo in Apigee Classic (non nella console Google Cloud ) e la pre-validazione non verrà implementata nella UI Apigee Classic, questo blocco si baserà sull'errore API (il pulsante Crea portale nella UI Apigee Classic non verrà disattivato).
  • L'applicazione retroattiva della conformità per le risorse esistenti non è disponibile. Dovrai eliminare e ricreare le risorse se vuoi che una risorsa esistente sia conforme.

Per ulteriori informazioni sull'utilizzo dei vincoli delle policy dell'organizzazione con Apigee, consulta la sezione Utilizzo dei vincoli delle policy dell'organizzazione in Apigee.

Come creare chiavi di crittografia

Per impostazione predefinita, Google gestisce la creazione delle chiavi di crittografia durante il processo di provisioning, ma puoi crearle autonomamente. Per ulteriori informazioni, vedi Informazioni sulle chiavi di crittografia Apigee.

Rischi e mitigazioni

Questa sezione descrive le potenziali minacce e le azioni che puoi intraprendere.

  • Rischi:
    • Compromissione della chiave:si verifica quando un malintenzionato ottiene l'accesso alla chiave di crittografia, potenzialmente tramite vulnerabilità in KMS o attacchi contro gli amministratori delle chiavi.
    • Negazione del servizio: un malintenzionato potrebbe interrompere l'accesso alle chiavi di crittografia o ai dati attaccando il sistema KMS o di archiviazione.
    • Perdita della chiave: l'eliminazione o la perdita accidentale della chiave potrebbe comportare la perdita o l'inaccessibilità dei dati.
  • Mitigazioni:
    • Implementa rigidi controllo dell'accesso e criteri di gestione delle chiavi.
    • Monitora i log e l'attività di KMS per rilevare comportamenti sospetti.

Risoluzione dei problemi

La seguente tabella descrive alcune condizioni di errore comuni che possono verificarsi con i dati di configstore criptati con CMEK, il messaggio di errore approssimativo restituito dall'API Apigee e i passaggi per la risoluzione dei problemi consigliati.

Messaggio di errore/sintomo Causa Procedura
Constraint constraints/gcp.restrictNonCmekServices violated for projects/my-project attempting to create or enable trial org. CMEK is not supported for trial orgs. To use trial orgs, adjust the gcp.restrictNonCmekServices constraint for this project. Hai tentato di eseguire il provisioning di un'organizzazione di prova in cui esiste un vincolo di policy dell'organizzazione per il progetto. CMEK non è supportato per le organizzazioni di prova/valutazione. Dovrai aggiornare il vincolo dei criteri dell'organizzazione constraints/gcp.restrictNonCmekServices per rimuovere Apigee dall'elenco dei servizi negati per poter eseguire il provisioning di un'organizzazione di prova.
Constraint constraints/gcp.restrictCmekCryptoKeyProjects violated for projects/my-project attempting to use projects/my-project/locations/my-location/keyRings/kr-1/cryptoKeys/ck-1 key. Use a key from a project that is allowed by the gcp.restrictCmekCryptoKeyProjects constraint. Hai tentato di eseguire il provisioning di un'organizzazione in cui esiste un vincolo di policy dell'organizzazione per il progetto e hai specificato una CryptoKey KMS che non è inclusa nella lista consentita. Hai impostato constraints/gcp.restrictCmekCryptoKeyProjects nelle policy dell'organizzazione che richiedono di fornire una chiave CMEK dai progetti consentiti elencati. Per poter creare un'organizzazione o delle istanze, devi fornire la chiave CMEK di un progetto consentito. In alternativa, puoi aggiornare il vincolo del criterio dell'organizzazione constraints/gcp.restrictCmekCryptoKeyProjects per consentire le chiavi del progetto Google Cloud specifico che preferisci.
Apigee does not have permission to access key "..." Un utente ha revocato l'accesso di Apigee alla chiave KMS fornita, ovvero rimuovendo il ruolo roles/cloudkms.cryptoKeyEncrypterDecrypter. Un utente deve controllare i ruoli configurati nella chiave KMS e assicurarsi che l'agente di servizio Apigee disponga delle autorizzazioni necessarie.
Unable to encrypt/decrypt data. Cloud KMS Error: "..." is not enabled, current state is: DESTROYED. Un utente ha disabilitato o eliminato la versione della chiave utilizzata per criptare/decriptare il dato richiesto. Se possibile, un utente deve riattivare la versione della chiave. Se la chiave o la versione della chiave è stata eliminata, i dati non sono recuperabili (per progettazione).
No new Analytics data for US/EU users Una delle possibili cause di questo problema può essere la revoca, la disattivazione o l'eliminazione di una chiave di una singola regione da parte di un utente. Un utente deve riattivare/ripristinare l'accesso alla chiave di una singola regione.
Control plane key "..." in region "..." is not valid for this control plane instance. Supported region(s) are "…". Un utente ha fornito una chiave del control plane a singola regione in una regione non valida o non supportata per la regione o la multiregione gestita dall'istanza del control plane. Un utente deve fornire una chiave in una delle regioni supportate o scegliere di utilizzare un'altra istanza del control plane.
Multi-region control plane key is not valid for this control plane instance. Specify only the "apiConsumerDataEncryptionKeyName" field. Un utente ha fornito una chiave del control plane multiregionale in un control plane che esiste solo in una singola regione (ovvero non è un control plane multiregionale). Un utente deve omettere il campo chiave multiregionale o scegliere di utilizzare un'istanza del control plane multiregionale.
Multi-region control plane key is not valid for this control plane instance. Specify a multi-region key with region "..." Un utente ha fornito una chiave del control plane multiregionale all'istanza del control plane multiregionale errata (ad es. una chiave "us" all'istanza del control plane "eu") Un utente deve utilizzare una chiave multiregionale nella multiregione corretta o scegliere di utilizzare un'altra istanza del control plane multiregionale.