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.
Im Google Cloud-Projekt, in dem Sie Ihre Schlüssel verwalten möchten:
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ältLOCATION
: der Speicherort des Schlüsselbunds. verwenden Sie eine der unterstützten RegionenStandorte anzeigenus-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 ContentSie 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ältLOCATION
: der Speicherort des Schlüsselbunds. verwenden Sie eine der unterstützten RegionenStandorte anzeigenus-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
$
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ältLOCATION
: der Speicherort des Schlüsselbunds. verwenden Sie eine der unterstützten RegionenStandorte anzeigenus-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üsselbundKEY_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 ContentSie 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ältLOCATION
: der Speicherort des Schlüsselbunds. verwenden Sie eine der unterstützten RegionenStandorte anzeigenus-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üsselbundKEY_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"
$
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
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 wirdKEY_ID
: die benutzerdefinierte Kennung für den SchlüsselLOCATION
: der Speicherort des Schlüsselbunds. verwenden Sie eine der unterstützten RegionenStandorte anzeigenus-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üsselbundPROJECT_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:
- Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler widerrufen role vom Typ AML AI-Dienstkonto mit dem Google Cloud Console oder die gcloud-Befehlszeile
- Deaktivieren Sie vorübergehend den CMEK-Schlüssel.
- Endgültig löschen CMEK-Schlüssel
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