Protezione dei tuoi dati
Il volume di dati che colleghi alla tua istanza Hyper Protect Virtual Server for VPC è protetto da una passphrase di crittografia LUKS (Unified Key Setup) di Linux derivata dai seed forniti durante la distribuzione. Puoi aggiungere un livello più elevato di protezione e controllo della crittografia ai tuoi dati inattivi utilizzando la tua chiave da Hyper Protect Crypto Services.
Come viene crittografato il tuo volume di dati
Senza la tua chiave, il volume di dati che colleghi alla tua istanza viene crittografato automaticamente con due elementi di inizializzazione forniti nelle sezioni workload
- volumes
e env
- volumes
del contratto. I valori di inizializzazione vengono convertiti internamente in sequenze UTF8 e quindi concatenati. L'hash (SHA256) della sequenza concatenata viene calcolato come un hexdigest, che viene
utilizzato come passphrase LUKS per codificare il volume di dati. Per ulteriori informazioni, vedi Informazioni sul contratto.
Proteggere i dati sensibili con la propria chiave
A cominciare da ibm-hyper-protect-container-runtime-1-0-s390x-11
, Hyper Protect Virtual Servers per VPC supporta l'integrazione con il servizio di gestione delle chiavi (KMS) Hyper Protect Crypto Services. Hyper Protect Crypto Services
genera un valore casuale come terzo seed e lo racchiude con CRK (customer root key). Per ulteriori informazioni su CRK, vedi Chiavi root. Il
seed impacchettato viene memorizzato nella partizione dei metadati del proprio volume di dati. La passphrase LUKS viene generata utilizzando tre seed - il seed nella partizione dei metadati (prima senza wrapping) e i due seed
dal contratto.
Conoscenza di background: dalla versione dell'immagine HPCR ibm-hyper-protect-container-runtime-1-0-s390x-9
, per i nuovi Hyper Protect Virtual Servers per le istanze VPC, i volumi di dati vengono suddivisi in due
parti. La prima partizione (100 Mib) è riservata solo ai metadati interni (non per l'accesso da parte di un carico di lavoro); la seconda partizione rimane come volume di dati per il carico di lavoro. Solo i nuovi volumi sono
partizionati.
Attualmente, solo Hyper Protect Crypto Services è supportato come servizio di gestione delle chiavi.
La seguente tabella riassume i semi. Il terzo seed è quello fornito dal tuo servizio di gestione delle chiavi.
Valore iniziale | Provider | Da | Obbligatorio o facoltativo |
---|---|---|---|
seed1 | Persona distributore | env - volumes sezione del contratto |
Obbligatorio |
seed2 | Persona carico di lavoro | workload - volumes sezione del contratto |
Obbligatorio |
seed3 | Hyper Protect Crypto Services | Hyper Protect Crypto Services genera il terzo seed e lo racchiude nella CRK solo se nel contratto vengono forniti i dettagli di kms . Questa operazione viene eseguita da Hyper Protect Virtual Servers che richiama un'API wrap.
Il seed incluso viene memorizzato nella partizione dei metadati del volume di dati. |
Facoltativo |
Il daemon della chiave viene avviato se il volume è protetto con protezione dall'istanza KMS. È responsabile di reagire alle modifiche di stato del CRK (che saranno introdotte più avanti in questa documentazione).
Informazioni sulle chiavi gestite dal cliente
Hyper Protect Virtual Servers per VPC utilizza la crittografia envelopeIl processo di crittografare i dati con una chiave di crittografia dei dati e poi crittografare la chiave con una chiave root che può essere completamente gestita. per implementare chiavi gestite dal cliente. La crittografia a busta descrive la crittografia (avvolgimento) di una chiave di crittografia con un'altra chiave di crittografia. Nel nostro caso, la chiave impacchettata è il terzo seed e la chiave utilizzata per impacchettare il seed è la CRK di Hyper Protect Crypto Services.
Sei proprietario del CRK in Hyper Protect Crypto Services. Hyper Protect Virtual Server per VPC non vede mai il CRK. L'archiviazione, la gestione e l'utilizzo per avvolgere e scartare il seme avvengono interamente all'interno del servizio di gestione delle chiavi.
Hyper Protect Crypto Services è supportato da hardware certificato FIPS 140-2 Livello 4, che è il più alto offerto da qualsiasi provider cloud del settore. Per ulteriori informazioni, vedi Introduzione a Hyper Protect Crypto Services.
Abilitazione delle chiavi gestite dal cliente per Hyper Protect Virtual Servers per VPC
La possibilità di abilitare la funzione dipende dalla cronologia dell'istanza Hyper Protect Virtual Server (layout della partizione e crittografia LUKS) e dalle informazioni del contratto. Consultare la seguente tabella per i possibili scenari
e risultati. Se non sai quali sono i dettagli di kms
nel contratto, consulta le istruzioni in Passi. La tabella mostra il comportamento di un server virtuale durante l'avvio, il
numero di volumi collegati alla partizione durante l'avvio e l'input specificato nel file del contratto.
Numero di partizioni nel volume di dati | Partizione metadati | Contract | Se la partizione / seconda partizione è codificata LUKS | Comportamento di Hyper Protect Virtual Server |
---|---|---|---|---|
0 | N/D | Ha dettagli kms |
Non LUKS codificato | L'istanza crea due partizioni nel volume di dati, richiama Hyper Protect Crypto Services per generare una terza inizializzazione e impacchettarla con la CRK. Il seed incluso viene memorizzato nella partizione dei metadati. Quindi l'istanza genera una passphrase LUKS con il seed (prima unwrapped) e i due seed dal contratto per crittografare la seconda partizione. |
0 | N/D | Ha dettagli kms |
LUKS codificato | L'istanza viene chiusa. Devi rimuovere i dettagli kms nel contratto. |
1 | N/D | Non supportato. L'istanza viene chiusa. | ||
2 | Nessun seed codificato | Ha dettagli kms (una voce) |
Non LUKS codificato | L'istanza richiama Hyper Protect Crypto Services per generare un terzo seed e avvolgerlo nel CRK. Il seed incluso viene memorizzato nella partizione dei metadati. Quindi l'istanza genera una passphrase LUKS con il seed (prima unwrapped) e i due seed dal contratto per crittografare la seconda partizione. |
2 | Nessun seed codificato | Ha dettagli kms (una voce) |
LUKS codificato | Flusso simile a quello precedente per codificare nuovamente la seconda partizione. La vecchia passphrase LUKS viene sostituita. Tieni presente che i due seed di env e workload devono essere gli stessi di prima; altrimenti la nuova crittografia non riesce e l'istanza viene arrestata. Fornire i valori di inizializzazione corretti e riprovare. |
2 | Nessun seed codificato | Ha dettagli kms (più voci) |
Non LUKS codificato | Flusso simile agli scenari precedenti per racchiudere il terzo seed e codificare la seconda partizione. Solo la configurazione nella prima voce viene utilizzata per racchiudere il terzo seed. |
2 | Ha un seed codificato | Ha dettagli kms (una voce) |
Non LUKS codificato | È possibile che tu abbia utilizzato il volume nel provisioning precedente ma la crittografia non è riuscita oppure hai fornito il volume con due partizioni e manualmente hai creato un valore casuale come terzo seed, lo hai incluso e lo hai memorizzato nella partizione dei metadati. In entrambi i casi, l'istanza verifica se il partizionamento è corretto. In caso contrario, l'istanza viene chiusa. Se il partizionamento è corretto, l'istanza richiama Hyper Protect Crypto Services per spacchettare il seed crittografato e genera una passphrase LUKS con il seed e i due seed dal contratto per crittografare la seconda partizione. |
2 | Ha un seed codificato | Ha dettagli kms (una voce) |
LUKS codificato | L'istanza richiama Hyper Protect Crypto Services per spacchettare il seed codificato e apre il livello LUKS sulla partizione dei dati. |
2 | Ha un seed codificato | Ha dettagli kms (più voci) |
L'istanza richiama Hyper Protect Crypto Services per spacchettare il seed crittografato con la prima voce kms . Se non riesce, utilizza la voce successiva. Quando ha esito positivo, utilizza la prima configurazione per riavvolgere
il seed. Se tutte le voci non funzionano, l'istanza viene chiusa. |
|
2 | Ha un seed codificato | Nessun dettaglio kms |
L'istanza viene chiusa. È necessario fornire i dettagli kms nel contratto. |
Controlla i log in Log Analysis se la tua istanza si arresta.
Passi
-
Esegui il provisioning di un'istanza Hyper Protect Crypto Services e crea una chiave root. Per ulteriori informazioni, vedi Creazione di chiavi root.
Per migliorare la sicurezza, si consiglia di utilizzare endpoint privati virtuali con Hyper Protect Crypto Services.
-
Quando prepari il contratto, aggiungi i dettagli di
kms
nella sezioneenv
-volumes
e quindi utilizza il contratto per creare un'istanza Hyper Protect Virtual Server for VPC. Ad esempio:env: | logging: logRouter: hostname: 34be57c7-6ff2-4685-8839-903921e90ab9.ingress.jp-tok.logs.cloud.ibm.com iamApiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" volumes: test: kms: - apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" crn: "crn:v1:bluemix:public:hs-crypto:us-south:a/xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:key:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx" type: "public" - apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" crn: "crn:v1:bluemix:public:hs-crypto:us-south:a/xxxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx:key:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx" type: "private" seed:"seed1" kmsTimeout: 10 apiKey: "L4SsSE32xxxxxjAgfHCVkdW8xl_CiqMn4Lpc1dzTD" signingKey: "xxxxxxxxx" workload: | volumes: test: mount: "/mnt/data" seed: "seed2" filesystem: "ext4"
Per evitare un uso improprio dei dettagli KMS da parte di un aggressore, si consiglia vivamente al distributore (che fornisce la sezione env
) di crittografare e firmare il contratto. Per ulteriori
informazioni sulla crittografia, vedi Crittografia del contratto. Per la firma, aggiungi una chiave di firma pubblica (campo signingKey
) alla tua sezione
env
e firma l'intero contratto aggiungendo una sezione envWorkloadSignature
al contratto. Lo scopo della firma è garantire che le sezioni workload
e env
siano sempre utilizzate insieme
e non siano manomesse da terzi. Per ulteriori informazioni, vedere Firma del contratto.
-
kms
Nel campo
kms
, inserire sempre la configurazione KMS che si desidera utilizzare come prima voce. Le voci che seguono sono vecchie configurazioni KMS (utilizzate per decodificare il seed sottoposto a wrap prima di migrare alla configurazione corrente). Sono supportate un massimo di cinque voci. Per ulteriori informazioni sulla modifica delle configurazioni KMS, vedi Passaggio a un'istanza Hyper Protect Crypto Service o a una chiave root diversa.Se i dettagli
kms
del contratto non sono validi, l'istanza viene chiusa immediatamente. -
kmsTimeout
È possibile specificare
kmsTimeout
(tra 0 e 1000 minuti) nel contratto. Se non specificato, il valore di timeout predefinito è 10 minuti. Questo valore determina per quanto tempo l'istanza tenterà di spacchettare il seed durante l'avvio iniziale o il riavvio. Quando questo timeout scade, i messaggi vengono registrati e l'istanza viene chiusa. -
type
Si utilizza questo campo per specificare le istanze come "private" quando si trova in una rete privata e "public" quando si trova nella rete pubblica. Viene utilizzato per supportare il passaggio a una diversa istanza di Hyper Protect Crypto Services o CRK.
Se il tuo volume è nuovo, l'istanza crea due partizioni nel volume di dati, richiama Hyper Protect Crypto Services per generare un terzo seed e impacchettarlo con il CRK. Il seed incluso viene memorizzato nella partizione dei metadati. Quindi l'istanza genera una passphrase LUKS con il seed (prima unwrapped) e i due seed dal contratto per crittografare la seconda partizione.
È anche possibile scegliere di creare manualmente due partizioni in un volume, creare un valore random come terzo seed, impacchettarlo e memorizzarlo nella partizione dei metadati:
-
Creare due partizioni sul dispositivo a blocchi utilizzando il comando linux
parted
.- la prima partizione è denominata
metadata
e ha una lunghezza di 100 MiB (si noti che la partizione dei metadati è riservata solo ai metadati interni e non è accessibile a un carico di lavoro). Creare un file system ( ext4 ) prima di utilizzare la partizione. Creare un file con il nome keyfile. - la seconda partizione è etichettata come
data
e riempie l'intero spazio del disco.
- la prima partizione è denominata
-
Utilizza l' Hyper Protect Crypto Services Wrap a key per generare un testo semplice casuale con root in un HSM e impacchettarlo senza passare il valore.
-
Copia il testo cifrato restituito dall'oggetto di risposta in keyfile con i comandi linux.
-
Prepara il contratto con le informazioni KMS e crea un'istanza Hyper Protect Virtual Server con il volume partizionato manualmente contenente un seed impacchettato.
Quando l'istanza è in esecuzione, il daemon chiave contatta periodicamente l'istanza Hyper Protect Crypto Services. Si applica lo stesso timeout kmsTimeout
. Se l'istanza di Hyper Protect Crypto Services non può essere raggiunta,
lo stato della CRK non è Active
o i parametri di accesso (dettagli kms
) non corrispondono più, il daemon attiverà un riavvio.
Controlla i log in Log Analysis se la tua istanza si arresta.
Utilizzo delle chiavi gestite dal cliente per Hyper Protect Virtual Servers for VPC
Rotazione della chiave root
Se la CRK viene ruotata manualmente o automaticamente in base a una politica di rotazione delle chiave, il daemon delle chiavi rileva la rotazione delle chiavi e riesegue il wrapping del seed.
Passaggio a una chiave root o a un'istanza Hyper Protect Crypto Service differente
Se vuoi utilizzare un'istanza Hyper Protect Crypto Service diversa o un ID chiave root diverso, inserisci la nuova configurazione KMS come prima voce del contratto e crea nuovamente un'istanza Hyper Protect Virtual Server. Lasciare la vecchia configurazione KMS (attualmente utilizzata) nel contratto. Durante la creazione dell'istanza, Hyper Protect Virtual Server per VPC riavvolge il seed crittografato con la vecchia configurazione e utilizza la nuova configurazione per riavvolgere il seed. Nel contratto è supportato un massimo di cinque voci.
Una volta effettuata la modifica, le vecchie voci possono essere rimosse dall'interazione successiva.
Disabilitazione della chiave root
Se disabiliti la chiave root, lo stato della chiave diventa Sospeso. Il daemon chiave di Hyper Protect Virtual Servers per VPC controlla periodicamente
lo stato della CRK. Se lo stato non è Attivo, il server virtuale viene riavviato. Durante il riavvio, il daemon di chiave continua a controllare lo stato eseguendo il polling e, quando il tempo impiegato supera kmsTimeout
,
il server virtuale viene arrestato. Devi abilitare la chiave root per riportare la chiave a Active.
Assicurarsi che il CRK non sia scaduto. Altrimenti, il suo stato diventa Disattivato e il server virtuale viene riavviato ed eventualmente arrestato. Per ulteriori informazioni sugli stati delle chiavi, vedi Monitoraggio del ciclo di vita delle chiavi di crittografia.