Per impostazione predefinita, i seguenti dati vengono archiviati criptati nel piano di runtime ibrido:
- Dati della cache
- Dati chiave del contratto
- Dati del sistema di gestione delle chiavi (KMS)
- Dati della mappa di coppie 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 Apigee hybrid hanno un ambito. Ad esempio, le chiavi KMS hanno ambito organizzazione. Ciò significa che la chiave viene utilizzata per criptare i dati KMS per l'intera organizzazione. La tabella seguente elenca l'ambito per ogni tipo di chiave:
| Chiave di crittografia | Ambito |
|---|---|
| Contratto | Solo organizzazione |
| KMS | Solo organizzazione |
| KVM |
Organizzazione o ambiente
Se una norma KVM
specifica l'ambito |
| Cache | Solo ambiente |
Informazioni sulle chiavi di crittografia predefinite
Per impostazione predefinita, Apigee Hybrid fornisce un insieme di chiavi con codifica Base64 utilizzate per criptare i dati di contratti, KVM, KMS e cache. Il programma di installazione di Apigee hybrid archivia le chiavi nel piano di runtime come Kubernetes Secrets e le utilizza per criptare i dati con la crittografia standard AES-128. Le chiavi sono sotto il tuo controllo; il piano di gestione ibrido non ne è mai a conoscenza.
Le chiavi predefinite vengono applicate a tutti i nuovi componenti Apigee Hybrid quando li crei.
Modifica delle chiavi di crittografia predefinite
Sebbene non sia obbligatorio, puoi modificare una qualsiasi delle chiavi di crittografia predefinite, se vuoi. Per sostituire una o più chiavi predefinite:
- Copia le seguenti strofe nel file di override.
Questa configurazione ti consente di modificare le chiavi di crittografia KMS e KVM
per il livello dell'organizzazione e le chiavi di crittografia KVM e della cache per il livello dell'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 lunga esattamente 16, 24 o 32 byte. Vedi anche Come creare una chiave codificata.
- Sostituisci i tasti predefiniti con quelli nuovi. In questo esempio, tutte le chiavi predefinite vengono
sostituite con le chiavi:
defaults: org: kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c=" kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU=" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
Sostituire i tasti predefiniti
Puoi ignorare le chiavi per l'organizzazione o per ambienti specifici indicati nel file di override. Quando crei i componenti, le chiavi specificate per l'organizzazione o i singoli ambienti sostituiranno i valori predefiniti.
- Copia le seguenti strofe nel file di override.
Questa configurazione ti consente di modificare le chiavi di crittografia KMS e KVM
per il livello dell'organizzazione e le chiavi di crittografia KVM e della cache per il livello dell'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 lunga esattamente 16, 24 o 32 byte. Vedi anche Come creare una chiave codificata.
- Specifica le chiavi di cui vuoi 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 di override al tuo cluster con i seguenti comandi Helm:- Se modifichi la chiave del contratto o la chiave KVM per l'organizzazione, aggiorna l'organizzazione:
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
Nota sulla compatibilità con le versioni precedenti
Se rimuovi le chiavi di crittografia nel file di override la prima volta che installi Apigee hybrid, disattiverai la crittografia e i valori verranno archiviati senza crittografia. Se in un secondo momento attivi la crittografia fornendo le chiavi, i dati esistenti rimangono non criptati, ma tutti i dati futuri che vengono aggiunti verranno criptati. Il sistema continuerà a funzionare normalmente con i dati non criptati e i nuovi dati criptati.
Inoltre, tieni presente che non puoi modificare le chiavi di crittografia una volta crittografati i dati di runtime.
Come creare una chiave codificata
Per la crittografia KVM, KMS e della cache è necessaria una chiave con codifica Base64 formattata correttamente. La chiave utilizzata per uno di questi scopi deve essere codificata in Base64 da una stringa di 16, 24 o 32 byte, come spiegato di seguito:
Il seguente comando di esempio genera una stringa di 32 caratteri codificata in Base64, adatta e generata in modo casuale:
head -c 32 /dev/random | openssl base64