Inizializzare Dedicated Key Protect creando un'istanza, le credenziali e una chiave master
Affinché Dedicated Key Protect funzioni, è necessario prima eseguire il provisioning di un'istanza, poi generare le credenziali di amministrazione utilizzate per gestire le unità crittografiche, quindi creare e caricare la chiave master, che consente a Key Protect di eseguire operazioni crittografiche contro le unità crittografiche per conto dell'utente.
Per ulteriori informazioni sui concetti chiave del servizio Dedicated Key Protect, consultare Informazioni su Standard e Dedicated Key Protect.
In questo argomento vengono presentate tre diverse versioni di ciascun comando: per Mac/ Linux, per Windows Powershell o per il prompt dei comandi di Windows (CMD). Assicuratevi di utilizzare il comando corrispondente al vostro sistema.
Prima di iniziare
Se non si dispone dell'ultima versione di IBM Cloud CLI, potrebbe non essere possibile inizializzare l'istanza. Per garantire il successo dell'inizializzazione, aggiornare l'ultima versione del plugin CLI.
È necessario utilizzare l'ultima versione della CLI per completare l'inizializzazione, anche se si distribuisce l'istanza tramite la console. Se si riceve l'errore - Unable to obtain plug-in's metadata, durante l'installazione dell'ultima
versione del plugin KP CLI, vedere la procedura di risoluzione dei problemi.
Provisioning dell'istanza nella console
Per eseguire il provisioning dell'istanza nella console, seguire le istruzioni qui e selezionare il riquadro "Dedicated" nel catalogo. Il processo di provisioning può richiedere alcuni minuti.
Una volta che l'istanza è stata fornita, si è pronti a generare le credenziali di amministrazione e a richiedere le unità crittografiche.
Se non si specifica un numero di unità crittografiche, l'istanza viene fornita con due unità. È inoltre possibile specificare tre unità crittografiche utilizzando il menu a tendina. Sia che si specifichino due o tre unità crittografiche, si noti che il valore non può essere modificato in seguito.
Provisioning dell'istanza nella CLI
Prima di poter creare unità crittografiche e inizializzare l'istanza, è necessario creare l'istanza. Per prima cosa, impostate un gruppo di risorse da indirizzare, emettendo:
ibmcloud target -c <resource-group>
Se non si conosce il proprio gruppo di risorse, si può scoprire quali sono emettendo un messaggio:
ibmcloud resource groups
Dopo aver impostato il gruppo di risorse, creare l'istanza inviando il messaggio:
ibmcloud resource service-instance-create <INSTANCE_NAME> kms dedicated us-south
Dove:
<INSTANCE_NAME>è il nome che dai alla tua istanza.
Si noti che per impostazione predefinita questo comando prevede due unità crittografiche. È possibile specificare tre unità crittografiche emettendo:
ibmcloud resource service-instance-create <INSTANCE_NAME> kms dedicated us-south -p '{"crypto_units": 3}'
Se si specifica un numero di unità crittografiche diverso da 2 o 3, viene restituito un errore. Non è possibile modificare il numero di unità crittografiche in un secondo momento.
Il provisioning di un'istanza dedicata può richiedere alcuni minuti. È possibile verificare lo stato della propria istanza inviando un messaggio:
ibmcloud resource service-instance <INSTANCE_NAME>
Dove:
<INSTANCE_NAME>è il nome dato all'istanza nel passaggio precedente.
L'istanza può avere uno dei due stati, attivo o in corso. Si noti che un'istanza attiva non è ancora stata inizializzata, poiché ciò richiede il completamento dei passi rimanenti di questo argomento. Finché non si inizializza l'istanza, non è possibile utilizzarla, poiché le identità non sono ancora state configurate con le unità crittografiche per creare la chiave master.
Ottenere l'endpoint
Una volta che l'istanza è attiva, è possibile ottenere l'endpoint e il GUID inviando un messaggio:
ibmcloud resource service-instance <INSTANCE_NAME> -o json
Dove:
<INSTANCE_NAME>è il nome dato all'istanza nel passaggio precedente.
L'endpoint è il valore del parametro public nella stanza endpoints dell'output json precedente. Il formato è https://<instance-id>.api.<region>.kms.appdomain.cloud. Il GUID è il valore del parametro
GUID nell'output precedente. Il formato è UUID.
È possibile ottenere l'endpoint inviando: ibmcloud resource service-instance <\kp-instance-id\> --output json | jq -r '.[].extensions.endpoints'.
Salvare l'endpoint completo come variabile d'ambiente, lanciando due comandi su uno dei tre sistemi operativi supportati.
Per macOS:
export KP_TARGET_ADDR=<ST_INSTANCE_ENDPOINT>
E:
export KP_INSTANCE_ID=<GUID>
Per Windows Powershell:
$Env:KP_INSTANCE_ID = <GUID>
E:
$Env:KP_TARGET_ADDR = <ST_INSTANCE_ENDPOINT>
Per Windows CMD:
set KP_INSTANCE_ID=<GUID>
E:
set KP_TARGET_ADDR=<ST_INSTANCE_ENDPOINT>
Dove:
<ST_INSTANCE_ENDPOINT>è l'endpoint completo dell'istanza, nel formatohttps://<instance-id>.api.<region>.kms.appdomain.cloud.<GUID>è l'ID dell'istanza dall'output precedente.
Ora si è pronti a generare le credenziali di amministrazione.
Potrebbe essere necessario attendere qualche minuto dopo il provisioning prima che le unità crittografiche siano disponibili.
Per ulteriori informazioni sugli stati in cui può trovarsi un'unità crittografica, consultare gli stati delle unità crittografiche.
Generazione delle credenziali di amministrazione e rivendicazione delle unità crittografiche
Un'unità crittografica è gestita da uno o più amministratori, il che significa che è necessario disporre di identità o crearle. Se le identità degli amministratori sono formattate correttamente (una chiave simmetrica AES a 256 bit con RSA-2048 ), si può passare a Creare la chiave master.
Generazione delle credenziali di amministrazione
Se è necessario creare una credenziale di amministrazione, emettere:
ibmcloud kp crypto-unit sig-key generate --file <ADMIN_KEY_FILE> --passphrase <PWD> --algo RSA-2048
Dove:
<ADMIN_KEY_FILE>è la posizione sul computer in cui viene creata l'identità (ad esempio,admin-keyfile.key).<PWD>è una password o una passphrase opzionale utilizzata per crittografare il file a riposo. Specificare "-" per richiedere l'immissione di una passphrase.
Salvate una copia di questo file chiave e ricordate la passphrase. È necessario per tutti i comandi autenticati quando si interagisce con le unità crittografiche.
Se un comando ibmcloud kp crypto-unit restituisce il codice di errore e00bad05, vedere le fasi di risoluzione dei problemi.
Rivendicare le unità di criptovaluta
Per ulteriori informazioni sugli stati in cui può trovarsi un'unità crittografica, consultare gli stati delle unità crittografiche.
Le unità crittografiche assegnate a un utente iniziano in uno stato di cancellazione. Tutte le unità crittografiche di un'istanza di servizio devono essere configurate allo stesso modo. Se non è possibile accedere a una zona di disponibilità nella regione in cui si trova l'istanza, le unità crittografiche operative possono essere utilizzate in modo intercambiabile per il bilanciamento del carico o per l'alta disponibilità.
La chiave principale in tutte le unità crittografiche di una singola istanza di servizio deve essere impostata allo stesso modo. Lo stesso gruppo di amministratori deve essere aggiunto in tutte le unità crittografiche e tutte le unità crittografiche devono essere inizializzate contemporaneamente.
Per visualizzare le istanze di servizio e le unità crittografiche nel gruppo di risorse di destinazione con l'account utente corrente, usare il comando seguente:
ibmcloud kp crypto-units
L'output seguente è un esempio di quanto visualizzato. La colonna ID nella tabella di output identifica le unità crittografiche a cui si riferiscono i successivi comandi amministrativi emessi dal plug-in KP CLI.
*******************************************************
Id InstanceID State
6e0aead3-9d44-4c92-a4c4-f7a1ab415420 c28a8939-3980-4697-a80c-50b1f8bbf160 reserved
3bb363fc-b1f9-4237-b37b-2c9e07784e3c c28a8939-3980-4697-a80c-50b1f8bbf160 reserved
*******************************************************
La parte pubblica della coppia di chiavi RSA viene inserita in un certificato che viene installato nell'unità crittografica di destinazione per definire un amministratore dell'unità crittografica. Usare il comando claim per caricarlo come amministratore predefinito delle unità crypto:
ibmcloud kp crypto-unit claim --credential <ADMIN_KEY_FILE>
Dove:
<ADMIN_KEY_FILE>è il file in cui è stata memorizzata l'identità.
Tutti i comandi di crypto-unit si applicano a tutte le unità crypto. Sono di fatto dei cloni l'uno dell'altro.
Generazione e importazione della chiave master
Poiché si importano le credenziali della chiave master, Key Protect non ha accesso né backup di tale chiave. Conservate le registrazioni della chiave principale in un luogo sicuro.
Ora che sono state create l'istanza e l'identità dell'amministratore, è possibile utilizzarle per creare la chiave master. La chiave master, nota anche come chiave master HSM, viene utilizzata per crittografare l'istanza di servizio per la memorizzazione delle chiavi. Si tratta di una chiave simmetrica AES a 256 bit. Con la chiave master, si acquisisce la proprietà dell'HSM cloud e si diventa titolari della radice di fiducia che crittografa l'intera gerarchia delle chiavi di crittografia, comprese le chiavi radice e le chiavi standard presenti nel keystore di gestione delle chiavi. Un'istanza del servizio può avere una sola chiave master. Se si elimina la chiave principale dell'istanza del servizio, è possibile distruggere in modo sicuro tutti i dati che sono stati crittografati con le chiavi gestite dal servizio.
Key Protect, un servizio dedicato, utilizza il processo di “key splitting”, in cui una chiave crittografica viene suddivisa in più parti per migliorare la sicurezza. È necessario creare almeno 2 "keyshares", anche se è
possibile utilizzarne di più a seconda del caso d'uso.
Per generare la chiave master localmente, eseguire il comando su uno dei tre sistemi operativi supportati.
Per macOS:
ibmcloud kp crypto-unit master-key generate --keyshare-files '["<KEYSHARE_FILE_1>#<PASSWORD1>", "<KEYSHARE_FILE_2>#<PASSWORD2>"]' --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSOWRD3>"}]'
Per Windows Powershell:
ibmcloud kp crypto-unit master-key generate --keyshare-files '["""<KEYSHARE_FILE_1>#<PASSWORD1>""","""<KEYSHARE_FILE_2>#<PASSWORD2>"""]' --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSOWRD3>"""}]'
Per Windows CMD:
ibmcloud kp crypto-unit master-key generate --keyshare-files"[\"<KEYSHARE_FILE_1>#<PASSWORD1>\", \"<KEYSHARE_FILE_2>#<PASSWORD2>\"]" --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSOWRD3>\"}]"
Dove:
<KEYSHARE_FILE_1>#<PASSWORD1>è la posizione di una delle keyshare, insieme a una passphrase per il file che viene creato. La passphrase è obbligatoria e deve essere compresa tra 6 e 255 caratteri. Omettere#<PASSWORD1>per richiedere l'immissione di una passphrase.<KEYSHARE_FILE_2>#<PASSWORD2>è la posizione di un altro keyshare, insieme a una passphrase per il file che viene creato. La passphrase è obbligatoria e deve essere compresa tra 6 e 255 caratteri. Omettere#<PASSWORD2>per richiedere l'immissione di una passphrase. Omettere#<PASSWORD2>per richiedere l'immissione di una passphrase.<KEY_NAME>è il nome della tua chiave principale.<ADMIN_KEY_FILE>#<PASSOWRD3>è la posizione dell'amministratore e la sua passphrase generata in precedenza (se non si porta la propria identità). Omettere#<PASSWORD3>per richiedere l'immissione di una passphrase.
Si noti che il valore keyshare-minimum, impostato di default su 2 ma che può essere aumentato, rappresenta il numero minimo di keyshare (in base alla loro posizione) che è necessario specificare.
Per caricare la chiave master nelle unità crittografiche dell'istanza, eseguire il comando su uno dei tre sistemi operativi supportati.
Per macOS:
ibmcloud kp crypto-unit master-key import --keyshare-files '["<KEYSHARE_FILE_1>#<PASSWORD1>", "<KEYSHARE_FILE_2>#<PASSWORD2"]' --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSWORD3>"}]'
Per Windows PowerShell:
ibmcloud kp crypto-unit master-key import --keyshare-files '["""<KEYSHARE_FILE_1>#<PASSWORD1>""","""<KEYSHARE_FILE_2>#<PASSWORD2>"""]' --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSWORD3>"""}]'
Per Windows CMD:
ibmcloud kp crypto-unit master-key import --keyshare-files "[\"<KEYSHARE_FILE_1>#<PASSWORD1>\", \"<KEYSHARE_FILE_2>#<PASSWORD2\"]" --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSWORD3>\"}]"
Dove:
<KEYSHARE_FILE_1>#<PASSWORD1>è la posizione di una delle keyshare, insieme a una passphrase per il file che verrà creato. La passphrase è obbligatoria e deve essere compresa tra 6 e 255 caratteri. Omettere#<PASSWORD1>per richiedere l'immissione di una passphrase.<KEYSHARE_FILE_2>#<PASSWORD2>è il percorso di un altro keyshare, insieme a una passphrase per il file che verrà creato. La passphrase è obbligatoria e deve essere compresa tra 6 e 255 caratteri. Omettere#<PASSWORD2>per richiedere l'immissione di una passphrase.<ADMIN_KEY_FILE>#<PASSWORD3>è la posizione dell'amministratore e la sua passphrase generata in precedenza (se non si porta la propria identità). Omettere#<PASSWORD3>per richiedere l'immissione di una passphrase.
Ora che la chiave master è stata creata, è necessario consentire al servizio Key Protect di eseguire azioni sulle unità crittografiche (ad esempio, creare chiavi). Si noti che il livello delle autorizzazioni concesse all' Key Protect e è inferiore a quello di un amministratore. Eseguire il comando utilizzando uno dei tre sistemi operativi supportati.
Per macOS:
ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSWORD>"}]'
Per Windows PowerShell:
ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSWORD>"""}]'
Per Windows CMD:
ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSWORD>\"}]"
Dove:
<ADMIN_KEY_FILE>#<PASSWORD>è la posizione del file della chiave di amministrazione e della relativa passphrase generata in precedenza (se non si porta la propria identità). Omettere#<PASSWORD>per richiedere l'immissione di una passphrase.
Questo comando può essere usato anche per aggiungere amministratori alle vostre unità crittografiche, creando il vostro --type admin e aggiungendo un --name e un --file che puntino a un'identità
di amministratore in vostro possesso. Non aggiungere --name o --file quando si aggiunge kmsCryptoUser. Ad esempio:
ibmcloud kp crypto-unit user add --type admin --name <USERNAME> --credential "<USERNAME_KEY_FILE>" --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PWD>"}]'
Dove:
<USERNAME>è il nome dell'identità di amministratore che si sta aggiungendo.<USERNAME_KEY_FILE>è il percorso del file della credenziale da associare al nuovo utente.<ADMIN_KEY_FILE>#<PWD>è la posizione dell'amministratore esistente e la relativa passphrase generata in precedenza (se non si porta la propria identità). Omettere#<PWD>per richiedere l'immissione di una passphrase.
Non aggiungere --name o --file quando si aggiunge kmsCryptoUser come amministratore.
Congratulazioni. L'istanza è stata completamente inizializzata.
Potrebbero essere necessari dai 5 ai 10 minuti prima di poter utilizzare l'istanza.
Passi successivi
Ora che l'istanza è stata creata, si dispone di identità di amministratore che possono essere utilizzate per operare, si è creata la chiave master e si è dato a Key Protect l'accesso per eseguire azioni sull'istanza, si è pronti a fare cose come:
- Crea una chiave root. È possibile disporre di un massimo di 500 chiavi root o standard in qualsiasi stato, compreso
Destroyed. - Creare portachiavi. È possibile disporre di un massimo di 50 portachiavi per istanza di servizio.
- Impostare una politica di rotazione.
I token di importazione non sono supportati da Key Protect Dedicated.
Caratteristiche non supportate
- Creazione di token di importazione.
- Proteggere la chiave di importazione con i token di importazione.
allowed_network policy.- Distribuire l'istanza ovunque tranne che su
us-south. - PKCS#11 keystore.
- Unità crittografiche in Failover.
Risoluzione dei problemi
Unable to obtain plug-in's metadata errore durante l'installazione o l'aggiornamento del plugin KP CLI
Se si riceve il seguente errore quando si installa il plugin IBM Key Protect CLI:
Installing binary...
FAILED
Unable to obtain plug-in's metadata. Error: exit status 1
Linux ambiente
Installare o aggiornare la libreria di sistema libstdc++ con la versione GLIBCXX 3.4.26 o successiva dal gestore dei pacchetti della distribuzione. Utilizzate i seguenti esempi di comandi di installazione:
- Ubuntu/Debian:
apt-get update && apt-get install libstdc++6 - RHEL/Fedora/CentOS:
yum install libstdc++ - Alpine:
apk add --no-cache gcompat libstdc++
Se ciò non risolve l'errore, contatta l'assistenza di Key Protect.
Ambiente Windows o macOS
Contattare l'assistenza di Key Protect.
command failed with error code: e00bad05 errore
Se un comando ibmcloud kp crypto-unit restituisce il seguente errore:
FAILED
command failed with error code: e00bad05
Questo errore potrebbe indicare che il vostro sistema non è compatibile con la funzione ibmcloud kp crypto-unit. I requisiti di sistema consigliati sono:
- Windows: AMD64 (Windows 10 o successivo)
- Linux: AMD64 (Debian, Ubuntu, Red Hat)
- macOS: ARM64 (Apple Silicon)
I sistemi che non rientrano in questo elenco potrebbero comunque essere compatibili con la funzione ibmcloud kp crypto-unit. Se si desidera confermare la compatibilità con il proprio sistema specifico o se l'errore e00bad05 persiste nonostante il rispetto dei requisiti di sistema raccomandati, contattare l'assistenza di Key Protect.
HTTP 503 Errore no healthy upstream
Se le chiamate alle operazioni di Key Protect restituiscono HTTP 503 con il messaggio no healthy upstream: no crypto units are in kms-initialized state at this time, sono possibili le seguenti
cause:
- Non sono ancora state completate le fasi di inizializzazione di Dedicated.
- Sono state completate le fasi di inizializzazione Dedicated, ma è necessario attendere qualche minuto affinché Key Protect riconosca le nuove unità crittografiche
kms-initialized. - Si dispone di una sola unità crittografica nello stato
kms-initializede questa unità crittografica è inattiva per manutenzione. - È stato caricato materiale di chiave master non corrispondente su una o più unità crittografiche.
context deadline exceeded errore
Se i comandi CLI restituiscono l'errore context deadline exceeded (Client.Timeout exceeded while awaiting headers), è stato impostato KP_TARGET_ADDR su un endpoint privato da un sistema che non soddisfa i requisiti
di endpoint privato.
Per risolvere questo errore:
- Utilizzare l'endpoint pubblico dal passaggio Ottenere l'endpoint.
- Se si intende utilizzare l'endpoint privato, consultare la sezione Endpoint privati per informazioni sull'esecuzione di chiamate all'endpoint privato.
I comandi delle unità crittografiche non si applicano a tutte le unità crittografiche
Se i comandi crypto-unit claim, crypto-unit master-key import o crypto-unit user add --type kmsCryptoUser non si applicano a tutte le unità crittografiche, si potrebbe vedere un output simile al seguente
esempio:
Executing operation Generate Master Key against CryptoUnit with ID fadedbee-0000-0000-0000-1234567890ab
OK
Executing operation Generate Master Key against CryptoUnit with ID addedace-0000-0000-0000-1234567890ab
FAILED
Per risolvere questo problema:
-
Per impostazione predefinita, i comandi
claim,master-key importeuser addtentano di applicarsi a tutte le unità crittografiche. Se questi comandi hanno successo solo parzialmente (applicati solo a un sottoinsieme delle unità crittografiche dell'istanza), riprovare il comando solo con le unità crittografiche che hanno dato esito negativo. Ognuno di questi comandi può essere configurato per indirizzare unità crittografiche specifiche. Per determinare come indirizzare unità crittografiche specifiche, aggiungere-ha qualsiasi comandocrypto-unitper visualizzare il testo della guida, oppure consultare il documento Riferimento CLI. -
Eseguire il comando
kp crypto-unitsnel riferimento CLI per confermare che tutte le unità crypto sono nello stesso stato.- Se gli stati delle unità crittografiche non sono corrispondenti, vedere Stati delle unità crittografiche.
- Se una qualsiasi unità crypto si trova nello stato
maintenance, riprovare i comandikp crypto-unitin un secondo momento.