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.

Integrazione con il servizio di gestione delle chiavi
Integrazione con il servizio di gestione delle chiavi

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.

Semi che vengono utilizzati per generare la passphrase di crittografia LUKS
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

Generazione passphrase LUKS
Generazione passphrase LUKS

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.

Scenari
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

  1. 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.

  2. Quando prepari il contratto, aggiungi kms i dettagli nella sezione env``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.

  • 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, vedere Passaggio a un'istanza o a una chiave root di KMS(Hyper Protect Crypto Services)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 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.

  • 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. 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:

  1. Crea due partizioni sul dispositivo a blocchi utilizzando l'utilità linux parted.

    • La prima partizione è etichettata come metadata e 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 data e riempie l'intero spazio del disco.
  2. 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.

  3. Copia il testo cifrato dall'oggetto risposta al file chiave.

  4. 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.