Auf dieser Seite wird beschrieben, wie Sie neue Secrets mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) erstellen und vorhandene Secrets so aktualisieren, dass sie CMEK-Schlüssel verwenden.
Übersicht
CMEK bietet eine zusätzliche Sicherheitsebene und Kontrolle über Ihre sensiblen Daten, die als regionale Secrets gespeichert sind. Sie können CMEK für die folgenden Zwecke verwenden:
- Sie haben die vollständige Kontrolle über die Verschlüsselungsschlüssel, die zum Schutz Ihrer Secrets verwendet werden.
- Sie können Ihr eigenes Schlüsselverwaltungssystem mit möglicherweise strengeren Sicherheitsrichtlinien, Prüffunktionen und Compliance-Funktionen verwenden.
- Halten Sie die Vorschriften zur Datenhoheit ein, indem Sie die Schlüssel in Ihrer eigenen Infrastruktur aufbewahren.
- Definieren Sie eine differenzierte Zugriffssteuerung für Ihre Verschlüsselungsschlüssel und geben Sie an, wer sie verwenden und zu welchen Zwecken sie verwendet werden dürfen.
Einschränkungen:
Die Verwendung von CMEK mit regionalen Secrets unterliegt den folgenden Einschränkungen:
- Cloud Key Management Service Autokey (Vorabversion) wird für regionale Secrets nicht unterstützt.
- Der Speicherort des CMEK-Schlüssels muss mit dem Speicherort des regionalen Secrets übereinstimmen.
Hinweise
- Aktivieren Sie die Secret Manager API einmal pro Projekt.
- Weisen Sie dem Nutzer die Rolle „Secret Manager-Administrator“ (
roles/secretmanager.admin
) für das Projekt, den Ordner oder die Organisation zu. Sie können sich auf eine der folgenden Arten bei der Secret Manager API authentifizieren:
- Wenn Sie Clientbibliotheken zum Zugriff auf die Secret Manager API verwenden, richten Sie Standardanmeldedaten für Anwendungen ein.
- Wenn Sie die Google Cloud CLI verwenden, um auf die Secret Manager API zuzugreifen, authentifizieren Sie sich mit Ihren Google Cloud CLI-Anmeldedaten.
- Verwenden Sie zum Authentifizieren eines REST-Aufrufs entweder Google Cloud CLI-Anmeldedaten oder Standardanmeldedaten für Anwendungen.
Informationen zum Aktivieren von CMEK und zum Erstellen der für diesen Schritt erforderlichen CMEK-Schlüssel und Schlüsselringe finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel für Secret Manager aktivieren.
Regionales Secret mit CMEK-Verschlüsselung erstellen
Sie können ein neues Secret mit CMEK-Verschlüsselung mit einer der folgenden Methoden erstellen:
Console
-
Rufen Sie in der Google Cloud Console die Seite Secret Manager auf.
-
Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets und dann auf Regionales Secret erstellen.
-
Geben Sie auf der Seite Regionales Secret erstellen im Feld Name einen Namen für das Secret ein. Ein geheimer Name kann Groß- und Kleinbuchstaben, Ziffern, Bindestriche und Unterstriche enthalten. Die maximale Länge eines Namens beträgt 255 Zeichen.
-
Geben Sie einen Wert für das Geheimnis ein (z. B.
abcd1234
). Der geheime Wert kann beliebiges Format haben, darf aber nicht größer als 64 KiB sein. Sie können auch eine Textdatei mit dem Secret-Wert über die Option Datei hochladen hochladen. Dadurch wird die Secret-Version automatisch erstellt. -
Wählen Sie in der Liste Region den Speicherort für das regionale Secret aus.
-
Wählen Sie unter Verschlüsselung die Option Vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) und dann in der Liste Verschlüsselungsschlüssel den CMEK-Schlüssel aus. Prüfen Sie, ob der CMEK-Schlüssel an dem angegebenen Speicherort vorhanden ist und Ihr Secret Manager-Projekt die erforderlichen Berechtigungen zur Verwendung des Schlüssels hat.
-
Klicken Sie auf Secret erstellen.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
- LOCATION: den Google Cloud-Standort, an dem Sie das Geheimnis erstellen möchten
- CMEK_KEY: der voll qualifizierte Pfad zum bestimmten CMEK-Schlüssel im Cloud Key Management Service, mit dem das Geheimnis geschützt wird
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets create SECRET_ID --location=LOCATION \ --regional-kms-key-name=CMEK_KEY
Windows (PowerShell)
gcloud secrets create SECRET_ID --location=LOCATION ` --regional-kms-key-name=CMEK_KEY
Windows (cmd.exe)
gcloud secrets create SECRET_ID --location=LOCATION ^ --regional-kms-key-name=CMEK_KEY
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: den Google Cloud-Standort, an dem Sie das Geheimnis erstellen möchten.
- PROJECT_ID: die Google Cloud-Projekt-ID.
- SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret.
- KMS_PROJECT_ID: die ID Ihres Google Cloud-Projekts, in dem Cloud Key Management Service ausgeführt wird.
- KMS_KEY_LOCATION: der Standortname Ihres Cloud KMS-Schlüssels. Dieser muss mit dem Speicherort Ihres Secrets übereinstimmen.
- YOUR_KEY_RING: Der Name des Schlüsselbunds in Cloud KMS, in dem Sie Ihren CMEK-Schlüssel gespeichert haben.
- YOUR_CMEK_KEY: der vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK), den Sie in Ihrem ausgewählten Schlüsselbund in Cloud KMS erstellt haben.
HTTP-Methode und URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID
JSON-Text der Anfrage:
{"customer_managed_encryption": {"kms_key_name": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"}}
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
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-03-27T13:30:07.437859Z", "etag": "\"1614a467b60423\"" "customerManagedEncryption": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/secret-manager-cmek/cryptoKeys/my-cmek-key" } }
Vorhandenes Secret für die Verwendung von CMEK aktualisieren
Sie haben folgende Möglichkeiten, ein vorhandenes Secret für die Verwendung von CMEK zu aktualisieren:
Console
-
Rufen Sie in der Google Cloud Console die Seite Secret Manager auf.
-
Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets.
-
Sie haben folgende Möglichkeiten, ein Secret zu bearbeiten:
-
Suchen Sie in der Liste nach dem Secret und klicken Sie auf das zugehörige Menü
Aktionen. Klicken Sie im Menü Aktionen auf Bearbeiten. -
Klicken Sie auf den Namen des Secrets, um die Detailseite aufzurufen. Klicken Sie auf der Seite mit den Secret-Details auf
Secret bearbeiten.
-
-
Rufen Sie auf der Seite Secret bearbeiten den Bereich Verschlüsselung auf.
-
Wählen Sie unter Verschlüsselung die Option Vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) und dann in der Liste Verschlüsselungsschlüssel den CMEK-Schlüssel aus. Prüfen Sie, ob der CMEK-Schlüssel an dem angegebenen Speicherort vorhanden ist und Ihr Secret Manager-Projekt die erforderlichen Berechtigungen zur Verwendung des Schlüssels hat.
-
Klicken Sie auf Secret aktualisieren.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
- LOCATION: den Speicherort des Geheimnisses in Google Cloud
- CMEK_KEY: der voll qualifizierte Pfad zum bestimmten CMEK-Schlüssel im Cloud Key Management Service, der das Geheimnis schützt
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets update SECRET_ID --location=LOCATION \ --regional-kms-key-name=CMEK_KEY
Windows (PowerShell)
gcloud secrets update SECRET_ID --location=LOCATION ` --regional-kms-key-name=CMEK_KEY
Windows (cmd.exe)
gcloud secrets update SECRET_ID --location=LOCATION ^ --regional-kms-key-name=CMEK_KEY
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: den Speicherort des Geheimnisses in Google Cloud.
- PROJECT_ID: die Google Cloud-Projekt-ID.
- SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret.
- KMS_PROJECT_ID: die ID Ihres Google Cloud-Projekts, in dem Cloud Key Management Service ausgeführt wird.
- KMS_KEY_LOCATION: den Speicherort Ihres Cloud KMS-Schlüssels. Dieser muss mit dem Speicherort Ihres Secrets übereinstimmen.
- YOUR_KEY_RING: Der Name des Schlüsselbunds in Cloud KMS, in dem Sie Ihren CMEK-Schlüssel gespeichert haben.
- YOUR_CMEK_KEY: der vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK), den Sie in Ihrem ausgewählten Schlüsselbund in Cloud KMS erstellt haben.
HTTP-Methode und URL:
PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption
JSON-Text der Anfrage:
{"customer_managed_encryption": {"kms_key_name": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"}}"
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
und führen Sie den folgenden Befehl aus:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-03-27T13:30:07.437859Z", "etag": "\"16211daf5f29c5\"" "customerManagedEncryption": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/secret-manager-cmek/cryptoKeys/my-cmek-key" } }