Protezione dei dati su Hyper Protect Virtual Servers per VPC
Il sito IBM Cloud Hyper Protect Virtual Servers per VPC è deprecato. A partire dal 28 febbraio 2026, non sarà più possibile creare nuove istanze. Le istanze esistenti saranno supportate fino al 20 febbraio 2027. Tutte le istanze ancora esistenti a quella data saranno eliminate. È possibile distribuire nuovamente i carichi di lavoro utilizzando IBM Confidential Computing Container Runtime(precedentemente noto come Hyper Protect Virtual Servers ) o IBM Confidential Computing Container Runtime for Red Hat Virtualization Solutions(precedentemente noto come Hyper Protect Container Runtime for Red Hat Virtualization Solutions). Per informazioni sulla migrazione dei dati, consultare la guida Migrazione. Per ulteriori informazioni, vedere l'annuncio di deprezzamento del servizio.
Il volume di dati che si collega all'istanza Hyper Protect Virtual Servers per VPC è protetto da una passphrase di crittografia LUKS ( Linux Unified Key Setup). La passphrase deriva dai seed forniti durante l'implementazione. È possibile aggiungere un livello superiore di protezione e controllo della crittografia ai dati inattivi utilizzando la propria 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 digest esadecimale,
che viene utilizzato come passphrase LUKS per crittografare il volume di dati. Per ulteriori informazioni, consultare la sezione Informazioni sul contratto.
Proteggere i dati sensibili con la propria chiave
A partire da ibm-hyper-protect-container-runtime-1-0-s390x-11, Hyper Protect Virtual Servers per l'integrazione del supporto VPC 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 avvolge con il 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.
Informazioni di base: dalla versione dell'immagine ibm-hyper-protect-container-runtime-1-0-s390x-9 HPCR, per le nuove istanze VPC Hyper Protect Virtual Servers, il volume di dati è suddiviso in due parti. La prima
partizione (100 MiB ) è riservata esclusivamente ai metadati interni ( non accessibili da un carico di lavoro). La seconda partizione rimane come volume 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 tabella seguente riporta una sintesi dei 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 avvolge con il CRK solo se kms i dettagli sono forniti nel contratto. La crittografia dell'involucro viene eseguita richiamando un'API di avvolgimento. 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 della reazione ai cambiamenti di stato del CRK.
Informazioni sulle chiavi gestite dal cliente
Hyper Protect Virtual Servers per VPC utilizzare la crittografia dell'involucroIl 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 consiste nel crittografare (avvolgere) una chiave di crittografia con un’altra chiave di crittografia. Nel nostro caso, la chiave avvolta è il terzo seme, e la chiave utilizzata per avvolgere il seme è il CRK da Hyper Protect Crypto Services.
Il CRK è di tua proprietà in Hyper Protect Crypto Services. Hyper Protect Virtual Servers per VPC non vede mai il CRK. La sua archiviazione, gestione e utilizzo per incapsulare e decapsulare il seed avvengono interamente all’interno del servizio di gestione delle chiavi.
Hyper Protect Crypto Services è supportato da hardware certificato FIPS 140-2 Livello 4, il più elevato offerto da qualsiasi fornitore di servizi cloud del settore. Per ulteriori informazioni, consultare 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 VPC ( Hyper Protect Virtual Servers ) (layout delle partizioni e crittografia LUKS) e dalle informazioni contrattuali. 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 al server virtuale e l'input specificato nel file di contratto.
| Numero di partizioni nel volume di dati | Partizione metadati | Contract | Se la partizione / seconda partizione è codificata LUKS | Comportamento di Hyper Protect Virtual Servers per VPC |
|---|---|---|---|---|
| 0 | N/D | Ha dettagli kms |
Non LUKS codificato | L'istanza crea due partizioni nel volume di dati, chiama Hyper Protect Crypto Services per generare un terzo seed e lo avvolge con il CRK. Il seed incluso viene memorizzato nella partizione dei metadati. Quindi, l'istanza genera una passphrase LUKS con il seed (prima decompresso) e i due seed del 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 chiama Hyper Protect Crypto Services per generare un terzo seed e avvolgerlo con il CRK. Il seed incluso viene memorizzato nella partizione dei metadati. Quindi, l'istanza genera una passphrase LUKS con il seed (prima decompresso) e i due seed del contratto per crittografare la seconda partizione. |
| 2 | Nessun seed codificato | Ha dettagli kms (una voce) |
LUKS codificato | Un flusso simile al precedente per ricriptografare la seconda partizione. La vecchia passphrase LUKS viene sostituita. I due seed provenienti da env e workload devono essere gli stessi di prima, altrimenti la ricrittografia fallisce e l'istanza si spegne. 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 in un provisioning precedente, ma la crittografia non è andata a buon fine. Oppure hai fornito il volume con due partizioni e hai creato manualmente un valore casuale come terzo seed, lo hai racchiuso 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 la partizione è corretta, l'istanza chiama Hyper Protect Crypto Services per decomprimere il seed crittografato, genera una passphrase LUKS con il seed e i due seed del contratto per crittografare la seconda partizione. |
| 2 | Ha un seed codificato | Ha dettagli kms (una voce) |
LUKS codificato | L'istanza chiama Hyper Protect Crypto Services per decomprimere il seed crittografato e apre il livello LUKS sulla partizione dati. |
| 2 | Ha un seed codificato | Ha dettagli kms (più voci) |
L'istanza chiama Hyper Protect Crypto Services per decomprimere il seed crittografato con la prima kms voce. 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 IBM Cloud Logs se la tua istanza si spegne.
Passi
-
Fornire un'istanza Hyper Protect Crypto Services e creare 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
kmsi dettagli nella sezioneenv``volumes-, quindi utilizza il contratto per creare un Hyper Protect Virtual Servers e per l'istanza VPC. Vedi il seguente 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:"workload_phrase1" kmsTimeout: 10 apiKey: "L4SsSE32xxxxxjAgfHCVkdW8xl_CiqMn4Lpc1dzTD" signingKey: "xxxxxxxxx" workload: | volumes: test: mount: "/mnt/data" seed: "workload_phrase2" 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 workload sezioni env e siano sempre utilizzate insieme
e non vengano manomesse da terzi. Per ulteriori informazioni, vedere Firma del contratto.
-
kmsNel 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, vedere Passaggio a un'istanza o a una chiave root di KMS(Hyper Protect Crypto Services)diversa.Se i dettagli
kmsdel 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 tenta di decomprimere il seed durante l'avvio iniziale o il riavvio. Quando questo timeout scade, i messaggi vengono registrati e l'istanza viene chiusa. -
typeSi utilizza questo campo per specificare le istanze come "private" quando si trova in una rete privata e "public" quando si trova nella rete pubblica. Questa voce viene utilizzata per supportare il passaggio a un'istanza Hyper Protect Crypto Services o CRK diversa.
Se il volume è nuovo, l'istanza crea due partizioni nel volume di dati, chiama Hyper Protect Crypto Services per generare un terzo seed e lo avvolge con il CRK. Il seed incluso viene memorizzato nella partizione dei metadati. Quindi, l'istanza genera una passphrase LUKS con il seed (prima decompresso) e i due seed del 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:
-
Crea due partizioni sul dispositivo a blocchi utilizzando l'utilità linux
parted.- La prima partizione è etichettata come
metadatae ha una lunghezza di 100 MiB. La partizione dei metadati è riservata esclusivamente ai metadati interni e non è accessibile da un carico di lavoro. Crea un file system ( ext4 ) e crea un file con il nome keyfile. - la seconda partizione è etichettata come
datae riempie l'intero spazio del disco.
- La prima partizione è etichettata come
-
Utilizza l'API KMS di Hyper Protect Crypto Services Avvolgi una chiave per generare un testo in chiaro casuale radicato in un HSM e avvolgilo senza trasmettere il valore.
-
Copia il testo cifrato dall'oggetto risposta al file chiave.
-
Prepara il contratto con le informazioni KMS e crea un'istanza VPC ( Hyper Protect Virtual Servers ) con il volume partizionato manualmente che contiene un seed avvolto.
Quando l'istanza è in esecuzione, il demone chiave contatta periodicamente l'istanza Hyper Protect Crypto Services. Si applica lo stesso timeout kmsTimeout. Se l'istanza Hyper Protect Crypto Services non è raggiungibile, lo
stato del CRK non è Active, oppure i parametri di accesso (kms dettagli) non corrispondono più, il demone avvia un riavvio.
Controlla i registri in Log Analysis se la tua istanza si spegne.
Utilizzo delle chiavi gestite dal cliente per Hyper Protect Virtual Servers per 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 un'istanza o a una chiave root diversa di Hyper Protect Crypto Services
Se desideri utilizzare un'istanza Hyper Protect Crypto Services diversa o un ID chiave root diverso, inserisci la nuova configurazione KMS come prima voce nel contratto e ricrea l'istanza Hyper Protect Virtual Servers. Mantenere la vecchia configurazione KMS (attualmente in uso) nel contratto. Durante l'istanziazione, Hyper Protect Virtual Servers per VPC decomprime il seed crittografato con la vecchia configurazione e utilizza la nuova configurazione per ricomprimere 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 demone chiave di Hyper Protect Virtual Servers per VPC controlla periodicamente
lo stato del CRK. Se lo stato non è Attivo, il server virtuale si riavvia. Durante il riavvio, il Key Daemon continua a controllare lo stato tramite polling e, quando il tempo richiesto supera kmsTimeout,
il server virtuale si spegne. 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 si riavvia e alla fine si spegne. Per ulteriori informazioni sugli stati delle chiavi, vedi Monitoraggio del ciclo di vita delle chiavi di crittografia.