Per impostazione predefinita, i seguenti dati vengono archiviati criptati nel cloud di runtime:
- Memorizzare i dati nella cache
- Dati della chiave del contratto
- Dati del sistema di gestione delle chiavi (KMS)
- Dati mappa chiave-valore (KVM)
La crittografia dei dati non richiede alcuna configurazione speciale da parte tua. Tuttavia, se per qualche motivo vuoi utilizzare le tue chiavi di crittografia (sostituendo quelle predefinite), puoi farlo, come spiegato in questo argomento.
Ambito della chiave di crittografia
Le chiavi di crittografia di Apigee hybrid hanno un ambito. Ad esempio, le chiavi KMS hanno organizzazione l'ambito di attività. Ciò significa che la chiave viene utilizzata per criptare i dati KMS per l'intera organizzazione. La tabella seguente elenca l'ambito per ciascun tipo di chiave:
Chiave di crittografia | Ambito |
---|---|
Contratto | Solo organizzazione |
KMS | Solo organizzazione |
KVM |
Organizzazione o ambiente
Se un criterio KVM
specifica |
Cache | Solo ambiente |
Informazioni sulle chiavi di crittografia predefinite
Per impostazione predefinita, Apigee hybrid fornisce un set di chiavi con codifica Base64 che vengono utilizzate per criptare i dati di contratti, KVM, KMS e cache. Il programma di installazione ibrido di Apigee archivia le chiavi un piano di runtime Kubernetes Secret e li utilizza per criptare i tuoi dati con la crittografia standard AES-128. Le chiavi sono sotto il tuo controllo; il piano di gestione ibrida non ne è mai a conoscenza.
Le chiavi predefinite vengono applicate a tutti i nuovi componenti ibride Apigee quando li crei.
Modifica delle chiavi di crittografia predefinite
Sebbene non sia obbligatorio, puoi modificare una delle chiavi di crittografia predefinite, se vuoi. Per sostituire una o più chiavi predefinite:
- Copia le seguenti stanze nel file delle sostituzioni.
Questa configurazione consente di modificare le chiavi di crittografia KMS e KVM
a livello di organizzazione e le chiavi di crittografia della cache e KVM per il livello di ambiente:
defaults: org: kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key contractEncryptionKey: base64-encoded-key env: kvmEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- Genera una nuova chiave per ogni chiave che vuoi sostituire. Ogni chiave deve essere una stringa con codifica Base64 di esattamente 16, 24 o 32 byte. Consulta anche Come creare un modello di attribuzione chiave.
- Sostituisci le chiavi predefinite con altre nuove. In questo esempio, tutte le chiavi predefinite sono
sostituiti con chiavi:
defaults: org: kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c=" kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU=" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
Sostituire le chiavi predefinite
Puoi eseguire l'override delle chiavi per l'organizzazione o per ambienti specifici denominati nel file degli override. Quando crei i componenti, le chiavi specificate per l'organizzazione o le singole env sostituiranno i valori predefiniti.
- Copia le seguenti stanze nel file delle sostituzioni.
Questa configurazione consente di modificare le chiavi di crittografia KMS e KVM
a livello di organizzazione e le chiavi di crittografia della cache e KVM per il livello di ambiente:
org:YOUR_ORG_NAME kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key contractEncryptionKey: base64-encoded-key envs - name: ENV_NAME kvmEncryptionKey: base64-encoded-key kmsEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key - name: 2ND_ENV_NAME kvmEncryptionKey: base64-encoded-key kmsEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- Genera una nuova chiave per ogni chiave che vuoi sostituire. Ogni chiave deve essere una stringa con codifica Base64 di esattamente 16, 24 o 32 byte. Consulta anche Come creare una chiave codificata.
- Specifica le chiavi da eseguire l'override. In questo esempio, tutte le chiavi predefinite vengono sostituite con le chiavi:
org:hybrid-org kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ==" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" envs: - name: prod kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ==" kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" cacheEncryptionKey: "QjEyAvC1Njc4OTAxMjM0NQ==" envs: - name: test kvmEncryptionKey: "A1b2C3d4E5f6G7h8I9j10K==" kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" cacheEncryptionKey: "B1c2D3e4F5f6H7i8J9k10L=="
Applica le modifiche principali
Applica il file degli override al cluster come con i seguenti comandi Helm:- Se cambi la chiave del contratto o la chiave KVM dell'organizzazione, aggiorna quest'ultima:
helm upgrade ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
- Se modifichi la chiave cache o la chiave KVM per un ambiente, aggiorna l'ambiente:
helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f OVERRIDES_FILE.yaml
- Se modifichi la chiave KMS, aggiorna sia l'organizzazione che l'ambiente:
helm upgrade ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --set env=ENV_NAME \ --atomic \ -f OVERRIDES_FILE.yaml
Una nota sulla compatibilità con le versioni precedenti
Se rimuovi le chiavi di crittografia nel file degli override, il primo installando Apigee hybrid, a disattivare in modo efficace la crittografia e i valori non sarebbero criptati. Se in un secondo momento attivi la crittografia fornendo le chiavi, i dati esistenti rimarranno non criptati, ma tutti i dati futuri aggiunti verranno criptati. Il sistema continuerà a funzionare normalmente con i dati non criptati e i nuovi e i dati di Google Cloud.
Inoltre, tieni presente che non puoi modificare le chiavi di crittografia in un secondo momento dopo la crittografia dei dati del runtime.
Come creare una chiave codificata
Per la crittografia della cache, KVM, KMS e della cache è necessaria una chiave con codifica Base-64 formattata correttamente. La chiave utilizzata per una di queste finalità deve essere codificata in Base-64 da una stringa di 16, 24 o 32 byte, come spiegato di seguito:
Il seguente comando di esempio genera una stringa codificata in Base64 di 32 caratteri, generata in modo casuale, adatta:
head -c 32 /dev/random | openssl base64