Per impostazione predefinita, Google Cloud cripta i dati quando sono at-rest mediante chiavi di crittografia gestiti da Google. Se hai requisiti di conformità o normativi specifici relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per i tuoi set di dati dell'API Cloud Healthcare. Invece di lasciare che sia Google a possedere e gestire le chiavi di crittografia che proteggono i tuoi i set di dati dell'API Cloud Healthcare sono criptati utilizzando una chiave che puoi controllare e gestire Cloud Key Management Service (Cloud KMS).
Per ulteriori informazioni su CMEK in generale, per sapere quando e perché attivarle, vedi Chiavi di crittografia gestite dal cliente (CMEK).
Prima di iniziare
Decidi se il set di dati dell'API Cloud Healthcare e Cloud KMS si troveranno nello stesso progetto Google Cloud o in progetti diversi. Per indicazioni, consulta Separazione dei compiti.
Ai fini della documentazione, vengono usate le seguenti convenzioni:
PROJECT_ID
: l'ID progetto dell'API Cloud HealthcareKMS_PROJECT_ID
: l'ID progetto in cui Cloud KMS che potrebbe essere uguale aPROJECT_ID
Per informazioni sugli ID e sui numeri di progetto di Google Cloud, consulta Identificazione dei progetti.
Limitazioni
- Puoi utilizzare le chiavi Cloud KMS solo quando crei un dataset dell'API Cloud Healthcare. Non puoi abilitare, modificare o disabilitare le chiavi Cloud KMS su un'API Cloud Healthcare esistente del set di dati.
- Nei set di dati criptati con CMEK sono supportati solo gli archivi FHIR, DICOM e HL7v2. La protezione CMEK si applica agli archivi DICOM, FHIR e HL7v2 nel set di dati e le relative risorse.
- Non puoi anonimizzare le risorse criptate con CMEK.
Operazioni CMEK
Le chiavi Cloud KMS vengono utilizzate quando una risorsa criptata con CMEK viene creata, letta, aggiornata o eliminati, nonché per attività operative come la fatturazione o la verifica della disponibilità della chiave.
Considerazioni chiave esterne
Per informazioni sull'utilizzo delle chiavi gestite all'interno di un sistema esterno di gestione delle chiavi supportato da un partner per proteggere i dati al loro interno Google Cloud, consulta Cloud External Key Manager.
Se perdi le chiavi che gestisci al di fuori di Google Cloud, Google non potrà recuperare i dati.
Indisponibilità della chiave e perdita di dati
Se un set di dati è criptato da una chiave e questa chiave non è più disponibile e rimane non disponibile, l'API Cloud Healthcare disabilita ed elimina il set di dati. A volte, una chiave non è più disponibile se viene disabilitata o eliminata oppure se è inaccessibile a causa di autorizzazioni revocate, ma questo comportamento si verifica se non è disponibile per qualsiasi motivo. Il livello di protezione della chiave o se si tratta di una chiave esterna non influisce su questo comportamento. Anche le chiavi esterne potrebbero non essere più disponibili in modo imprevedibile. Ad esempio, potrebbero sorgere problemi di connettività le risorse Google Cloud e il tuo EKM.
La procedura seguente descrive come viene verificata la disponibilità delle chiavi e come è possibile disabilitare ed eliminare un set di dati:
Dopo la creazione di un set di dati dell'API Cloud Healthcare criptato con CMEK, L'API Cloud Healthcare controlla lo stato della chiave ogni cinque minuti per assicurarti che la chiave sia disponibile. Se la chiave non è disponibile, l'API Cloud Healthcare continua a supportare le richieste al set di dati per un massimo di un'ora.
Dopo un'ora, se l'API Cloud Healthcare non è ancora in grado di connettersi Cloud KMS, il set di dati dell'API Cloud Healthcare è disabilitato come protezione misurare. Per riattivare il set di dati dell'API Cloud Healthcare, contatta il tuo rappresentante dell'assistenza.
Quando l'opzione è disattivata, puoi inviare solo
datasets.get
edatasets.delete
richieste al set di dati dell'API Cloud Healthcare. Altre richieste non vanno a buon fine con un errore400 FAILED_PRECONDITION
.Se il set di dati dell'API Cloud Healthcare rimane non disponibile per più di 30 giorni, viene eliminato definitivamente. Qualsiasi datastore DICOM, FHIR e HL7v2 nel set di dati e dati associati vengono eliminati. Se vengono eliminati, questi dati non possono essere recuperati.
Creazione di chiavi
Le sezioni seguenti descrivono come creare un keyring di Cloud KMS e chiave. Sono supportate solo le chiavi di crittografia simmetriche di Cloud KMS.
Località supportate
Le chiavi Cloud KMS sono disponibili nelle località dell'API Cloud Healthcare. Crea il keyring in un località corrispondente a una o più regioni del tuo set di dati dell'API Cloud Healthcare.
Qualsiasi set di dati dell'API Cloud Healthcare in più regioni deve utilizzare un keyring multiregionale di una località corrispondente. Ad esempio, un set di dati dell'API Cloud Healthcare nella regione
us
deve essere protetto con un keyring della regioneus
e un set di dati dell'API Cloud Healthcare nella regioneeu
deve essere protetta con un keyring della regioneeurope
.I set di dati dell'API Cloud Healthcare regionale devono utilizzare chiavi regionali corrispondenti. Ad esempio: un set di dati dell'API Cloud Healthcare nella regione
asia-northeast1
deve essere protetto con una chiave squilla dalla regioneasia-northeast1
.Non puoi utilizzare la regione
global
durante la configurazione di CMEK per set di dati dell'API Cloud Healthcare.
Per ulteriori informazioni, consulta Località dell'API Cloud Healthcare e le località Cloud KMS.
Crea un keyring e una chiave
Completa i seguenti passaggi nel progetto Google Cloud che esegue Cloud KMS:
Concedi autorizzazioni di crittografia e decrittografia
Per proteggere i dati dell'API Cloud Healthcare con una chiave Cloud KMS, concedi all'account di servizio Agente di servizio Cloud Healthcare il ruolo Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter
) per quella chiave. Per istruzioni, vedi
Autorizzazioni CMEK set di dati.
Dopo aver concesso il ruolo all'account di servizio, l'API Cloud Healthcare può criptare e decriptare le risorse criptate con CMEK. Non è necessario che le tue applicazioni e specificare chiavi durante la lettura o la scrittura dei dati. L'API Cloud Healthcare gestisce la crittografia.
Quando un richiedente legge o scrive un oggetto criptato con una chiave Cloud KMS, accede all'oggetto normalmente. Durante la richiesta, l'agente di servizio cripta automaticamente o decripta l'oggetto richiesto, a condizione che siano soddisfatte entrambe le seguenti condizioni:
- L'agente di servizio dispone ancora delle autorizzazioni necessarie.
- La chiave è disponibile e abilitata.
Creare un set di dati dell'API Cloud Healthcare con crittografia CMEK
Gli esempi riportati di seguito mostrano come creare un set di dati con crittografia CMEK.
Devi specificare un ID risorsa della chiave Cloud KMS durante la creazione il set di dati. Questa chiave è sensibile alle maiuscole e nel seguente formato:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Per visualizzare gli ID risorsa della chiave Cloud KMS, consulta Recupero di un ID risorsa di Cloud KMS.
Console
Nella console Google Cloud, vai alla pagina Browser.
Fai clic su add_box Crea set di dati. Viene visualizzata la pagina Crea set di dati.
Nel campo Nome, inserisci un identificatore per il set di dati soggetto alla caratteri consentiti per i set di dati e requisiti relativi alle dimensioni.
Seleziona uno dei seguenti tipi di località:
Regione. Il set di dati risiede definitivamente all'interno di una regione Google Cloud. Dopo aver selezionato questa opzione, digita o seleziona una località nel campo Regione.
Più regioni. Il set di dati risiede definitivamente all'interno di una località in più regioni Google Cloud. Dopo aver selezionato questa opzione, digita o seleziona Una località multiregionale nel campo Più regioni.
Nella sezione Crittografia, seleziona uno dei seguenti tipi di crittografia:
Chiave di crittografia gestita da Google: il metodo di crittografia predefinito. Utilizza questo metodo se vuoi che Google gestisca le chiavi di crittografia che e proteggere i tuoi dati nel set di dati dell'API Cloud Healthcare.
Chiave Cloud KMS: utilizza una chiave di crittografia gestita dal cliente (CMEK).
Fai clic su Crea. Viene visualizzata la pagina Browser. Il nuovo set di dati viene visualizzato nell'elenco dei set di dati.
gcloud
Crea il set di dati utilizzando il comando gcloud healthcare datasets create
.
Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:
DATASET_ID
: Un identificatore soggetto ai requisiti relativi alle dimensioni e ai caratteri consentiti del set di datiLOCATION
: una località supportata per il set di datiKEY_RESOURCE_ID
: l'ID risorsa di una chiave Cloud KMS, nel formatoprojects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Esegui la persone che seguo :
Linux, macOS o Cloud Shell
gcloud healthcare datasets create DATASET_ID \ --location=LOCATION \ --encryption-key=KEY_RESOURCE_ID
Windows (PowerShell)
gcloud healthcare datasets create DATASET_ID ` --location=LOCATION ` --encryption-key=KEY_RESOURCE_ID
Windows (cmd.exe)
gcloud healthcare datasets create DATASET_ID ^ --location=LOCATION ^ --encryption-key=KEY_RESOURCE_ID
Dovresti ricevere una risposta simile alla seguente:
Create request issued for: [DATASET_ID] Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete... Created dataset [DATASET_ID].
REST
Crea il set di dati utilizzando il metodo
datasets.create
.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo progetto Google CloudDATASET_ID
: Un identificatore soggetto ai requisiti relativi alle dimensioni e ai caratteri consentiti del set di datiLOCATION
: una località supportata per il set di datiKEY_RESOURCE_ID
: l'ID risorsa di una chiave Cloud KMS, nel formatoprojects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Corpo JSON della richiesta:
{ "encryptionSpec": { "kmsKeyName": "KEY_RESOURCE_ID" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "encryptionSpec": { "kmsKeyName": "KEY_RESOURCE_ID" } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?datasetId=DATASET_ID"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "encryptionSpec": { "kmsKeyName": "KEY_RESOURCE_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?datasetId=DATASET_ID" | Select-Object -Expand ContentExplorer API
Copia il corpo della richiesta e apri pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Incolla il corpo della richiesta in questo strumento, compila gli altri campi obbligatori e fai clic su Esegui.
OPERATION_ID
. Questo valore ti servirà nel passaggio successivo.Visualizza lo stato dell'operazione a lunga esecuzione utilizzando il metodo
projects.locations.datasets.operations.get
.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo progetto Google CloudLOCATION
: la posizione del set di datiDATASET_ID
: l'ID del set di datiOPERATION_ID
: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorer API
Apri l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione.
Determina se un set di dati è protetto da Cloud KMS
Per ognuna delle chiavi che hai creato o che proteggono la tua API Cloud Healthcare puoi vedere quali risorse protegge la chiave con il monitoraggio dell'utilizzo delle chiavi. Per ulteriori informazioni, consulta Visualizzare l'utilizzo delle chiavi.
Rotazione chiave
Cloud KMS supporta la rotazione della chiave sia automatica che manuale verso una nuova versione.
La rotazione di una chiave genera quanto segue:
- I set di dati dell'API Cloud Healthcare creati dopo la rotazione utilizzano la nuova versione della chiave per la crittografia e per tutte le operazioni.
- Le risorse criptate con la chiave in un set di dati esistente non lo sono automaticamente ricriptata con la nuova versione della chiave primaria.
Affinché la crittografia funzioni, devono essere disponibili tutte le versioni della chiave. Altrimenti, il set di dati dell'API Cloud Healthcare viene disabilitato e tutte le richieste set di dati non riuscito. Per saperne di più, consulta Considerazioni chiave esterne e Set di dati disabilitati ed eliminazione permanente dei set di dati.
Rimuovi l'accesso dell'API Cloud Healthcare alla chiave Cloud KMS
Sei tu ad avere il controllo delle tue chiavi e puoi disabilitare, eliminare o revocare autorizzazioni sulla chiave, in modo che l'API Cloud Healthcare per accedere ai dati criptati con CMEK. Dopo aver distrutto una chiave o una versione della chiave associata a un set di dati dell'API Cloud Healthcare, tutti i dati criptati con la chiave o la versione della chiave vengono persi definitivamente.
Si verifica un ritardo tra il momento in cui disabiliti una chiave o la sua versione e il momento in cui non possono più essere utilizzati. C'è anche un ritardo tra il momento in cui revocare le autorizzazioni dell'account di servizio dell'agente di servizio Cloud Healthcare sulla chiave e quando può. non è più possibile accedervi. Per ulteriori informazioni, consulta la pagina relativa alla coerenza delle risorse Cloud KMS.
Esporta e importa i dati in un'istanza abilitata per CMEK
Per mantenere i dati criptati con una chiave gestita dal cliente durante un'operazione di esportazione, devi impostare una chiave CMEK sulla destinazione di archiviazione prima di iniziare l'esportazione. Non sono previsti requisiti o limitazioni speciali per l'importazione di dati in un set di dati con crittografia CMEK durante l'importazione da archiviazione non CMEK o con crittografia CMEK.
Limitazioni
- Motivazioni per l'accesso alle chiavi con Cloud External Key Manager.
- È previsto un limite di 10 set di dati CMEK per progetto in un periodo di 30 giorni. Questo
la quota viene applicata dalla metrica delle quote
cmek_datasets
. - I controlli di servizio VPC con CMEK non sono supportati.
- I criteri dell'organizzazione CMEK non sono supportati.
Prezzi
I set di dati vengono fatturati allo stesso modo, indipendentemente dal fatto che siano criptati con CMEK. Per ulteriori informazioni, consulta i prezzi dell'API Cloud Healthcare.
Cloud KMS addebita i costi sia della chiave sia di eventuali token operazioni su quella chiave. Queste operazioni si verificano quando l'API Cloud Healthcare utilizza la chiave la crittografia o la decrittografia. Questi costi dovrebbero essere minimi, in base al il numero previsto di operazioni crittografiche generate API Cloud Healthcare. Per ulteriori informazioni, vedi Prezzi di Cloud KMS.
Quote di Cloud KMS e API Cloud Healthcare
Quando usi CMEK nell'API Cloud Healthcare,
i tuoi progetti possono consumare richieste di crittografia di Cloud KMS
quote. I set di dati dell'API Cloud Healthcare criptati con CMEK e i relativi archivi DICOM, FHIR e HL7v2 utilizzano queste quote per tutte le operazioni tranne datasets.get
. Le operazioni di crittografia e decriptazione utilizzando
Le chiavi CMEK influiscono sulle quote di Cloud KMS solo se utilizzi hardware
(Cloud HSM) o chiavi esterne (Cloud EKM).
Per ulteriori informazioni, consulta
Quote di Cloud KMS.
Passaggi successivi
- Per ulteriori informazioni su CMEK in generale, per sapere quando e perché attivarle, vedi Chiavi di crittografia gestite dal cliente (CMEK).