Abilitazione del secondo livello di autenticazione per le connessioni EP11- solo piano Standard
Per garantire il controllo esclusivo sull'esecuzione delle operazioni crittografiche, puoi utilizzare la CLI del gestore di certificati Hyper Protect Crypto Services per abilitare il secondo livello di autenticazione per le connessioni EP11 (GREP11 o PKCS #11 API). Abilitando questa funzione, aggiungi un ulteriore livello di controllo dell'accesso al token IAM ( Identity and Access Management ) per le applicazioni EP11. Viene stabilita una connessione TLS reciproca per assicurare che solo applicazioni EP11 con certificato client valido possano eseguire operazioni EP11.
Il secondo livello di autenticazione per le connessioni EP11 è attualmente supportato solo dal piano standard Hyper Protect Crypto Services.
Sicurezza e disponibilità best practice per l'abilitazione dell'autenticazione TLS reciproca
Con TLS reciproco come secondo strato di autenticazione per l'accesso a EP11, è necessario essere a conoscenza delle seguenti considerazioni sulla sicurezza e sulla disponibilità:
- Se è necessario impedire ad alcune persone di accedere a EP11, amministratori certificati separati dagli utenti del servizio. Controllare l'accesso assegnando il ruolo Certificate Manager solo alle persone che gestiscono i certificati client e assegnando agli altri utenti del servizio i ruoli corrispondenti per l'utilizzo operativo. Per gestire l'accesso utente è necessario assegnare il ruolo Amministratore con l'accesso alla gestione dell'account.
- Le API EP11 non sono accessibili se si utilizzano certificati client non validi o si utilizzano chiavi private non disponibili per firmare i certificati client. Per garantire la disponibilità, assegnare più di una persona il ruolo Certificate Manager come backup. Gli amministratori certificati devono conservare in modo sicuro le loro chiavi private di amministratore uniche. Gli amministratori dei certificati devono inoltre conservare un backup di tutti i certificati client all'esterno dell'istanza Hyper Protect Crypto Services, ad esempio, utilizzando IBM Cloud Secrets Manager. Viene inoltre suggerito di monitorare la scadenza dei certificati.
Prima di iniziare
Prima di poter abilitare il secondo strato di autenticazione per le connessioni API GREP11 o PKCS #11 , assicurarsi di completare i seguenti prerequisiti:
-
Viene assegnato il ruolo di IAM Certificate Manager per eseguire le azioni corrispondenti. Per ulteriori informazioni sull'assegnazione dei ruoli IAM, consultare Gestione degli accessi utente e Gestione dell'accesso alle risorse.
-
Si dispone di un certificato client preparato sulla propria workstation che viene utilizzato per l'autenticazione TLS. Si consiglia di utilizzare IBM Cloud Secrets Manager per gestire i certificati SSL/TLS per le applicazioni e i servizi. È gratuito e fornisce memoria persistente per i tuoi certificati.
-
Installare il IBM Cloud CLI.
-
Installare l'ultimo plug-in CLI del gestore certificati con il seguente comando:
ibmcloud plugin install hpcs-cert-mgr -
Accedi a IBM Cloud con la CLI. Se si dispone di più account, selezionare l'account con cui viene creata la propria istanza di servizio. Assicurarsi di accedere alla regione e al gruppo di risorse corretti dove l'istanza di servizio si trova con il seguente comando:
ibmcloud target -r <region> -g <resource_group>
Passo 1: Configurare la chiave di firma dell'amministratore
Per abilitare il secondo strato di autenticazione, è necessario innanzitutto configurare la chiave di firma dell'amministratore. Il tasto di firma viene utilizzato per collegarsi al server del gestore certificati di istanza che elabora i comandi CLI del gestore certificati.
-
Generare la coppia di chiavi di firma con il seguente comando:
ibmcloud hpcs-cert-mgr adminkey set --crn HPCS_CRN [--private]Sostituire la variabile
HPCS_CRNcon il CRN (Cloud Resource Name) della tua istanza Hyper Protect Crypto Services. È possibile utilizzare il comandoibmcloud resource service-instances --longper richiamare il CRN. Il parametro--privateè facoltativo. Se si utilizza questa opzione, l'URL del server gestore certificati punta all'endpoint privato ed è necessario utilizzare la rete privata per collegare la propria istanza del servizio.Dopo l'esecuzione di questo comando, una coppia di chiavi pubbliche e private viene generata e memorizzata sulla propria workstation locale. Il percorso file predefinito è
/Users/<username>/.hpcs-cert-mgr-cfg/. Assicurarsi di memorizzare la chiave di firma in modo sicuro, ad esempio con la protezione delle password. La chiave pubblica viene caricata automaticamente sul server del gestore certificati di istanza per la verifica della firma.Se si desidera aggiornare e aggiornare la chiave di firma, è possibile utilizzare il comando
ibmcloud hpcs-cert-mgr adminkey updateper eseguire l'azione. Per ulteriori informazioni sull'utilizzo della CLI, consulta Hyper Protect Crypto Services certificate manager CLI reference. -
(Optional) Verificare e confermare se la chiave pubblica viene caricata sul server con il seguente comando:
ibmcloud hpcs-cert-mgr adminkey get --crn HPCS_CRN [--private]Se questo comando restituisce il valore della chiave pubblica, significa che si carica correttamente la chiave pubblica.
Passo 2: impostare il certificato CA client per l'autenticazione
Dopo aver configurato la chiave di firma dell'amministratore, è necessario caricare il certificato client CA(certificate authority)A trusted third-party organization or company that issues the digital certificates. The certificate authority typically verifies the identity of the individuals who are granted the unique certificate. sul server del gestore del certificato di istanza per l'autenticazione del client TLS.
Dopo aver configurato il certificato CA client, non sarà più possibile accedere ai keystore EP11 e alle chiavi EP11 tramite la IU.
-
(Optional) Preparare i certificati CA e client
Puoi generare i certificati CA per l'infrastruttura GREP11 utilizzando il programma di utilità OpenSSL.
Assicurarsi di installare OpenSSL su una stazione di lavoro che è possibile utilizzare per generare i certificati. Completa la seguente procedura sulla propria workstation:
- Generare il tasto CA eseguendo il seguente comando:
openssl genrsa -out ca.key 2048 - Crea il certificato CA immettendo il seguente comando:
openssl req -new -x509 -key ca.key -days 730 -out ca.pem - Creare la chiave client immettendo il seguente comando:
openssl genrsa -out client-key.pem 2048 - Creare la richiesta di firma del certificato client eseguendo il seguente comando:
openssl req -new -key client-key.pem -out client.csr - Creare il certificato del client immettendo il seguente comando:
openssl x509 -req -days 730 -in client.csr -CA ca.pem -CAcreateserial -CAkey ca.key -out client.pem
- Generare il tasto CA eseguendo il seguente comando:
-
Carica il certificato CA client sul server con il seguente comando:
Se il tuo certificato client è firmato da un certificato CA intermedio in una catena di certificati, è necessario caricare quel certificato CA intermedio.
ibmcloud hpcs-cert-mgr cert set --crn HPCS_CRN --admin-priv-key ADMIN_PRIV_KEY --cert-id CERT_ID --cert CERT_FILE [--private]Sostituisci le variabili nella richiesta di esempio in base alla seguente tabella.
Tabella 1. Descrive le variabili necessarie per caricare il certificato TLS Variabile Descrizione HPCS_CRNObbligatorio. Il CRN (Cloud Resource Name) della tua istanza Hyper Protect Crypto Services. È possibile utilizzare il comando ibmcloud resource service-instances --longper richiamare il CRN.ADMIN_PRIV_KEYObbligatorio. Il percorso file della tua chiave privata corrente sulla workstation locale che si genera o si aggiorna in Passo 1. La chiave privata viene utilizzata per firmare questa azione di comando verso il server del gestore certificati di istanza. CERT_IDObbligatorio. L'ID stringa che si desidera assegnare al certificato CA client per una facile identificazione. CERT_FILEObbligatorio. Il percorso file del certificato CA client sulla propria workstation locale. Il parametro
--privateè facoltativo. Se si utilizza questa opzione, l'URL del server gestore certificati punta all'endpoint privato ed è necessario utilizzare la rete privata per collegare la propria istanza del servizio. -
(Optional) Verificare e confermare se il certificato CA client viene caricato sul server con il seguente comando:
ibmcloud hpcs-cert-mgr cert list --crn HPCS_CRN [--private]Questo comando elenca tutti i certificati CA client disponibili gestiti da te sul server. Se l'elenco contiene il certificato precedentemente caricato, significa che l'azione è stata completata correttamente.
Passo 3: Creare connessioni TLS reciproche per applicazioni EP11
Dopo aver impostato il tasto di firma dell'amministratore e il certificato CA client, gli utenti EP11 possono stabilire connessioni TLS reciproche per le applicazioni che utilizzano l'API GREP11 o PKCS #11 . Prima che gli utenti EP11 possano farlo, devono configurare le applicazioni GREP11 o PKCS #11 con il certificato client.
Per utilizzare l'API GREP11 o PKCS #11 , assicurati che agli utenti EP11 siano assegnati i ruoli IAM appropriati per eseguire le operazioni EP11. Per ulteriori informazioni, consultare la scheda API HSM in ruoli di accesso ai servizi IAM.
-
Configurare le applicazioni GREP11
A seconda del linguaggio di programmazione che utilizzi per l'applicazione GREP11, il metodo di configurazione varia in base al pacchetto gRPC corrispondente. Quanto segue fornisce esempi per Golang e JavaScript.
-
Snippet di esempio Golang
cert, _ := tls.LoadX509KeyPair("client.pem", "client-key.pem") var callOpts = []grpc.DialOption{ grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{Certificates: []tls.Certificate{cert}})) }Il
tls.Config{}deve essere definito correttamente in base alla struttura tipoConfig. È necessario impostare almeno il campoCertificates. Assicurati di utilizzare il tuo tasto client e il certificato client. Per il codice di esempio Golang completo, vedi Il repository GitHub di esempio per Golang. -
Frammento di codice di esempio JavaScript
credentials.push(grpc.credentials.createSsl());È possibile fare riferimento alla documentazione del modulo delle Credenziali per informazioni dettagliate su funzioni e parametri. È necessario impostare i parametri
private_keyecert_chainper la funzionecreateSsl(). Per il codice di esempio JavaScript completo, vedi Il repository GitHub di esempio per JavaScript.
-
-
Configura applicazioni PKCS #11
PKCS #11 gestisce TLS reciproco nel suo file di configurazione. Aggiornare il campo
tlssecondo il seguente esempio:tls: enabled: true mutual: true cacert: certfile: "<client_certificate>" keyfile: "<client_certificate_private_key>"Sostituire le variabili nell'esempio in base alla tabella seguente:
Tabella 3. Descrive le variabili necessarie per configurare le applicazioni PKCS #11 Variabile Descrizione client_certificateObbligatorio. Il percorso file del certificato client caricato sul server dall'amministratore del certificato. client_certificate_private_keyObbligatorio. Il percorso file del tasto privato certificato client utilizzato per firmare il certificato.
Dopo la configurazione, quando le applicazioni utilizzano l'API GREP11 o PKCS #11 per eseguire operazioni crittografiche, viene stabilita una connessione TLS reciproca e il certificato client viene convalidato per lo strato aggiuntivo di autenticazione.
(opzionale) Disabilitando le connessioni TLS reciproche
Se non è più necessario il secondo strato di autenticazione, è possibile disabilitare la funzione eliminando tutti i certificati CA client sul server.
-
Eliminare un certificato CA con il seguente comando. Ripetere questo passo per eliminare tutti i certificati disponibili sul server per disabilitare le connessioni TLS dalle applicazioni EP11.
ibmcloud hpcs-cert-mgr cert delete --crn HPCS_CRN --admin-priv-key ADMIN_PRIV_KEY --cert-id CERT_ID [--private]Sostituisci le variabili nella richiesta di esempio in base alla seguente tabella.
Tabella 2. Descrive le variabili necessarie per eliminare i certificati CA Variabile Descrizione HPCS_CRNObbligatorio. Il CRN (Cloud Resource Name) della tua istanza Hyper Protect Crypto Services. È possibile utilizzare il comando ibmcloud resource service-instances --longper richiamare il CRN.ADMIN_PRIV_KEYObbligatorio. Il percorso file della tua chiave privata corrente che viene memorizzato sulla tua workstation locale. La chiave privata viene utilizzata per firmare questa azione di comando verso il server del gestore certificati di istanza. CERT_IDObbligatorio. L'ID stringa del certificato CA che vuoi eliminare. È possibile utilizzare per la prima volta il comando ibmcloud hpcs-cert-mgr cert list --crn HPCS_CRNper elencare tutti i certificati inclusi i relativi ID.Il parametro
--privateè facoltativo. Se si utilizza questa opzione, l'URL del server gestore certificati punta all'endpoint privato ed è necessario utilizzare la rete privata per collegare la propria istanza del servizio.Se sono impostati più amministratori certificati per la tua istanza di servizio, assicurati di eliminare tutti i certificati CA sotto questi amministratori.
Se si elimina un certificato CA dal server del gestore certificati, tutte le applicazioni che utilizzano i certificati client emessi da questo certificato CA non hanno accesso all'istanza GREP11 tramite connessione TLS reciproca.
Dopo aver eliminato tutti i certificati CA dal server del gestore certificati, l'autenticazione TLS reciproca per l'istanza GREP11 è disabilitata. Le applicazioni quindi non necessitano di connessione TLS reciproca per connettersi all'istanza GREP11.
-
(Optional) Verificare e confermare se tutti i certificati CA sono cancellati con il seguente comando:
ibmcloud hpcs-cert-mgr cert list --crn HPCS_CRN [--private]Se non viene restituito alcun certificato, significa che tutti i certificati della propria istanza di servizio sono cancellati.
-
(opzionale) Aggiornamento le applicazioni GREP11 o PKCS #11 per eliminare le configurazioni dei certificati, in modo che le applicazioni non utilizzino più il certificato per le future connessioni API.
Operazioni successive
- Per il riferimento del comando CLI del gestore certificato completo, consultare Hyper Protect Crypto Services certificate manager CLI plug-in.
- Per il riferimento API GREP11 e PKCS #11 , consultare Operazioni crittografiche: GREP11 API e Operazioni crittografiche: PKCS #11 API.