Integrazione di Key Protect

I dati memorizzati nei IBM Cloud® database sono crittografati per impostazione predefinita utilizzando chiavi generate in modo casuale. Per controllare le chiavi di crittografia, è possibile portare la propria chiave (BYOK) attraverso IBM Key Protect e utilizzare una delle proprie chiavi per crittografare i database e i backup.

Il presente documento riguarda l'integrazione di Key Protect con Cloud Databases, che include Databases for PostgreSQL, Databases for MongoDB, Databases for Redis, Databases for Elasticsearch, IBM Cloud® Databases for MySQL, e Messages for RabbitMQ.

Per iniziare, è necessario Key Protect provisioning sul proprio IBM Cloud account.

Creazione o aggiunta di una chiave in Key Protect

Andare alla propria istanza di Key Protect e generare o inserire una chiave.

Concessione dell'autorizzazione al servizio nell'interfaccia utente

Autorizza Key Protect per l'utilizzo con le distribuzioni Cloud Databases:

  1. Apri il tuo dashboard IBM Cloud.
  2. Dalla barra dei menu, clicca su Gestisci-> Accesso (IAM).
  3. Nella navigazione laterale, fai clic su Autorizzazioni.
  4. Fai clic su Crea.
  5. Nel menu Servizio sorgente, selezionare il servizio della distribuzione. Ad esempio, Databases for PostgreSQL o Messages for RabbitMQ
  6. Nel menu Risorse del servizio di origine, selezionare Tutte le risorse.
  7. Nel menu Target service, seleziona Key Protect.
  8. Selezionare o mantenere il valore predefinito Account come gruppo di risorse per il servizio di destinazione
  9. Nel menu ID istanza servizio di destinazione, selezionare le istanze di servizio da autorizzare.
  10. Abilita il ruolo Lettore.
  11. Per utilizzare "Bring your own key" (BYOK) per i backup, selezionare la casella Abilita autorizzazioni da delegare nella sezione Autorizza servizi dipendenti.
  12. Fai clic su Autorizza.

Se l'autorizzazione del servizio non è presente prima del provisioning dell'installazione client con una chiave, il provisioning non riesce.

Utilizzo della chiave Key Protect

Una volta concessa alle tue distribuzioni Cloud Databases l'autorizzazione per utilizzare le tue chiavi, fornisci il nome chiave o il CRN quando esegui il provisioning di una distribuzione. La distribuzione utilizza la tua chiave di crittografia per crittografare i tuoi dati.

Utilizzo del Key Protect nell'interfaccia utente

Se si esegue il provisioning dalla pagina del catalogo, selezionare l'istanza e la Key Protect dai menu a discesa.

Utilizzo della Key Protect nella CLI

Nella CLI, utilizzare il parametro disk_encryption_key_crn nell'oggetto JSON parameters.

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-NAME> standard us-south \
-p \ '{
  "disk_encryption_key_crn": "crn:v1:<...>:key:<id>"
}'

La Key Protect chiave deve essere identificata tramite il suo CRN completo, non solo tramite il suo ID. Un codice CRN di protezione chiave è nel formato crn:v1:<...>:key:<id>.

Utilizzo della Key Protect chiave nell'API

Nell'API, utilizzare il parametro disk_encryption_key nel corpo della richiesta.

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "blue-us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-x-standard",
    "disk_encryption_key_crn": "crn:v1:<...>:key:<id>"
  }'

La Key Protect chiave deve essere identificata tramite il suo CRN completo, non solo tramite il suo ID. Un codice CRN di protezione chiave è nel formato crn:v1:<...>:key:<id>.

Rotazione delle chiavi

Key Protect offers manual and automatic rotazione dei tasti and key rotation is supported by Cloud Databases deployments. Quando si ruota una chiave, il processo avvia un'attività di sincronizzazione dello stato KMS e l'installazione client viene crittografata nuovamente con la nuova chiave. L'attività viene visualizzata nella pagina Attività della Panoramica dell'installazione client e gli eventi Key Protect e Cloud Databases associati vengono inviati ad Activity Tracker.

Per ulteriori informazioni, vedere Rotazione manuale o automatica.

Eliminazione di una distribuzione

Se elimini una distribuzione protetta con una Key Protect chiave, la distribuzione rimane registrata con la chiave durante il periodo di eliminazione temporanea (fino a 9 giorni). Per cancellare la chiave nel periodo di cancellazione morbida, forzare la cancellazione della chiave. Dopo il periodo di eliminazione temporanea, la chiave può essere eliminata senza forzatura. Per determinare quando è possibile eliminare la chiave, verificare l'associazione tra la chiave e l'installazione client.

Eliminazione in modo crittografico

L'eliminazione in modo crittografico è un'azione distruttiva. Quando la chiave viene eliminata, i dati diventano irrecuperabili.

Key Protect ti consente di avviare un'eliminazione forzata di una chiave che viene utilizzata dai servizi IBM Cloud®, incluse le tue distribuzioni Cloud Databases. Questa azione viene chiamata eliminazione in modo crittografico. L'eliminazione di una chiave in uso nella distribuzione blocca i dischi che contengono i dati e disabilita la distribuzione. È ancora possibile accedere all'interfaccia utente e ad alcuni metadati, come le impostazioni di sicurezza nell'interfaccia utente, nella CLI e nell'API, ma non è possibile accedere a nessuna delle banche dati o ai dati in esse contenuti. La cancellazione della chiave viene inviata a Activity Tracker Event Routing come kms.secrets.delete.

