Standardmäßig wird Google Cloud automatisch verschlüsselt ruhende Daten Verwendung von Verschlüsselungsschlüsseln verwaltet werden. Bei besonderen Compliance-Anforderungen oder gesetzlichen Vorschriften zu den Schlüsseln zum Schutz Ihrer Daten, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) für Ihre Cloud Healthcare API Datasets. Anstatt die Verschlüsselungsschlüssel, die Ihre Daten schützen, werden Ihre Cloud Healthcare API-Datasets mit einem Schlüssel verschlüsselt, den Sie in Cloud Key Management Service (Cloud KMS):
Weitere Informationen zu CMEK im Allgemeinen Informationen dazu, wann und warum sie aktiviert werden sollte, finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK).
Hinweise
Entscheiden Sie, ob Ihr Cloud Healthcare API-Dataset und Cloud KMS befindet sich im selben Google Cloud-Projekt oder in anderen zu erhalten. Weitere Informationen finden Sie unter Aufgabentrennung.
Für die 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. Das 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 Cloud Healthcare API-Datasets verwenden. Sie können Cloud KMS-Schlüssel für einen vorhandenen Cloud Healthcare API-Datensatz 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.
- CMEK-verschlüsselte Ressourcen können nicht de-identifiziert werden.
CMEK-Vorgänge
Cloud KMS-Schlüssel werden verwendet, wenn eine CMEK-verschlüsselte Ressource erstellt, gelesen, aktualisiert sowie 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ütztes externes Schlüsselverwaltungs-Partnersystem zum Schutz von Daten Google Cloud finden Sie unter Cloud External Key Manager.
Wenn Sie Schlüssel verlieren, die Sie außerhalb von Google Cloud verwalten, kann Google keine Ihre Daten 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 und bleibt nicht verfügbar ist, wird die Cloud Healthcare API deaktiviert und schließlich des Datasets. Manchmal ist ein Schlüssel nicht mehr verfügbar, wenn er deaktiviert oder gelöscht wird Aufgrund widerrufener Berechtigungen kann nicht mehr auf sie zugegriffen werden. Dieses Verhalten tritt jedoch auf, wenn der Schlüssel nicht verfügbar ist. Das Schutzniveau des Schlüssels oder ob es sich um einen externen Schlüssel handelt hat keinen Einfluss auf dieses Verhalten. Externe Schlüssel können auch unvorhersehbar nicht verfügbar sein. So können beispielsweise Verbindungsprobleme zwischen Ihrem Google Cloud-Ressourcen und Ihr EKM
Im folgenden Prozess wird beschrieben, wie die Schlüsselverfügbarkeit geprüft wird und kann ein Dataset deaktiviert und gelöscht werden:
Nachdem ein CMEK-verschlüsseltes Cloud Healthcare API-Dataset erstellt wurde, Die Cloud Healthcare API prüft den Status des Schlüssels alle fünf Minuten um sicherzustellen, dass der Schlüssel verfügbar ist. Wenn der Schlüssel nicht verfügbar ist, wird die Cloud Healthcare API fortgesetzt um Anfragen an das Dataset bis zu einer Stunde zu unterstützen.
Wenn die Cloud Healthcare API nach einer Stunde immer noch keine Verbindung zu Cloud KMS wird das Cloud Healthcare API-Dataset zum Schutz deaktiviert messen. Wenden Sie sich an Ihren Supportmitarbeiter, um das Cloud Healthcare API-Dataset wieder zu aktivieren.
Wenn diese Option deaktiviert ist, Du kannst nur
datasets.get
senden unddatasets.delete
an das Cloud Healthcare API-Dataset senden. Andere Anfragen schlagen fehl mit einen400 FAILED_PRECONDITION
-Fehler.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. Wenn sie gelöscht wurden, können diese Daten nicht wiederhergestellt werden.
Schlüsselerstellung
In den folgenden Abschnitten wird beschrieben, wie Sie einen Cloud KMS-Schlüsselbund erstellen und Schlüssel. 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 dem multiregionalen Standort Ihres Cloud Healthcare API-Datasets entspricht.
Jedes multiregionale Cloud Healthcare API-Dataset muss einen multiregionalen Schlüsselbund aus einem übereinstimmenden Standort. 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 werden.Regionale Cloud Healthcare API-Datasets müssen übereinstimmende regionale Schlüssel verwenden. Beispiel: Ein Cloud Healthcare API-Dataset in der Region
asia-northeast1
muss mit einem Schlüssel geschützt sein Ring aus Regionasia-northeast1
.Sie können die Region
global
nicht verwenden, wenn Sie einen CMEK konfigurieren für Ein Cloud Healthcare API-Dataset
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 ausgeführten Google Cloud-Projekt aus Cloud KMS:
Berechtigungen zur Verschlüsselung und Entschlüsselung erteilen
Um Ihre Cloud Healthcare API-Daten mit einem Cloud KMS-Schlüssel zu schützen, gewähren Sie die
Dienstkonto Cloud Healthcare Service Agent
CryptoKey-Verschlüsseler/Entschlüsseler (roles/cloudkms.cryptoKeyEncrypterDecrypter
)
Rolle für diesen Schlüssel hat. Anweisungen 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 nicht Schlüssel beim Lesen oder Schreiben von Daten angeben. Die Cloud Healthcare API übernimmt die Verschlüsselung.
Wenn ein Anforderer ein Objekt liest oder schreibt, Cloud KMS-Schlüssel verwenden, greifen sie wie gewohnt auf das Objekt zu. Während der Anfrage verschlüsselt oder entschlüsselt der Dienst-Agent das angeforderte Objekt automatisch, sofern beide der 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.
Sie müssen beim Erstellen des Datensatzes 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 Ansehen 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 in das Feld Name eine Kennzeichnung für das Dataset ein, für die das Feld Zulässige Zeichen und Größenanforderungen für Datasets.
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. Nachdem Sie diese Option ausgewählt haben, Standort mit mehreren Regionen im Feld Multi-region (Mehrere Regionen)
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.
gcloud
Erstellen Sie das Dataset mit dem Befehl gcloud healthcare datasets create
.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
DATASET_ID
: Eine Kennung, die den zulässigen Zeichen und Größenanforderungen für Datasets unterliegtLOCATION
: ein unterstützter Standort für das DatasetKEY_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
Führen Sie folgenden Befehl aus:
Linux, macOS oder 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
Sie sollten eine Antwort ähnlich der folgenden erhalten:
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
Erstellen Sie das Dataset mit dem
datasets.create
. .Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsDATASET_ID
: Eine Kennung, die den zulässigen Zeichen und Größenanforderungen für Datasets unterliegtLOCATION
: ein unterstützter Standort für das DatasetKEY_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 der Anfrage:
{ "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.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsLOCATION
ist der Standort des DatasetsDATASET_ID
ist die Dataset-IDOPERATION_ID
: die ID, die vom Vorgang mit langer Ausführungszeit 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 das Methodenreferenzseite. 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, wird der lang andauernden Vorgang abgeschlossen ist.
Ermitteln, ob ein Datensatz durch Cloud KMS geschützt ist
Für jeden der Schlüssel, die Sie erstellt haben oder die Ihre Cloud Healthcare API schützen Datasets können Sie sehen, welche Ressourcen durch den Schlüssel geschützt werden. 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.
Wenn Sie einen Schlüssel rotieren, hat das folgende Auswirkungen:
- Cloud Healthcare API-Datasets, die nach der Rotation erstellt wurden, verwenden die neue Schlüsselversion für die Verschlüsselung und alle Vorgänge.
- Ressourcen in einem vorhandenen Datenpool, 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 Hinweise zu externen Schlüsseln und Deaktivierte Datensätze und dauerhaftes Löschen von Datensätzen.
Zugriff der Cloud Healthcare API auf den Cloud KMS-Schlüssel entfernen
Sie haben die Kontrolle über Ihre Schlüssel und können sie deaktivieren, löschen oder widerrufen Berechtigungen für den Schlüssel, sodass die Cloud Healthcare API Auf CMEK-verschlüsselte Daten zugreifen. Nachdem Sie einen Schlüssel oder eine Schlüsselversion gelöscht haben die mit einem Cloud Healthcare API-Dataset verknüpft sind, werden alle mit diesem Schlüssel verschlüsselten Daten oder die Schlüsselversion verloren geht.
Zwischen dem Deaktivieren eines Schlüssels oder einer Schlüsselversion gibt es eine Verzögerung zwischen der Deaktivierung können nicht mehr verwendet werden. Es gibt auch eine Verzögerung zwischen Die Berechtigungen des Dienstkontos des Cloud Healthcare-Dienst-Agents für den Schlüssel widerrufen und wann dies möglich ist kann nicht mehr aufgerufen werden. Weitere Informationen finden Sie unter Konsistenz von Cloud KMS-Ressourcen:
Daten in eine CMEK-fähige Instanz exportieren und importieren
Um Ihre Daten während eines Exportvorgang möchten, müssen Sie für das Speicherziel einen CMEK festlegen. bevor Sie mit dem Export beginnen. Es gibt keine besonderen Anforderungen oder Einschränkungen für den Import von Daten in ein CMEK-verschlüsseltes Dataset, wenn der Import aus einem nicht CMEK-verschlüsselten oder CMEK-verschlüsselten Speicher erfolgt.
Beschränkungen
- Key Access Justifications mit Cloud External Key Manager wird nicht unterstützt.
- Pro Projekt können innerhalb von 30 Tagen maximal 10 CMEK-Datasets erstellt werden. Dieses
Das Kontingent wird vom 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 für jegliche kryptografischen Operationen für diesen Schlüssel. Diese Vorgänge treten auf, wenn die Cloud Healthcare API den Schlüssel für Verschlüsselung oder Entschlüsselung. Diese Kosten werden auf Basis der erwartete Anzahl kryptografischer Vorgänge Cloud Healthcare API Weitere Informationen finden Sie unter Cloud KMS – Preise
Cloud KMS-Kontingente und Cloud Healthcare API
Wenn Sie CMEK in der Cloud Healthcare API verwenden,
Ihre Projekte können kryptografische Cloud KMS-Anfragen nutzen
Kontingenten. 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 Informationen dazu, wann und warum sie aktiviert werden sollte, finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK).