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 quando sono 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ù sulle chiavi CMEK in generale, incluso quando e perché attivarle, 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 versione precedente della chiave.
Al momento Apigee non supporta la ri-crittografia al momento della 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 CMEK di Apigee.
Vedi anche: Ruotare una chiave
Eliminazione e disattivazione delle chiavi
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 disabiliti 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 male 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 non recuperabili. Questa è un'operazione definitiva e irreversibile.
Vedi anche:
- Abilitare e disabilitare le versioni della chiave
- Distruggere e ripristinare le versioni della chiave
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 al momento non supporta 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 la CMEK del control plane 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 il processo di provisioning.
I dati del control plane di 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 control plane 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 control plane Apigee regionalizzato, seleziona due chiavi di crittografia per il control plane. 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 saperne di più, 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 garantirà la conformità a questi vincoli. Se utilizzi Apigee tramite l'interfaccia utente, la CLI o direttamente tramite le API Apigee, l'applicazione delle policy CMEK è garantita. Google Cloud Quando utilizzi l'interfaccia utente Apigee, 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. Google Cloud
È possibile creare vincoli delle policy dell'organizzazione CMEK per richiedere che:
- Le chiavi di crittografia gestite dal cliente vengono sempre utilizzate
- Le chiavi di crittografia gestite dal cliente sono consentite solo da progetti specifici specificati in una lista consentita
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:
-
Apigee Shadow API Discovery 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 della 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.
- 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 saperne di più 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.
- Denial of service: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 della 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 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 ti interessa.
|
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 il service agent 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 della 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. |