Configurazione di Terraform per Hyper Protect Crypto Services con Unified Key Orchestrator
Terraform on IBM Cloud® abilita il provisioning prevedibile e congruente dei servizi IBM Cloud in modo da poter creare rapidamente ambienti cloud complessi e multilivello seguendo i principi di Infrastructure as Code (IaC). Simile all'utilizzo della CLI o dell'API e degli SDK IBM Cloud, puoi automatizzare il provisioning, l'aggiornamento e l'eliminazione delle tue istanze Hyper Protect Crypto Services utilizzando l'HCL (Configuration Language) HashiCorp.
Questo argomento descrive solo come impostare Terraform per Hyper Protect Crypto Services con Unified Key Orchestrator.
Stai cercando una soluzione Terraform gestita su IBM Cloud ? Prova IBM Cloud® Schematics. Con Schematics, puoi utilizzare il linguaggio di script Terraform che ti è familiare, ma non devi preoccuparti di configurare e gestire la riga di comando Terraform e il plug-in del provider IBM Cloud. Schematics fornisce anche modelli Terraform predefiniti che puoi facilmente installare dal catalogo IBM Cloud.
Prima di iniziare, assicurati di avere l'accesso richiesto per creare e utilizzare le risorse Hyper Protect Crypto Services.
Esempio: provisioning e inizializzazione delle istanze del servizio utilizzando Terraform
Completa la seguente procedura per creare e inizializzare un'istanza Hyper Protect Crypto Services utilizzando Terraform:
-
Installa la CLI Terraform e configura il provider IBM Cloud per Terraform seguendo l'esercitazione introduttiva di Terraform su IBM Cloud.
Il plug-in astrae le API IBM Cloud utilizzate per eseguire il provisioning, aggiornare o eliminare le risorse e le istanze del servizio Hyper Protect Crypto Services. Le versioni Terraform preferite sono 0.13.x, 0.14.xe 0.15.x. Nel file
versions.tf, è necessario specificare il parametroversionper1.29.0. -
Impostare le chiavi di firma dell'amministratore dell'unità di crittografia. È possibile selezionare uno dei seguenti modi per creare chiavi di firma dell'amministratore:
-
Utilizzo del plug-in IBM Cloud Trusted Key Entry (TKE) CLI
Dopo aver installato e configurato il plug-in della CLI TKE seguendo queste istruzioni, è possibile utilizzare il comando
ibmcloud tke sigkey-addper creare le chiavi di firma dell'amministratore. Le chiavi di firma sono memorizzate in file protetti da password sulla stazione di lavoro locale. Il percorso file è specificato dalla variabile di ambienteCLOUDTKEFILES. -
Utilizzo di un servizio di firma di terzi
Un servizio di firma di terzi può essere utilizzato per creare, memorizzare e accedere alle chiavi di firma utilizzate sia dal plug-in CLI TKE che da Terraform. Per abilitare il servizio di firma nel plug-in TKE CLI, è necessario impostare la variabile di ambiente
TKE_SIGNSERV_URLsulla workstation locale sull'URL e sul numero di porta in cui è in esecuzione il servizio di firma. Per abilitare il servizio di firma in Terraform, devi impostare il parametrosignature_server_urlnel blocco di risorse sullo stesso valore.
-
-
Crea un file di configurazione Terraform
main.tfnella stessa cartella diversions.tf. In questo file, si aggiungono le configurazioni per eseguire le azioni corrispondenti.Il seguente template è un file di configurazione di esempio per eseguire il provisioning di un'istanza di Hyper Protect Crypto Services con 2 unità di crittografia operative nella regione
us-south. Questa istanza viene addebitata secondo il piano dei prezzi Unified Key Orchestrator e viene inizializzata con 2 amministratori. La chiave master viene generata automaticamente nelle unità di crittografia di ripristino assegnate all'istanza. Le chiavi di firma sono create utilizzando il plug-in della CLI TKE e memorizzate in file protetti locali.Poiché le unità di crittografia di ripristino sono attualmente disponibili nelle aree supportate diverse da Madrid (
eu-es), l'utilizzo di Terraform per inizializzare Hyper Protect Crypto Services istanze non è supportato in questa regione. Per ulteriori informazioni sull'inizializzazione manuale, vedi Introduzione agli approcci di inizializzazione dell'istanza del servizio.resource ibm_hpcs hpcs { location = "us-south" name = "test-hpcs" plan = "hpcs-hourly-uko" units = 2 signature_threshold = 1 revocation_threshold = 1 admins { name = "admin1" key = "/cloudTKE/1.sigkey" token = "sensitive1234" } admins { name = "admin2" key = "/cloudTKE/2.sigkey" token = "sensitive1234" } } resource "ibm_iam_user_policy" "policy" { ibm_id = "user@ibm.com" roles = ["Manager"] resources { service = "test-hpcs" resource_instance_id = element(split(":", ibm_resource_instance.hpcs.id), 7) } }Negli ambienti di produzione, si consiglia di fornire le password per i file di chiavi di firma o i token per il servizio di firma durante il processo di applicazione di Terraform invece di scriverlo in testo semplice nel file di configurazione. In questo caso, ti viene richiesto di inserire le password di autenticazione o i token quando esegui i comandi Terraform. Dopo l'inizializzazione dell'istanza, i valori immessi per le password o i token vengono memorizzati in un file
.tfstate. Per ulteriori informazioni sulla protezione dei dati sensibili in Terraform, consulta Dati sensibili nello stato.La seguente tabella elenca i parametri supportati quando crei e inizializzi un'istanza del servizio con Terraform:
Tabella 1. Parametri supportati per il provisioning di un'istanza del servizio con Terraform Parametro Descrizione nameObbligatorio. Il nome della tua istanza Hyper Protect Crypto Services. locationObbligatorio. L'abbreviazione della regione, ad esempio us-south, che rappresenta l'area geografica in cui si trovano le unità di crittografia operative della tua istanza del servizio. Per ulteriori informazioni, vedi Regioni e ubicazioni. Poiché le unità di crittografia di ripristino non sono disponibili a Madrid (eu-es), non puoi utilizzare Terraform per l'inizializzazione dell'istanza nella regioneeu-es.planObbligatorio. Il piano dei prezzi per la tua istanza del servizio. unitsObbligatorio. Il numero di unità di crittografia operative per la tua istanza del servizio. I valori validi sono 2 o 3. failover_unitsNon applicabile. L'alta disponibilità tra regioni non è attualmente supportata per Unified Key Orchestrator. service_endpointsNon applicabile. L'impostazione predefinita è public-and-private.tagsFacoltativo. Le tag che sono associate alla tua istanza vengono utilizzate per organizzare le tue risorse. Per ulteriori informazioni sulle tag, vedi Gestione delle tag. resource_group_idFacoltativo. Il gruppo di risorse in cui vuoi organizzare e gestire la tua istanza del servizio. Se non si specifica il valore, il gruppo di risorse predefinito è Default.signature_thresholdObbligatorio. Il numero di firme di amministratore richieste per eseguire i comandi di gestione. Il valore valido è compreso tra 1 e 8. È necessario impostarla su almeno 2 per consentire l'autenticazione quorum. revocation_thresholdObbligatorio. Il numero di firme dell'amministratore richieste per rimuovere un amministratore dopo aver lasciato la modalità di stampa. Il valore valido è compreso tra 1 e 8. adminsObbligatorio. L'elenco di amministratori per le unità di crittografia dell'istanza. È possibile impostare fino a otto amministratori e il numero deve essere uguale o superiore alle soglie specificate. È necessario impostare i seguenti valori per ogni amministratore: nome:
Il nome dell'amministratore. Deve avere una lunghezza non superiore a 30 caratteri.chiave:
- Se si utilizzano i file di chiavi di firma sulla workstation locale creati dal plug-in CLI TKE e non si utilizza un servizio di firma di terze parti, specificare il percorso assoluto e il nome file del file di chiavi di firma da utilizzare.
- Se si sta utilizzando un servizio di firma per fornire chiavi di firma, specificare il nome della chiave di firma in base alla definizione del servizio di firma. La stringa di caratteri per il nome chiave viene accodata a un URI che viene inviato al servizio di firma e deve contenere solo caratteri non riservati come definito dalla sezione 2.3 di RFC3986.
token:
- Se si utilizzano file di chiavi di firma sulla workstation locale creati dal plug-in della CLI TKE e non si utilizza un servizio di firma di terzi, specificare la password dell'amministratore per accedere al corrispondente file di chiavi di firma
- Se si sta utilizzando un servizio di firma per fornire chiavi di firma, specificare il token che autorizza l'utilizzo della chiave di firma in base alla definizione del servizio di firma.
Nota: il parametro token è facoltativo. Se non specifichi il token, ti viene richiesto di immettere il valore del token quando esegui i comandi Terraform. Dopo l'inizializzazione dell'istanza, il valore immesso per il parametro token viene memorizzato in un file
.tfstate. Per ulteriori informazioni sulla protezione dei dati sensibili in Terraform, consulta Dati sensibili nello stato.signature_server_urlFacoltativo. L'URL e il numero di porta in cui è in esecuzione il servizio di firma. Se si utilizza un servizio di firma di terze parti per fornire le chiavi di firma dell'amministratore, è necessario specificare questo parametro. Se gestisci più istanze del servizio nel file
main.tf, assicurati di impostare lo stesso parametrosignature_server_urlper ogni istanza. In caso contrario, non sarà possibile eseguire correttamente le azioni. -
Inizializza la CLI Terraform con il seguente comando.
terraform init -
Crea un piano di esecuzione Terraform con il seguente comando. Il piano di esecuzione Terraform riepiloga tutte le azioni che devono essere eseguite per creare l'istanza Hyper Protect Crypto Services nell'account.
terraform plan -
Crea e inizializza l'istanza Hyper Protect Crypto Services applicando Terraform.
terraform apply -
Controlla se l'istanza Hyper Protect Crypto Services viene creata e inizializzata dall'elenco di risorseIBM Cloud.
-
Verificare che la politica di accesso sia stata assegnata correttamente. Per ulteriori informazioni, vedi Revisione dell'accesso assegnato nell'IU.
Operazioni successive
Per ulteriori informazioni sull'utilizzo di Terraform per gestire le istanze Hyper Protect Crypto Services con Unified Key Orchestrator, consulta la seguente documentazione Terraform: