Daten mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) verschlüsseln

Auf dieser Seite wird beschrieben, wie Sie in AML AI gespeicherte Daten verschlüsseln Instanzen mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEKs)

Übersicht

Alle Kundendaten in einer AML-KI-Instanz werden mit einem CMEK-Schlüssel verschlüsselt. Sie verwalten den Schlüssel im Cloud Key Management Service (Cloud KMS) und steuern den Zugriff auf den Schlüssel mit Identity and Access Management. Wenn Sie den CMEK-Schlüssel vorübergehend deaktivieren oder dauerhaft löschen, kann nicht auf die mit diesem Schlüssel verschlüsselten Daten zugegriffen werden.

AML AI unterstützt nur CMEK mit Cloud KMS. Google wird nicht unterstützt Standardverschlüsselung.

Mit CMEK können Sie mehr Elemente des Lebenszyklus und die Verwaltung Ihrer Schlüssel steuern. Für den Cloud KMS-Dienst fallen aber zusätzliche Kosten an.

Cloud KMS kann im selben Google Cloud-Projekt wie AML AI oder in einem separaten Projekt ausgeführt werden, in dem Sie Schlüssel für mehrere Projekte zentral verwalten.

Die Verschlüsselungskonfiguration wird beim Erstellen einer Instanz eingerichtet. Nachdem eine Instanz erstellt wurde, einen anderen Cloud KMS-Schlüssel zuweisen. Sie können den Schlüssel weiterhin drehen.

Weitere Informationen zu CMEK im Allgemeinen finden Sie in der Cloud KMS-Dokumentation

Schutzniveaus

Bei Cloud KMS können Sie zwischen verschiedenen Schutzniveaus wählen. einschließlich:

  • Softwareschlüssel
  • Hardwaresicherheitsmodule (HSMs), die Cloud HSM verwenden

CMEK in AML AI konfigurieren Nicht alle Schutzstufen sind in allen Regionen verfügbar. AML AI unterstützt keine vom Kunden bereitgestellten Verschlüsselungsschlüssel (CSEK) und keinen Cloud External Key Manager.

Kundendaten

Alle Kundendaten, die verarbeitet werden durch AML AI wird im inaktiven Zustand mit dem CMEK-Schlüssel verschlüsselt, der in der entsprechende übergeordnete Instanz . Dazu gehören alle Kundendaten im Zusammenhang mit AML AI Ressourcen wie Datasets, Engine-Konfigurationen, Modelle und mehr. Der gesamte temporäre und dauerhafte Speicher von Kundendaten, einschließlich Kopien von Eingaben und Ausgaben, generierter ML-Features, Modellhyperparameter, Modellgewichte und Vorhersageergebnisse, wird mit dem CMEK-Schlüssel der entsprechenden Instanz verschlüsselt.

In den dienstspezifischen Nutzungsbedingungen finden Sie eine Definition für Kundendaten, die keine Ressourcenkennungen, -attribute oder andere Datenlabels.

Eingabe- und Ausgabedaten verschlüsseln

Die AML AI-Verschlüsselungskonfiguration in einer Instanz wird nur verwendet für AML AI-Ressourcen und ihre Daten. AML AI verwaltet nicht die Verschlüsselung von Eingabe- oder Ausgabedaten in Ihrem Google Cloud-Projekt. Wenn Sie möchten, dass diese Daten mit CMEK verschlüsselt werden, müssen Sie einen Cloud KMS-Schlüssel einrichten, der der ausgewählten Schlüsselschutzebene entspricht, die für das BigQuery-Dataset konfiguriert wurde. Sie können auch denselben Schlüssel wiederverwenden, der von AML AI verwendet wird.

Weitere Informationen zur Verschlüsselung in BigQuery

Schlüsselrotation

Die regelmäßige und automatische Schlüsselrotation wird empfohlen. Mit einem CMEK wird die Schlüsselrotation von Ihnen gesteuert. Wenn Sie einen Schlüssel rotieren, mit früheren Schlüsselversionen verschlüsselt, wird nicht automatisch erneut mit dem neue Schlüsselversion.

