Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) für Cloud Healthcare API-Datasets aktivieren

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.

Zur Dokumentation werden die folgenden Konventionen verwendet:

  • PROJECT_ID: die Projekt-ID der Cloud Healthcare API
  • KMS_PROJECT_ID: die Projekt-ID, in der Cloud KMS „Ausführungen“ ausgeführt. Das kann mit PROJECT_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 eine vorhandene Cloud Healthcare API nicht aktivieren, ändern oder deaktivieren Dataset.
  • 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 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 oder wenn 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 nicht mehr verfügbar sein. unvorhersehbar sind. 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:

  1. 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.

  2. 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 und datasets.delete an das Cloud Healthcare API-Dataset senden. Andere Anfragen schlagen fehl mit einen 400 FAILED_PRECONDITION-Fehler.

  3. 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 ihre 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 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 in 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. Beispiel: Ein Cloud Healthcare API-Dataset in der Region us muss geschützt mit einem Schlüsselbund aus der Region us und einem Cloud Healthcare API-Dataset in der Region eu muss mit einem Schlüsselbund aus der Region europe geschützt sein.

  • 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 Region asia-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:

  1. Erstellen Sie einen Schlüsselbund.
  2. Schlüssel erstellen

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 verarbeitet 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 der Dienst-Agent automatisch entschlüsselt das angeforderte Objekt, 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.

Sie müssen beim Erstellen eine Cloud KMS-Schlüsselressourcen-ID angeben des Datasets. 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

  1. Rufen Sie in der Google Cloud Console die Seite Browser auf.

    Browser aufrufen

  2. Klicken Sie auf Dataset erstellen. Die Seite Dataset erstellen wird angezeigt.

  3. 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.

  4. 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)

  5. 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 Sie möchten, dass Google die Verschlüsselungsschlüssel verwaltet, die um Ihre Daten in diesem Cloud Healthcare API-Dataset zu schützen.

    • Cloud KMS-Schlüssel: Verwenden Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK).

  6. 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:

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

  1. Erstellen Sie das Dataset mit dem datasets.create. .

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    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 Content

    APIs 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.

    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für ein lang andauernden Vorgang ausführen. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. 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-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID ist die Dataset-ID
    • OPERATION_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 Content

    APIs 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.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, wird der lang andauernden Vorgang abgeschlossen ist.

Ermitteln, ob ein Dataset 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.

Das Rotieren eines Schlüssels führt zu Folgendem:

  • 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 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 die Dataset fehlgeschlagen ist. 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 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 Datenimport in ein CMEK-verschlüsseltes Dataset beim Importieren aus nicht CMEK oder CMEK-verschlüsselten Speicher.

Einschränkungen

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, die vom 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