Standardmäßig verschlüsselt Google Cloud inaktive Daten automatisch mit von Google verwalteten Verschlüsselungsschlüsseln. Wenn Sie bestimmte Compliance- oder regulatorische Anforderungen in Bezug auf die Schlüssel zum Schutz Ihrer Daten haben, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) für Ihre Cloud Healthcare API-Datasets verwenden. Anstatt die Verschlüsselungsschlüssel zum Schutz Ihrer Daten von Google zu besitzen und zu verwalten, werden Ihre Cloud Healthcare API-Datasets mit einem Schlüssel verschlüsselt, den Sie in Cloud Key Management Service (Cloud KMS) steuern und verwalten.
Weitere Informationen zu CMEK im Allgemeinen sowie dazu, wann und warum Sie ihn aktivieren sollten, finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).
Hinweise
Legen Sie fest, ob sich das Cloud Healthcare API-Dataset und Cloud KMS im selben Google Cloud-Projekt oder in verschiedenen Google Cloud-Projekten befinden. Weitere Informationen finden Sie unter Aufgabentrennung.
Zur Dokumentation werden die folgenden Konventionen verwendet:
PROJECT_ID
: die Projekt-ID der Cloud Healthcare APIKMS_PROJECT_ID
: die Projekt-ID, in der Cloud KMS ausgeführt wird. Sie kann mitPROJECT_ID
identisch sein.
Weitere Informationen zu Google Cloud-Projekt-IDs und -Projektnummern finden Sie unter Projekte identifizieren.
Beschränkungen
- Sie können Cloud KMS-Schlüssel nur beim Erstellen eines Datasets der Cloud Healthcare API verwenden. Sie können Cloud KMS-Schlüssel für ein vorhandenes Cloud Healthcare API-Dataset nicht aktivieren, ändern oder deaktivieren.
- In CMEK-verschlüsselten Datasets werden nur FHIR-, DICOM- und HL7v2-Speicher unterstützt. Der CMEK-Schutz gilt für DICOM-, FHIR- und HL7v2-Speicher im Dataset und deren Ressourcen.
- Sie können CMEK-verschlüsselte Ressourcen nicht de-identifizieren.
CMEK-Vorgänge
Cloud KMS-Schlüssel werden verwendet, wenn eine CMEK-verschlüsselte Ressource erstellt, gelesen, aktualisiert oder gelöscht wird, und für operative Aufgaben wie die Abrechnung oder die Verfügbarkeit des Schlüssels.
Überlegungen zu externen Schlüsseln
Informationen zur Verwendung von Schlüsseln, die Sie in einem unterstützten Partnersystem für die externe Schlüsselverwaltung verwalten, um Daten in Google Cloud zu schützen, finden Sie unter Cloud External Key Manager.
Wenn Sie Schlüssel verlieren, die Sie außerhalb von Google Cloud verwalten, kann Google Ihre Daten nicht wiederherstellen.
Nichtverfügbarkeit von Schlüsseln und Datenverlust
Wenn ein Dataset mit einem Schlüssel verschlüsselt ist und dieser Schlüssel nicht mehr verfügbar ist, wird das Dataset von der Cloud Healthcare API deaktiviert und schließlich gelöscht. Manchmal ist ein Schlüssel nicht mehr verfügbar, wenn er deaktiviert oder gelöscht wurde oder aufgrund widerrufener Berechtigungen nicht mehr zugänglich ist. Dieses Verhalten tritt jedoch auf, wenn der Schlüssel aus irgendeinem Grund nicht verfügbar ist. Das Schutzniveau des Schlüssels oder die Tatsache, ob es sich um einen externen Schlüssel handelt, haben keinen Einfluss auf dieses Verhalten. Auch externe Schlüssel können unvorhersehbar ausfallen. Beispielsweise können Verbindungsprobleme zwischen Ihren Google Cloud-Ressourcen und Ihrem EKM auftreten.
Im Folgenden wird beschrieben, wie die Schlüsselverfügbarkeit geprüft wird und wie ein Dataset deaktiviert und gelöscht werden kann:
Nachdem ein CMEK-verschlüsseltes Cloud Healthcare API-Dataset erstellt wurde, prüft die Cloud Healthcare API alle fünf Minuten den Status des Schlüssels, um sicherzustellen, dass der Schlüssel verfügbar ist. Wenn der Schlüssel nicht verfügbar ist, unterstützt die Cloud Healthcare API noch bis zu eine Stunde lang Anfragen an das Dataset.
Wenn die Cloud Healthcare API nach einer Stunde immer noch keine Verbindung zu Cloud KMS herstellen kann, wird das Cloud Healthcare API-Dataset als Schutzmaßnahmen deaktiviert. Wenden Sie sich an Ihren Supportmitarbeiter, um das Cloud Healthcare API-Dataset wieder zu aktivieren.
Wenn diese Option deaktiviert ist, können Sie nur
datasets.get
- unddatasets.delete
-Anfragen an das Cloud Healthcare API-Dataset senden. Andere Anfragen schlagen mit dem Fehler400 FAILED_PRECONDITION
fehl.Wenn das Cloud Healthcare API-Dataset länger als 30 Tage nicht verfügbar ist, wird es endgültig gelöscht. Alle DICOM-, FHIR- und HL7v2-Speicher im Dataset und die zugehörigen Daten werden ebenfalls gelöscht. Gelöschte Daten können nicht wiederhergestellt werden.
Schlüsselerstellung
In den folgenden Abschnitten wird beschrieben, wie Sie einen Cloud KMS-Schlüsselbund und -Schlüssel erstellen. Es werden nur symmetrische Verschlüsselungsschlüssel von Cloud KMS unterstützt.
Unterstützte Standorte
Cloud KMS-Schlüssel sind an den Standorten der Cloud Healthcare API verfügbar. Erstellen Sie den Schlüsselbund an einem Standort, der der Region oder Multiregion Ihres Cloud Healthcare API-Datasets entspricht.
Jedes multiregionale Cloud Healthcare API-Dataset muss einen multiregionalen Schlüsselbund aus einem übereinstimmenden Standort verwenden. Beispiel: Ein Cloud Healthcare API-Dataset in der Region
us
muss mit einem Schlüsselbund aus der Regionus
und ein Cloud Healthcare API-Dataset in der Regioneu
mit einem Schlüsselbund aus der Regioneurope
geschützt sein.Regionale Cloud Healthcare API-Datasets müssen übereinstimmende regionale Schlüssel verwenden. Beispielsweise muss ein Cloud Healthcare API-Dataset in der Region
asia-northeast1
mit einem Schlüsselbund aus der Regionasia-northeast1
geschützt werden.Sie können die Region
global
nicht verwenden, wenn Sie einen CMEK für ein Cloud Healthcare API-Dataset konfigurieren.
Weitere Informationen finden Sie unter Cloud Healthcare API-Standorte und Cloud KMS-Standorte.
Schlüsselbund und Schlüssel erstellen
Führen Sie die folgenden Schritte im Google Cloud-Projekt aus, in dem Cloud KMS ausgeführt wird:
Berechtigungen zur Verschlüsselung und Entschlüsselung erteilen
Gewähren Sie dem Dienstkonto Cloud Healthcare Service Agent die Rolle CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter
) für diesen Schlüssel, um Ihre Cloud Healthcare API-Daten mit einem Cloud KMS-Schlüssel zu schützen. Eine Anleitung finden Sie unter Dataset-CMEK-Berechtigungen.
Nachdem dem Dienstkonto die Rolle zugewiesen wurde, kann die Cloud Healthcare API CMEK-verschlüsselte Ressourcen verschlüsseln und entschlüsseln. Ihre Anwendungen müssen beim Lesen oder Schreiben von Daten keine Schlüssel angeben. Die Cloud Healthcare API übernimmt die Verschlüsselung.
Wenn ein Anforderer ein mit einem Cloud KMS-Schlüssel verschlüsseltes Objekt liest oder schreibt, greift er wie gewohnt auf das Objekt zu. Während der Anfrage verschlüsselt oder entschlüsselt der Dienst-Agent das angeforderte Objekt automatisch, sofern die beiden folgenden Bedingungen erfüllt sind:
- Der Dienst-Agent hat weiterhin die erforderlichen Berechtigungen.
- Der Schlüssel ist verfügbar und aktiviert.
CMEK-verschlüsseltes Cloud Healthcare API-Dataset erstellen
In den folgenden Beispielen wird gezeigt, wie Sie ein CMEK-verschlüsseltes Dataset erstellen.
Beim Erstellen des Datasets müssen Sie eine Cloud KMS-Schlüsselressourcen-ID angeben. Bei diesem Schlüssel wird zwischen Groß- und Kleinschreibung unterschieden und er hat das folgende Format:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Informationen zum Aufrufen Ihrer Cloud KMS-Schlüsselressourcen-IDs finden Sie unter Cloud KMS-Ressourcen-ID abrufen.
Console
Rufen Sie in der Google Cloud Console die Seite Browser auf.
Klicken Sie auf add_box Dataset erstellen. Die Seite Dataset erstellen wird angezeigt.
Geben Sie im Feld Name eine Kennzeichnung für das Dataset ein, die den zulässigen Zeichen und Größenanforderungen für Datasets entspricht.
Wählen Sie einen der folgenden Standorttypen aus:
Region Das Dataset befindet sich dauerhaft in einer Google Cloud-Region. Nachdem Sie diese Option ausgewählt haben, geben oder wählen Sie einen Ort in das Feld Region aus.
Mehrere Regionen: Das Dataset befindet sich dauerhaft an einem Standort, der sich über mehrere Google Cloud-Regionen erstreckt. Nachdem Sie diese Option ausgewählt haben, geben oder wählen Sie einen multiregionalen Standort in das Feld Multi-region (Mehrere Regionen) ein.
Wählen Sie im Abschnitt Verschlüsselung einen der folgenden Verschlüsselungstypen aus:
Von Google verwalteter Verschlüsselungsschlüssel: Das ist die Standardverschlüsselungsmethode. Verwenden Sie diese Methode, wenn Google die Verschlüsselungsschlüssel verwalten soll, die Ihre Daten in diesem Cloud Healthcare API-Dataset schützen.
Cloud KMS-Schlüssel: Verwenden Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK).
Klicken Sie auf Erstellen. Die Seite Browser wird angezeigt. Das neue Dataset wird in der Liste der Datasets angezeigt.
REST
Erstellen Sie das Dataset mit der Methode
datasets.create
.Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsLOCATION
: ein unterstützter Standort für das DatasetDATASET_ID
: eine Kennung, die den zulässigen Zeichen und Größenanforderungen für Datasets unterliegtKEY_RESOURCE_ID
: die Ressourcen-ID für einen Cloud KMS-Schlüssel im Formatprojects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
JSON-Text anfordern:
{ "encryptionSpec": { "kmsKeyName": "KEY_RESOURCE_ID" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:cat > request.json << 'EOF' { "encryptionSpec": { "kmsKeyName": "KEY_RESOURCE_ID" } } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:@' { "encryptionSpec": { "kmsKeyName": "KEY_RESOURCE_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$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 ContentAPIs Explorer
Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.
OPERATION_ID
. Sie benötigen diesen Wert im nächsten Schritt.Rufen Sie den Status des lang andauernden Vorgangs mit der Methode
projects.locations.datasets.operations.get
ab.Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsLOCATION
ist der Standort des DatasetsDATASET_ID
ist die Dataset-IDOPERATION_ID
ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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 ContentAPIs Explorer
Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen.
Ermitteln, ob ein Dataset durch Cloud KMS geschützt ist
Für jeden Schlüssel, den Sie erstellt haben oder der Ihre Cloud Healthcare API-Datasets schützen, können Sie sehen, welche Ressourcen dieser Schlüssel durch die Nachverfolgung der Schlüsselnutzung schützt. Weitere Informationen finden Sie unter Schlüsselnutzung ansehen.
Schlüsselrotation
Cloud KMS unterstützt sowohl die automatische als auch die manuelle Schlüsselrotation auf eine neue Version.
Das Rotieren eines Schlüssels führt zu Folgendem:
- Cloud Healthcare API-Datasets, die nach der Rotation erstellt werden, verwenden die neue Schlüsselversion für die Verschlüsselung und alle Vorgänge.
- Ressourcen in einem vorhandenen Dataset, die mit dem Schlüssel verschlüsselt sind, werden nicht automatisch mit der neuen Primärschlüsselversion neu verschlüsselt.
Damit die Verschlüsselung funktioniert, müssen alle Schlüsselversionen verfügbar sein. Andernfalls wird das Cloud Healthcare API-Dataset deaktiviert und alle Anfragen an das Dataset schlagen fehl. Weitere Informationen finden Sie unter Überlegungen zu externen Schlüsseln und Deaktivierte Datasets und dauerhaftes Löschen von Datasets.
Zugriff der Cloud Healthcare API auf den Cloud KMS-Schlüssel entfernen
Sie haben die Kontrolle über Ihre Schlüssel und können Berechtigungen für den Schlüssel deaktivieren, löschen oder widerrufen, sodass die Cloud Healthcare API nicht auf CMEK-verschlüsselte Daten zugreifen kann. Nachdem Sie einen Schlüssel oder eine Schlüsselversion gelöscht haben, die mit einem Cloud Healthcare API-Dataset verknüpft ist, gehen alle mit diesem Schlüssel oder dieser Schlüsselversion verschlüsselten Daten dauerhaft verloren.
Zwischen dem Deaktivieren eines Schlüssels oder einer Schlüsselversion gibt es eine Verzögerung, wenn diese nicht mehr verwendet werden können. Außerdem gibt es eine Verzögerung zwischen dem Widerrufen der Berechtigungen des Dienstkontos des Cloud Healthcare-Dienst-Agents für den Schlüssel und dem Zeitpunkt, zu dem der Zugriff nicht mehr möglich ist. Weitere Informationen finden Sie unter Konsistenz von Cloud KMS-Ressourcen.
Daten in eine CMEK-fähige Instanz exportieren und importieren
Damit Ihre Daten während eines Exportvorgangs mit einem vom Kunden verwalteten Schlüssel verschlüsselt bleiben, müssen Sie vor Beginn des Exports einen CMEK für das Speicherziel festlegen. Wenn Sie Daten aus einem nicht CMEK- oder CMEK-verschlüsselten Speicher importieren, gibt es keine besonderen Anforderungen oder Einschränkungen für den Import von Daten in ein CMEK-verschlüsseltes Dataset.
Einschränkungen
- Key Access Justifications mit Cloud External Key Manager wird nicht unterstützt.
- Es gibt ein Limit von 10 CMEK-Datasets pro Projekt in einem Zeitraum von 30 Tagen. Dieses Kontingent wird durch den Kontingentmesswert
cmek_datasets
erzwungen. - VPC Service Controls mit CMEK wird nicht unterstützt.
- CMEK-Organisationsrichtlinien werden nicht unterstützt.
Preise
Datasets werden gleich abgerechnet, unabhängig davon, ob sie CMEK-verschlüsselt sind. Weitere Informationen finden Sie unter Cloud Healthcare API – Preise.
Ihnen werden von Cloud KMS sowohl die Kosten für den Schlüssel als auch alle kryptografischen Vorgänge mit diesem Schlüssel in Rechnung gestellt. Diese Vorgänge werden ausgeführt, wenn die Cloud Healthcare API den Schlüssel zur Verschlüsselung oder Entschlüsselung verwendet. Basierend auf der erwarteten Anzahl von kryptografischen Vorgängen, die von der Cloud Healthcare API generiert werden, können Sie davon ausgehen, dass diese Kosten minimal sind. Weitere Informationen finden Sie unter Cloud KMS – Preise.
Cloud KMS-Kontingente und Cloud Healthcare API
Wenn Sie CMEK in der Cloud Healthcare API verwenden, können Ihre Projekte Cloud KMS-Kontingente für kryptografische Anfragen nutzen. CMEK-verschlüsselte Cloud Healthcare API-Datasets und ihre DICOM-, FHIR- und HL7v2-Speicher nutzen diese Kontingente für alle Vorgänge außer datasets.get
. Ver- und Entschlüsselungsvorgänge über CMEK-Schlüssel wirken sich nur dann auf Cloud KMS-Kontingente aus, wenn Sie Hardware- (Cloud HSM) oder externe Schlüssel (Cloud EKM) verwenden.
Weitere Informationen finden Sie unter Cloud KMS-Kontingente.
Nächste Schritte
- Weitere Informationen zu CMEK im Allgemeinen sowie dazu, wann und warum Sie ihn aktivieren sollten, finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).