Eine einzelne AML-KI-Ressource kann intern als mehrere Einheiten gespeichert werden. Wenn während der Lebensdauer einer AML AI-Ressource der Schlüssel -Version rotiert wird, sind möglicherweise nicht alle Einheiten mit derselben Schlüsselversion verschlüsselt.

Wenn Sie einen Schlüssel rotieren, gibt es in AML AI keine Möglichkeit, eine erneute Verschlüsselung zu erzwingen oder zu ermitteln, ob ältere Schlüsselversionen sicher gelöscht werden können.

Weitere Informationen zur Schlüsselrotation mit Cloud KMS

Schlüssel erstellen und Berechtigungen gewähren

In der folgenden Anleitung wird erläutert, wie Sie einen Schlüssel für eine Instanz erstellen und gewähren, Berechtigungen zum Ver- und Entschlüsseln von Instanzdaten mit dem Schlüssel. Sie können einen Schlüssel verwenden, der direkt in Cloud KMS erstellt wurde, oder einen extern verwalteten Schlüssel, den Sie mit Cloud External Key Manager zur Verfügung stellen.

  1. Im Google Cloud-Projekt, in dem Sie Ihre Schlüssel verwalten möchten:

    1. Aktivieren Sie die Cloud KMS API.

    2. Erstellen Sie mit der Methode projects.locations.keyRings.create einen Schlüsselbund. Der Speicherort des Cloud KMS-Schlüsselbunds muss mit dem Speicherort der Instanz übereinstimmen, die Sie verschlüsseln.

      REST

      Ersetzen Sie diese Werte in den folgenden Anfragedaten:

      • KMS_PROJECT_ID: das Google Cloud-Projekt ID für das Projekt, das den Schlüsselbund enthält
      • LOCATION: Speicherort des Schlüsselbunds; verwenden Sie eine der unterstützten Regionen
        Standorte anzeigen
        • us-central1
        • us-east1
        • asia-south1
        • europe-west1
        • europe-west2
        • europe-west4
        • northamerica-northeast1
        • southamerica-east1
      • KEY_RING_ID: eine benutzerdefinierte Kennung für den Schlüsselbund

      Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

      curl

      Führen Sie folgenden Befehl aus:

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d "" \
      "https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING_ID"

      PowerShell

      Führen Sie folgenden Befehl aus:

      $cred = gcloud auth print-access-token
      $headers = @{ "Authorization" = "Bearer $cred" }

      Invoke-WebRequest `
      -Method POST `
      -Headers $headers `
      -Uri "https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING_ID" | Select-Object -Expand Content

      Sie sollten in etwa folgende JSON-Antwort erhalten:

      {
        "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID",
        "createTime": "2023-03-14T15:52:55.358979323Z"
      }
      

      gcloud

      Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

      • KMS_PROJECT_ID: das Google Cloud-Projekt ID für das Projekt, das den Schlüsselbund enthält
      • LOCATION: Speicherort des Schlüsselbunds; verwenden Sie eine der unterstützten Regionen
        Standorte anzeigen
        • us-central1
        • us-east1
        • asia-south1
        • europe-west1
        • europe-west2
        • europe-west4
        • northamerica-northeast1
        • southamerica-east1
      • KEY_RING_ID: eine benutzerdefinierte Kennung für den Schlüsselbund

      Führen Sie folgenden Befehl aus:

      Linux, macOS oder Cloud Shell

      gcloud kms keyrings create KEY_RING_ID \
        --project KMS_PROJECT_ID --location LOCATION

      Windows (PowerShell)

      gcloud kms keyrings create KEY_RING_ID `
        --project KMS_PROJECT_ID --location LOCATION

      Windows (cmd.exe)

      gcloud kms keyrings create KEY_RING_ID ^
        --project KMS_PROJECT_ID --location LOCATION
      Sie sollten eine leere Antwort erhalten:
      $

    3. Erstellen Sie mit der Methode projects.locations.keyRings.cryptoKeys einen Schlüssel.

      REST

      Ersetzen Sie diese Werte in den folgenden Anfragedaten:

      • KMS_PROJECT_ID: die Google Cloud-Projekt-ID des Projekts, das den Schlüsselbund enthält
      • LOCATION: der Speicherort des Schlüsselbunds. verwenden Sie eine der unterstützten Regionen
        Standorte anzeigen
        • us-central1
        • us-east1
        • asia-south1
        • europe-west1
        • europe-west2
        • europe-west4
        • northamerica-northeast1
        • southamerica-east1
      • KEY_RING_ID: die benutzerdefinierte Kennung für den Schlüsselbund
      • KEY_ID: eine benutzerdefinierte Kennung für den Schlüssel

      JSON-Text anfordern:

      {
        "purpose": "ENCRYPT_DECRYPT"
      }
      

      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'
      {
        "purpose": "ENCRYPT_DECRYPT"
      }
      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://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys?crypto_key_id=KEY_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:

      @'
      {
        "purpose": "ENCRYPT_DECRYPT"
      }
      '@  | 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://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys?crypto_key_id=KEY_ID" | Select-Object -Expand Content

      Sie sollten in etwa folgende JSON-Antwort erhalten:

      {
        "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID",
        "primary": {
          "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID/cryptoKeyVersions/1",
          "state": "ENABLED",
          "createTime": "2023-03-14T15:52:55.358979323Z",
          "protectionLevel": "SOFTWARE",
          "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION",
          "generateTime": "2023-03-14T15:52:55.358979323Z"
        },
        "purpose": "ENCRYPT_DECRYPT",
        "createTime": "2023-03-14T15:52:55.358979323Z",
        "versionTemplate": {
          "protectionLevel": "SOFTWARE",
          "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
        },
        "destroyScheduledDuration": "86400s"
      }
      

      gcloud

      Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

      • KMS_PROJECT_ID: das Google Cloud-Projekt ID für das Projekt, das den Schlüsselbund enthält
      • LOCATION: der Speicherort des Schlüsselbunds. verwenden Sie eine der unterstützten Regionen
        Standorte anzeigen
        • us-central1
        • us-east1
        • asia-south1
        • europe-west1
        • europe-west2
        • europe-west4
        • northamerica-northeast1
        • southamerica-east1
      • KEY_RING_ID: die benutzerdefinierte Kennung für den Schlüsselbund
      • KEY_ID: eine benutzerdefinierte Kennung für den Schlüssel

      Führen Sie folgenden Befehl aus:

      Linux, macOS oder Cloud Shell

      gcloud kms keys create KEY_ID \
        --keyring KEY_RING_ID \
        --project KMS_PROJECT_ID \
        --location LOCATION \
        --purpose "encryption"

      Windows (PowerShell)

      gcloud kms keys create KEY_ID `
        --keyring KEY_RING_ID `
        --project KMS_PROJECT_ID `
        --location LOCATION `
        --purpose "encryption"

      Windows (cmd.exe)

      gcloud kms keys create KEY_ID ^
        --keyring KEY_RING_ID ^
        --project KMS_PROJECT_ID ^
        --location LOCATION ^
        --purpose "encryption"
      Sie sollten eine leere Antwort erhalten:
      $

  2. Wenn Sie noch keine AML AI-Instanz in der AML AI-Projekt, dann der AML AI-Dienst Konto existiert noch nicht. Erstellen Sie das Dienstkonto.

    Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

    • PROJECT_ID: die Google Cloud-Projekt-ID des Projekts, in dem die AML-KI ausgeführt wird

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder Cloud Shell

    gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID

    Windows (PowerShell)

    gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID

    Windows (cmd.exe)

    gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID

    Sie sollten eine Antwort ähnlich der folgenden erhalten:

    Service identity created: service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com

  3. Gewähren Sie die IAM-Rolle CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) zur AML AI Dienstkonto. Erteilen Sie diese Berechtigung für den von Ihnen erstellten Schlüssel.

    Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

    • PROJECT_ID: die Google Cloud-Projekt-ID des Projekts, in dem die AML-KI ausgeführt wird
    • KEY_ID: die benutzerdefinierte Kennung für den Schlüssel
    • LOCATION: Speicherort des Schlüsselbunds; verwenden Sie eine der unterstützten Regionen
      Standorte anzeigen
      • us-central1
      • us-east1
      • asia-south1
      • europe-west1
      • europe-west2
      • europe-west4
      • northamerica-northeast1
      • southamerica-east1
    • KEY_RING_ID: eine benutzerdefinierte Kennung für den Schlüsselbund
    • PROJECT_NUMBER: die Google Cloud Projektnummer für das Projekt, in dem AML AI ausgeführt wird,

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder Cloud Shell

    gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID \
      --location LOCATION --keyring=KEY_RING_ID \
      --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com \
      --role roles/cloudkms.cryptoKeyEncrypterDecrypter

    Windows (PowerShell)

    gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID `
      --location LOCATION --keyring=KEY_RING_ID `
      --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com `
      --role roles/cloudkms.cryptoKeyEncrypterDecrypter

    Windows (cmd.exe)

    gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID ^
      --location LOCATION --keyring=KEY_RING_ID ^
      --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com ^
      --role roles/cloudkms.cryptoKeyEncrypterDecrypter

    Sie sollten eine Antwort ähnlich der folgenden erhalten:

    Updated IAM policy for key KEY_ID.
    bindings:
    - members:
      - serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com
      role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    etag: BwYCq0Sq4Ho=
    version: 1
    

    Weitere Informationen zu diesem Befehl finden Sie in der Dokumentation zu gcloud kms keys add-iam-policy-binding.

Sie können jetzt eine Instanz erstellen und den Schlüssel für die Verschlüsselung angeben.

Zugriff entfernen

Es gibt mehrere Möglichkeiten, den Zugriff auf den Schlüssel von der CMEK-verschlüsselten Instanz zu entfernen:

Wir empfehlen, die Berechtigungen des AML AI-Dienstkontos zu widerrufen, bevor Sie einen Schlüssel deaktivieren oder löschen. Änderungen an Berechtigungen werden innerhalb von Sekunden übernommen, sodass Sie sofort nachvollziehen können, wie sich das Deaktivieren oder Löschen eines Schlüssels auswirkt.

Wenn Sie den Verschlüsselungsschlüssel für eine Instanz deaktivieren oder löschen, verlieren Sie den Möglichkeit, mit der Instanz verknüpfte Kundendaten zu verwenden oder abzurufen Alle die in der Instanz gespeicherten Kundendaten, einschließlich Modellen, von Engine-Konfigurationen, Backtest-Ergebnissen und Vorhersageergebnissen. Nutzer mit einer Rolle als Betrachter von AML AI können weiterhin Felder wie den Instanznamen oder die anderen Ressourcenfelder aufrufen, die beim Abrufen von AML AI-Ressourcen zurückgegeben werden.

Alle Vorgänge, bei denen Kundendaten verwendet oder exportiert werden, z. B. das Exportieren von Kundendaten backtestResults Metadaten schlägt fehl.

Nutzer mit der Rolle „AML AI-Administrator“ oder „Inhaber“ können die Instanz löschen.

CMEK-Organisationsrichtlinien

AML AI wird nicht unterstützt CMEK-Organisationsrichtlinien. Für die AML-KI ist jedoch unabhängig von der constraints/gcp.restrictNonCmekServices-Organisationsrichtlinie immer die Verwendung von CMEK erforderlich.

Interaktion mit VPC-SC

Wenn Sie AML AI in einem VPC-SC-Perimeter konfiguriert haben, muss das Dienstkonto weiterhin auf den CMEK-Schlüssel zugreifen können. Wenn der Schlüssel nicht innerhalb desselben VPC-SC-Perimeters haben mehrere Möglichkeiten, dies zu erreichen. einschließlich:

  • Ressource mit einer Regel für ausgehenden Traffic auf die Zulassungsliste setzen
  • VPC-Perimeter-Peering verwenden

Nächste Schritte