Auf dieser Seite wird beschrieben, wie Sie in AML AI-Instanzen gespeicherte Daten mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) verschlüsseln.
Überblick
Alle Kundendaten in einer AML AI-Instanz werden beim Speichern im inaktiven Zustand mit einem CMEK-Schlüssel verschlüsselt. Sie verwalten den Schlüssel im Cloud Key Management Service und steuern den Zugriff darauf mithilfe von Identity and Access Management. Wenn Sie den CMEK-Schlüssel vorübergehend deaktivieren oder dauerhaft löschen, können mit diesem Schlüssel verschlüsselte Daten nicht mehr abgerufen werden.
CMEK bietet Ihnen die Kontrolle über mehr Aspekte des Lebenszyklus und der Verwaltung Ihrer Schlüssel, verursacht aber auch zusätzliche Kosten für den Cloud KMS-Dienst.
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.
Sie weisen einen CMEK-Schlüssel beim Erstellen einer Instanz zu. Alle Instanzen müssen mit CMEK konfiguriert sein und dürfen nicht zur Verwendung der Google-Standardverschlüsselung geändert werden.
Weitere Informationen zu CMEK und deren Aktivierung finden Sie in der Cloud KMS-Dokumentation.
Kundendaten
Alle von AML AI verarbeiteten Kundendaten werden im inaktiven Zustand mit dem CMEK-Schlüssel verschlüsselt, der in der entsprechenden übergeordneten Instanzressource angegeben ist. Dazu gehören alle Kundendaten im Zusammenhang mit AML AI-Ressourcen wie Datasets, Engine-Konfigurationen, Modellen und mehr. Der gesamte temporäre und dauerhafte Speicher von Kundendaten, einschließlich Kopien von Ein- und Ausgaben, generierter ML-Features, Logs, Modell-Hyperparameter, Modellgewichtungen und Vorhersageergebnisse, wird mit dem CMEK-Schlüssel der entsprechenden Instanz verschlüsselt.
AML AI verwaltet nicht die Verschlüsselung von Eingabe- oder Ausgabedaten in Ihrem Google Cloud-Projekt. Wenn Sie diese Daten verschlüsseln möchten, müssen Sie in Ihrem Google Cloud-Projekt einen separaten CMEK-Schlüssel einrichten. Der in einer Instanz angegebene KMS-Schlüssel wird für AML AI-Ressourcen und deren Daten verwendet.
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 Berechtigungen zum Verschlüsseln und Entschlüsseln von Instanzdaten mit dem Schlüssel gewähren. Sie können einen direkt in Cloud KMS erstellten Schlüssel oder einen extern verwalteten Schlüssel verwenden, den Sie mit Cloud External Key Manager zur Verfügung stellen.
Im Google Cloud-Projekt, in dem Sie Ihre Schlüssel verwalten möchten:
Erstellen Sie mit der Methode
projects.locations.keyRings.create
einen Schlüsselbund. Der Speicherort des Cloud KMS-Schlüsselbunds muss mit dem Standort der Instanz übereinstimmen, die Sie verschlüsseln.REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
KMS_PROJECT_ID
: die 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 Regionen: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 ContentSie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID", "createTime": CREATE_TIME }
gcloud
Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:
LOCATION
: der Speicherort des Schlüsselbunds. Verwenden Sie eine der unterstützten Regionen: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 den folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud kms keyrings create KEY_RING_ID \ --location LOCATION
Windows (PowerShell)
gcloud kms keyrings create KEY_RING_ID ` --location LOCATION
Windows (cmd.exe)
gcloud kms keyrings create KEY_RING_ID ^ --location LOCATION
$
Erstellen Sie mit der Methode
projects.locations.keyRings.cryptoKeys
einen Schlüssel.REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
KMS_PROJECT_ID
: die 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 Regionen: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üsselbundKEY_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 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": CREATE_TIME, "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "generateTime": GENERATE_TIME }, "purpose": "ENCRYPT_DECRYPT", "createTime": CREATE_TIME, "versionTemplate": { "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "destroyScheduledDuration": "86400s" }
gcloud
Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:
LOCATION
: der Speicherort des Schlüsselbunds. Verwenden Sie eine der unterstützten Regionen: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üsselbundKEY_ID
: eine benutzerdefinierte Kennung für den Schlüssel
Führen Sie den folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud kms keys create KEY_ID \ --keyring KEY_RING_ID \ --location LOCATION \ --purpose "encryption"
Windows (PowerShell)
gcloud kms keys create KEY_ID ` --keyring KEY_RING_ID ` --location LOCATION ` --purpose "encryption"
Windows (cmd.exe)
gcloud kms keys create KEY_ID ^ --keyring KEY_RING_ID ^ --location LOCATION ^ --purpose "encryption"
$
Wenn Sie keine AML AI-Instanz im AML AI-Projekt erstellt haben, ist das AML AI-Dienstkonto noch nicht vorhanden. Erstellen Sie das Dienstkonto.
Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:
PROJECT_ID
: die Google Cloud-Projekt-ID des Projekts, in dem AML AI ausgeführt wird
Führen Sie den 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
Weisen Sie dem AML AI-Dienstkonto die IAM-Rolle CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) zu. Erteilen Sie diese Berechtigung für den von Ihnen erstellten Schlüssel.Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:
PROJECT_ID
: die 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 Regionen: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üsselbundPROJECT_NUMBER
: die Google Cloud-Projektnummer des Projekts, in dem AML AI ausgeführt wird
Führen Sie den 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 eine CMEK-verschlüsselte Instanz zu entfernen:
- Widerrufen Sie die Rolle Cloud KMS CryptoKey Encrypter/Decrypter aus dem AML AI-Dienstkonto mithilfe der Google Cloud Console oder der gcloud CLI
- Deaktivieren Sie vorübergehend den CMEK-Schlüssel.
- CMEK-Schlüssel dauerhaft löschen
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. So können Sie die Auswirkungen der Deaktivierung oder Löschung eines Schlüssels beobachten.
Wenn Sie den Verschlüsselungsschlüssel für eine Instanz deaktivieren oder zerstören, können Sie Instanzdaten nicht mehr ansehen oder abrufen. Alle in der Instanz gespeicherten Daten sind nicht mehr zugänglich, einschließlich API-Ressourcen wie Datasets, Modelle, Engine-Konfigurationen, Backtest-Ergebnisse und Vorhersageergebnisse. Nutzer mit der Rolle „AML AI Viewer“ können weiterhin Instanzmetadaten wie den Instanznamen ansehen.
Nutzer mit der Rolle „AML AI Administrator“ oder „Inhaber“ können die Instanz löschen.
CMEK-Organisationsrichtlinien
AML AI unterstützt keine CMEK-Organisationsrichtlinien. AML AI erfordert jedoch immer die Verwendung von CMEK, unabhängig von der Organisationsrichtlinie constraints/gcp.restrictNonCmekServices
.
Nächste Schritte
- Instanz erstellen
- Weitere Informationen zu CMEK
- Weitere Informationen zur Google-Standardverschlüsselung