Regionalen Secrets die CMEK-Verschlüsselung hinzufügen

Auf dieser Seite wird beschrieben, wie Sie neue Secrets mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) erstellen und vorhandene Secrets aktualisieren, um CMEK-Schlüssel zu verwenden.

Übersicht

CMEK bietet eine zusätzliche Sicherheits- und Kontrollebene für Ihre sensiblen Daten, die als regionale Secrets gespeichert sind. Mit CMEK können Sie die folgenden Ziele erreichen:

  • Sie haben die vollständige Kontrolle über die Verschlüsselungsschlüssel, die zum Schutz Ihrer Secrets verwendet werden.
  • Verwenden Sie Ihr eigenes Schlüsselverwaltungssystem mit möglicherweise strengeren Sicherheitsrichtlinien, Prüffunktionen und Compliance-Funktionen.
  • Einhaltung von Vorschriften zur Datenhoheit durch Aufbewahrung der Schlüssel in Ihrer eigenen Infrastruktur
  • Definieren Sie eine differenzierte Zugriffssteuerung für Ihre Verschlüsselungsschlüssel und geben Sie an, wer sie für welche Zwecke verwenden darf.

Einschränkungen:

Für die Verwendung von CMEK mit regionalen Secrets gelten die folgenden Einschränkungen:

Hinweise

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

    • Wenn Sie Clientbibliotheken für den 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.
    • Zur Authentifizierung eines REST-Aufrufs verwenden Sie entweder Google Cloud CLI-Anmeldedaten oder Standardanmeldedaten für Anwendungen.
  4. Informationen zum Aktivieren von CMEK und zum Erstellen der CMEK-Schlüssel und ‑Schlüsselbunde, die für diesen Schritt erforderlich sind, 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. Ein Name darf maximal 255 Zeichen lang sein.

  4. Geben Sie einen Wert für den geheimen Schlüssel ein (z. B. abcd1234). Der Wert kann in einem beliebigen Format vorliegen, 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. Durch diese Aktion wird die Secret-Version automatisch erstellt.

  5. Wählen Sie in der Liste Region den Speicherort für Ihr regionales Secret aus.

  6. Wählen Sie unter Verschlüsselung die Option Vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) aus und wählen Sie dann Ihren CMEK-Schlüssel aus der Liste Verschlüsselungsschlüssel aus. Achten Sie darauf, dass Ihr CMEK-Schlüssel am 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: der Google Cloud Speicherort, an dem Sie das Secret erstellen möchten
  • CMEK_KEY: Der vollständig qualifizierte Pfad zum spezifischen CMEK-Schlüssel im Cloud Key Management Service, mit dem das Secret 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: der Google Cloud Standort, an dem Sie das Secret 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 Name des Speicherorts Ihres Cloud KMS-Schlüssels. Dieser muss mit dem Standort 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 (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 eine JSON-Antwort ähnlich wie diese 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

Verwenden Sie eine der folgenden Methoden, um ein vorhandenes Secret für die Verwendung von CMEK zu aktualisieren:

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 in der Liste nach dem Secret und klicken Sie auf das Aktionen-Menü, das diesem Secret zugeordnet ist. Klicken Sie im Menü Aktionen auf Bearbeiten.

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

  4. Rufen Sie auf der Seite Secret bearbeiten den Bereich Verschlüsselung auf.

  5. Wählen Sie unter Verschlüsselung die Option Vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) aus und wählen Sie dann Ihren CMEK-Schlüssel aus der Liste Verschlüsselungsschlüssel aus. Achten Sie darauf, dass Ihr CMEK-Schlüssel am angegebenen Speicherort vorhanden ist und Ihr Secret Manager-Projekt die erforderlichen Berechtigungen zur Verwendung des Schlüssels hat.

  6. 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: der Google Cloud Standort des Secrets
  • CMEK_KEY: Der vollständig qualifizierte Pfad zum spezifischen CMEK-Schlüssel im Cloud Key Management Service, mit dem das Secret geschützt wird.

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: der Google Cloud Speicherort des Secrets.
  • 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 Speicherort Ihres Cloud KMS-Schlüssels. Dieser muss mit dem Standort 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 (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"
  }
}

Nächste Schritte