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 AI-Instanz werden im inaktiven Zustand verschlüsselt mit einem CMEK-Schlüssel. Sie verwalten den Schlüssel im Cloud Key Management Service (Cloud KMS), und Sie steuern den Zugriff auf den Schlüssel mit Identity and Access Management. Wenn Sie die Funktion oder den CMEK-Schlüssel endgültig löschen, können mit diesem Schlüssel verschlüsselte Daten nicht Zugriff haben.

AML AI unterstützt CMEK nur durch die Verwendung von Cloud KMS Google wird nicht unterstützt Standardverschlüsselung.

Mit CMEK haben Sie die Kontrolle über mehr Aspekte des Lebenszyklus und der Verwaltung Ihres Es entstehen aber auch zusätzliche Kosten für den Schlüssel Cloud KMS-Dienst.

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

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:

  • Softwaretasten
  • Hardwaresicherheitsmodule (HSMs), die Cloud HSM verwenden

CMEK in AML AI konfigurieren Nicht alle Schutzniveaus sind in allen Regionen verfügbar. Hinweis: AML AI unterstützt keine vom Kunden bereitgestellten Verschlüsselungsschlüssel (Customer Supplied Encryption Keys, CSEK) oder 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 wie Datasets, Engine-Konfigurationen, Modelle und mehr. Alle temporären und dauerhafte Speicherung von Kundendaten, einschließlich Kopien von Ein- und Ausgaben Generierte ML-Features, Modell-Hyperparameter, Modellgewichtungen und Vorhersage werden 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.

Ein- 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 Ein- und Ausgabedaten in Ihrer Google Cloud. Projekt arbeiten. Wenn Sie möchten, dass diese Daten mit einem CMEK verschlüsselt werden, müssen Sie einen Cloud KMS-Schlüssel, der dem ausgewählten Schlüsselschutzniveau entspricht, das im BigQuery-Dataset 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 Rotation von Schlüsseln ist eine empfohlene Sicherheitsmaßnahme. 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 neu mit dem neue Schlüsselversion.

Eine einzelne AML AI-Ressource kann intern als mehrere Einheiten. 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 eine Neuverschlüsselung durchzuführen oder festzustellen, 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, die direkt in Cloud KMS erstellt wurden, oder einen extern verwalteten Schlüssel, den Sie mit Cloud External Key Manager verfügbar machen.

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

    1. Aktivieren Sie die Cloud KMS API.

    2. Erstellen Sie einen Schlüsselbund mithilfe der projects.locations.keyRings.create . Der Cloud KMS-Schlüsselbundstandort muss mit dem Standort von der Instanz, 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: 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: eine benutzerdefinierte Kennung für die 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: 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: eine benutzerdefinierte Kennung für die 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 einen Schlüssel mit dem projects.locations.keyRings.cryptoKeys .

      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: 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 der Anfrage:

      {
        "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: das Google Cloud-Projekt ID des Projekts, in dem AML AI 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: das Google Cloud-Projekt ID des Projekts, in dem AML AI ausgeführt wird
    • KEY_ID: die benutzerdefinierte Kennung für den Schlüssel
    • 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: eine benutzerdefinierte Kennung für die 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 Instanz erstellen und geben Sie den Schlüssel für die Verschlüsselung an.

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 der AML AI zu widerrufen Dienstkonto vor dem Deaktivieren oder Löschen eines Schlüssels. Änderungen an Berechtigungen sind werden innerhalb von Sekunden weitergegeben, sodass Sie die Auswirkungen Löschen eines Schlüssels

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 Kundendaten, die in der Instanz gespeichert sind, sind nicht mehr zugänglich, einschließlich Modelle, von Engine-Konfigurationen, Backtest-Ergebnissen und Vorhersageergebnissen. Nutzer mit beliebigen Die Rolle des AML AI-Betrachters kann weiterhin ansehen wie der Instanzname oder andere Ressourcenfelder, AML AI-Ressourcen werden abgerufen.

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

Nutzer mit der AML AI-Administratorrolle oder Inhaberrolle die Instanz löschen können.

CMEK-Organisationsrichtlinien

AML AI wird nicht unterstützt CMEK-Organisationsrichtlinien. Sie können jedoch AML AI erfordert immer die Verwendung eines CMEK, unabhängig vom Organisationsrichtlinie constraints/gcp.restrictNonCmekServices.

Interaktion mit VPC-SC

Wenn Sie AML AI innerhalb eines VPC-SC-Perimeters konfiguriert haben, Das Dienstkonto muss 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:

  • Verwenden Sie eine Regel für ausgehenden Traffic, um die Ressource auf die Zulassungsliste zu setzen
  • VPC-Perimeter-Peering verwenden

Nächste Schritte