Portate la vostra chiave per i backup

Se si usa Key Protect, quando si esegue il provisioning di un database si può anche designare una chiave per crittografare il disco di Cloud Object Storage che contiene i backup dell'implementazione.

BYOK per i backup è disponibile solo nelle regioni statunitensi us-south e us-east, e eu-de.

Solo le chiavi in us-south e eu-de sono resistenti ai guasti della regione. Per garantire la disponibilità dei backup anche in caso di guasto della regione, è necessario utilizzare una chiave di tipo us-south o eu-de, indipendentemente dalla posizione dell'installazione.

Rilascio dell'autorizzazione alla delega

Per consentire all'installazione di utilizzare la Key Protect, è necessario abilitare l'autorizzazione da delegare quando si concedono le autorizzazioni del servizio. Se l'autorizzazione di delega non è presente prima del provisioning dell'installazione client con una chiave, il provisioning non riesce.

Utilizzo della chiave a disposizione nella CLI

Dopo aver ottenuto l'autorizzazione e la delega appropriate, si fornisce il nome della chiave o il CRN quando si esegue il provisioning di un'installazione client.

Nella CLI, utilizzare il parametro backup_encryption_key_crn nell'oggetto JSON parameters.

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-NAME> standard us-south \
-p \ '{
  "backup_encryption_key_crn": "crn:v1:<...>:key:<id>"
}'

Utilizzo della chiave a disposizione nell'API

Nell'API, utilizzare il parametro backup_encryption_key_crn nel corpo della richiesta.

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "blue-us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-x-standard",
    "backup_encryption_key_crn": "crn:v1:<...>:key:<id>"
  }'

Dopo aver abilitato la delega e aver effettuato il provisioning dell'installazione, vengono visualizzate due voci nelle Autorizzazioni in IAM. Una è la voce dell'installazione client che riporta il suo stato di delegatore. È "Creato dall'utente".

Esempio di delegatore Key Protect Autorizzazione
Ruolo Origine Destinazione Immettere
AuthorizationDelegator, Lettore <cloud-databases> servizio Key Protect Servizio Definito dall'utente

E uno per il bucket Cloud Object Storage per i suoi backup, dove l'implementazione è l'iniziatore.

Esempio di autorizzazione Key Protect per l'Cloud Object Storage da Cloud Databases
Ruolo Origine Destinazione Immettere
Lettore Cloud Object Storage servizio Key Protect Servizio Creato da <cloud-databases-crn>

Rimozione delle chiavi

IAM/KeyKey Protect non impedisce di rimuovere il criterio tra la chiave e il Cloud Object Storage (secondo esempio), ma ciò può rendere i backup non ripristinabili. Per evitare che ciò accada, se si elimina il criterio Cloud Object Storage che regola la capacità di Cloud Databases di utilizzare la chiave per Cloud Object Storage, il criterio viene ricreato per continuare a eseguire il backup della distribuzione.

Fare attenzione quando si rimuovono le chiavi e le autorizzazioni. Se si dispone di più distribuzioni che utilizzano le stesse chiavi, è possibile distruggere inavvertitamente i backup di tutte le distribuzioni revocando l'autorizzazione di delega. Se possibile, non utilizzare la stessa chiave per i backup di più distribuzioni.

Se si desidera distruggere i backup, è possibile eliminare la chiave. Il Cloud Object Storage garantisce che lo storage sia illeggibile e non scrivibile. Tuttavia, tutte le altre distribuzioni che utilizzano la stessa chiave per i backup subiscono successivi errori di backup.

Se si richiede l'uso della stessa chiave per i backup di più distribuzioni, la rimozione delle chiavi e delle autorizzazioni può avere i seguenti effetti collaterali.

  • Se si elimina solo l'autorizzazione di Cloud Object Storage (come si vede nella Tabella 2), non solo l'installazione client indicata come creatrice ne risente, ma anche tutte le installazioni che utilizzano la stessa chiave. Queste distribuzioni possono avere temporanei errori di backup fino a quando il criterio non viene ricreato automaticamente. Non dovrebbero esserci effetti duraturi, a parte la perdita dei backup.
  • Se si elimina solo l'autorizzazione del delegatore di Cloud Databases, che è stata creata dall'utente (come si vede nella Tabella 1), non si interrompe immediatamente nulla perché la seconda autorizzazione è ancora in vigore. Tuttavia, se l'autorizzazione di Cloud Object Storage viene rimossa, non può essere ricreata e può far sì che più distribuzioni che utilizzano la stessa chiave perdano la capacità di eseguire il backup.
  • Se si eliminano sia l'autorizzazione Cloud Object Storage che l'autorizzazione Cloud Databases delegator, tutte le distribuzioni che utilizzano la stessa chiave non avranno immediatamente la possibilità di eseguire il backup e le autorizzazioni corrette non potranno essere ricreate, distruggendo di fatto i backup per tutte le distribuzioni che utilizzano quella chiave.

Fate attenzione se riutilizzate le chiavi.