Regionale Secrets mit CMEK-Verschlüsselung versehen

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.
  • Vorschriften zur Datenhoheit einhalten, indem die Schlüssel innerhalb Ihrer Ihrer eigenen Infrastruktur.
  • Definieren Sie detaillierte Zugriffssteuerungen für Ihre Verschlüsselungsschlüssel, indem Sie wer sie zu welchen Zwecken verwenden kann.

Einschränkungen:

Die Verwendung von CMEK mit regionalen Secrets unterliegt den folgenden Einschränkungen:

Hinweis

  1. Aktivieren Sie die Secret Manager API, einmal pro Projekt.
  2. Weisen Sie dem Nutzer die Rolle „Secret Manager-Administrator“ (roles/secretmanager.admin) für das Projekt, den Ordner oder die Organisation zu.
  3. Authentifizieren Sie sich bei der Secret Manager API auf eine der folgenden Arten:

    • Wenn Sie Clientbibliotheken zum Zugriff auf die Secret Manager API verwenden, richten Sie Standardanmeldedaten für Anwendungen ein.
    • Wenn Sie über die Google Cloud CLI auf die Secret Manager API zugreifen, verwenden Sie für die Authentifizierung Ihre Google Cloud CLI-Anmeldedaten.
    • Verwenden Sie zum Authentifizieren eines REST-Aufrufs entweder Google Cloud CLI-Anmeldedaten oder Standardanmeldedaten für Anwendungen.
  4. 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

Verwenden Sie eine der folgenden Methoden, um ein neues Secret mit CMEK-Verschlüsselung zu erstellen:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Secret Manager auf.

    Zu Secret Manager

  2. Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets und dann auf Regionales Secret erstellen.

  3. 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 maximal zulässige Länge für einen Namen beträgt 255 Zeichen.

  4. 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 hochladen: die Option Datei hochladen. Durch diese Aktion wird automatisch die Secret-Version erstellt.

  5. Wählen Sie in der Liste Region den Standort aus, an dem das regionale Secret gespeichert werden soll.

  6. 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.

  7. 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 spezifischen CMEK-Schlüssel in Cloud Key Management Service, der das Secret schützt

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 eine 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 spezifische vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK), den Sie im 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

So aktualisieren Sie ein vorhandenes Secret für die Verwendung von CMEK:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Secret Manager auf.

    Zu Secret Manager

  2. Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets.

  3. Sie haben folgende Möglichkeiten, ein Secret zu bearbeiten:

    • Suchen Sie das Secret in der Liste und klicken Sie auf Aktionen. die mit diesem Secret verknüpft ist. Klicken Sie im Menü Aktionen auf Bearbeiten.

    • Klicken Sie auf den Namen des Secrets, um die Detailseite aufzurufen. Auf der Seite mit den Secret-Details Klicken Sie auf Secret bearbeiten.

  4. Wechseln Sie auf der Seite Secret bearbeiten zum Abschnitt Verschlüsselung.

  5. Wählen Sie unter Verschlüsselung die Option Vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) aus. Wählen Sie Ihren CMEK-Schlüssel aus der Liste Verschlüsselungsschlüssel aus. Achten Sie darauf, dass Ihr CMEK-Schlüssel an dem angegebenen Ort befindet und Ihr Secret Manager-Projekt über die erforderlichen Berechtigungen zur Verwendung des Schlüssels.

  6. Klicken Sie auf Secret aktualisieren.

gcloud

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

  • SECRET_ID: die ID des Secrets oder eine voll qualifizierte Kennung für das Secret
  • LOCATION: der Google Cloud-Speicherort des Secrets
  • CMEK_KEY: der voll qualifizierte Pfad zum spezifischen CMEK-Schlüssel in Cloud Key Management Service, der das Secret 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 eine 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. Der Wert muss identisch sein. Standort als Ihr Geheimnis festzulegen.
  • YOUR_KEY_RING: der Name des Schlüsselbunds in Cloud KMS, in dem Sie Ihren CMEK-Schlüssel gespeichert haben.
  • YOUR_CMEK_KEY: der spezifische vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK), den Sie im 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 eine JSON-Antwort ähnlich wie diese 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"
  }
}

Nächste Schritte