Daten mit vom Kunden verwalteten Verschlüsselungsschlüsseln verschlüsseln

Standardmäßig verschlüsselt Secure Source Manager ruhende Kundeninhalte. Die Verschlüsselung wird von Secure Source Manager übernommen. Weitere Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option heißt Google-Standardverschlüsselung.

Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Secure Source Manager verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutzlevel, Speicherort, Rotationszeitplan, Nutzungs- und Zugriffsberechtigungen sowie über kryptografische Grenzen. Mit Cloud KMS können Sie außerdem die Schlüsselnutzung verfolgen, Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen, die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten zu besitzen und zu verwalten, können Sie diese auch über Cloud KMS steuern und verwalten.

Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Secure Source Manager-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselung soptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).

Cloud KMS kann in einem separaten Projekt ausgeführt werden, in dem Sie Schlüssel für mehrere Projekte zentral verwalten, oder im selben Google Cloud Projekt wie Secure Source Manager. Um die Aufgabentrennung zu unterstützen und den Zugriff auf Schlüssel besser zu kontrollieren, empfehlen wir, Schlüssel in einem separaten Projekt zu erstellen und zu verwalten, das keine anderen Google Cloud Ressourcen enthält.

Sie weisen einen Cloud KMS-Schlüssel beim Erstellen einer Instanz zu. Der bestehende Verschlüsselungsmechanismus einer vorhandenen Instanz kann nicht mehr geändert werden. Für eine mit CMEK verschlüsselte Instanz lässt sich also der Verschlüsselungsmechanismus nicht in die Google-Standardverschlüsselung ändern und es kann auch kein anderer Cloud Key Management Service-Schlüssel für die Verschlüsselung zugewiesen werden.

Die Instanz muss am selben Standort wie der Cloud KMS-Schlüssel erstellt werden.

CMEK mit Cloud KMS Autokey

Sie können CMEKs manuell erstellen, um Ihre Secure Source Manager Ressourcen zu schützen, oder dazu Cloud KMS Autokey verwenden. Mit Autokey werden Schlüsselbunde und Schlüssel bei der Ressourcenerstellung in Secure Source Manager auf Anfrage generiert. Dienst-Agents, die die Schlüssel für Verschlüsselungs- und Entschlüsselungsvorgänge verwenden, werden erstellt, falls sie noch nicht vorhanden sind, und erhalten dann die erforderlichen IAM-Rollen (Identity and Access Management). Weitere Informationen finden Sie unter Übersicht: Autokey.

Cloud KMS-Kontingente und Secure Source Manager

Wenn Sie CMEK in Secure Source Manager verwenden, können Ihre Projekte Kontingente für kryptografische Cloud KMS-Anfragen verbrauchen. Mit CMEK verschlüsselte Instanzen verbrauchen diese Kontingente bei der Erstellung. Ver- und Entschlüsselungsvorgänge über CMEK-Schlüssel wirken sich nur dann auf Cloud KMS-Kontingente aus, wenn Sie Hardware- (Cloud HSM) oder externe Schlüssel (Cloud EKM) verwenden. Weitere Informationen finden Sie unter Cloud KMS-Kontingente.

CMEK-Schlüssel erstellen und Berechtigungen gewähren

In der folgenden Anleitung wird beschrieben, wie Sie einen Schlüssel erstellen und dem Secure Source Manager-Dienstkonto Berechtigungen für den Schlüssel gewähren.

  1. Cloud KMS-Schlüssel erstellen:

    Manuell

    1. Führen Sie im Google Cloud Projekt, in dem Sie Ihre Schlüssel verwalten möchten, folgende Schritte aus:

      1. Aktivieren Sie die Cloud KMS API.

      2. Erstellen Sie einen Schlüsselbund und einen Schlüssel mit einer der folgenden Optionen:

      Der Speicherort des Cloud KMS-Schlüssels muss mit dem Speicherort des Projekts übereinstimmen, in dem Sie die Secure Source Manager- Instanz erstellen möchten.

    Autokey verwenden

    1. Aktivieren Sie Cloud KMS Autokey, falls noch nicht geschehen, aktivieren Sie Cloud KMS Autokey.

    2. Erstellen Sie ein neues Cloud KMS Autokey KeyHandle:

      curl -H "Content-Type: application/json" \
          -H "X-Goog-User-Project: PROJECT" \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -X POST https://cloudkms.googleapis.com/v1/projects/PROJECT/locations/LOCATION/keyHandles \
          -d '{"resource_type_selector": "securesourcemanager.googleapis.com/Instance"}'
      

      Ersetzen Sie Folgendes:

      • PROJECT: Die Projekt-ID des Projekts, in dem Cloud KMS Autokey aktiviert ist und in dem Sie eine Secure Source Manager-Instanz bereitstellen möchten.
      • LOCATION: Der KeyHandle Speicherort. Er muss mit dem Speicherort übereinstimmen, an dem Sie eine Secure Source Manager-Instanz bereitstellen möchten.

      Die Ausgabe sieht etwa so aus:

      {
        "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION",
        "metadata": {
          "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
        }
      }
      

      Notieren Sie sich den Wert von OPERATION aus der Ausgabe. Sie benötigen diesen Wert, um die Ressourcen-ID des erstellten Schlüssels abzurufen.

    3. Suchen Sie den Cloud KMS-Schlüssel, der mit dem Schlüsselhandle verknüpft ist:

      curl -H "X-Goog-User-Project: PROJECT" \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -X GET https://cloudkms.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION
      

      Ersetzen Sie Folgendes:

      • PROJECT: Die Projekt-ID des Projekts, in dem Cloud KMS Autokey aktiviert ist und in dem Sie eine Secure Source Manager-Instanz bereitstellen möchten.
      • LOCATION: Der KeyHandle Speicherort. Er muss mit dem Speicherort übereinstimmen, an dem Sie eine Secure Source Manager-Instanz bereitstellen möchten.
      • OPERATION: Die ID des Schlüsselhandle-Anfragevorgangs aus der Ausgabe des vorherigen Schritts.

      Die Ausgabe sieht etwa so aus:

      {
        "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION",
        "done": true,
        "response": {
          "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
          "name": "projects/PROJECT/locations/LOCATION/keyHandles/KEY_HANDLE",
          "kmsKey": "projects/PROJECT/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
          "resourceTypeSelector": "securesourcemanager.googleapis.com/Instance"
        }
      }
      

      Der Wert des Elements kmsKey in der Ausgabe ist die vollständige Ressourcen-ID des Schlüssels, der von Cloud KMS Autokey für diese Ressource erstellt wurde. Sie können diese Ressourcen-ID genauso verwenden wie die Ressourcen-ID für jede andere Cloud KMS-Ressource.

  2. Wenn Sie die erste Secure Source Manager-Instanz in Ihrem Projekt erstellen, müssen Sie den Secure Source Manager-Dienst-Agent manuell erstellen, indem Sie den folgenden Befehl ausführen:

    gcloud beta services identity create \
    --service=securesourcemanager.googleapis.com \
    --project=PROJECT
    

    Dabei ist PROJECT die Projekt-ID des Projekts, in dem Sie die Secure Source Manager-Instanz erstellen.

    Nachdem Sie das P4SA (Per-Product-Per-Project-Dienstkonto) erstellt haben, müssen Sie dem Prinzipal service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com die Rolle „Secure Source Manager-Dienst-Agent“ (roles/securesourcemanager.serviceAgent) zuweisen, andernfalls schlägt die Instanzerstellung fehl.

  3. Weisen Sie dem Secure Source Manager-Dienstkonto die IAM-Rolle „CryptoKey-Verschlüsseler/Entschlüsseler“ (roles/cloudkms.cryptoKeyEncrypterDecrypter) zu. Erteilen Sie diese Berechtigung für den von Ihnen erstellten Schlüssel.

    Console

    1. Rufen Sie die Seite Key Management auf.

      Key Management aufrufen

    2. Wählen Sie den gewünschten Schlüsselbund aus, öffnen Sie die Seite Details zum Schlüsselbund und wählen Sie dann den erstellten Schlüssel aus.

    3. Gewähren Sie Zugriff auf das Secure Source Manager-Dienstkonto:

      1. Klicken Sie auf HAUPTKONTO HINZUFÜGEN.
      2. Fügen Sie das Secure Source Manager-Dienstkonto hinzu. Das Dienstkonto ist service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, wobei PROJECT-NUMBER die Projektnummer des Google Cloud Projekts ist, in dem Secure Source Manager aktiviert ist.
      3. Wählen Sie unter Rolle auswählen die Option Cloud KMS > Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.
      4. Klicken Sie auf SPEICHERN.
    4. Wiederholen Sie den vorherigen Schritt, um Zugriff auf das Konto zu gewähren, mit dem die Secure Source Manager-Instanz erstellt wird.

    5. Kehren Sie zur Key Management Seite zurück, wählen Sie den Schlüsselbund aus und öffnen Sie die Details zum Schlüsselbund Seite. Wählen Sie dann den Schlüssel noch einmal aus.

    6. Wählen Sie das Optionsfeld Infofeld ansehen aus. In der Spalte Rolle/Mitglied sollten Rollen angezeigt werden.

    gcloud

    1. Führen Sie den folgenden Befehl aus, um Zugriff auf das Secure Source Manager-Dienstkonto zu gewähren:

      gcloud kms keys add-iam-policy-binding [--project=PROJECT] \
             KEY_NAME --location LOCATION --keyring=KEY_RING \
             --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com \
             --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Ersetzen Sie Folgendes:

      • PROJECT: Die ID des Projekts, das den Schlüssel enthält.
      • KEY_NAME: Der Schlüsselname.
      • LOCATION: Der Speicherort des Schlüssels. Der Speicherort des Schlüssels muss mit dem Speicherort des Projekts übereinstimmen, in dem Sie eine Secure Source Manager-Instanz bereitstellen möchten.
      • KEY_RING: Der Name des Schlüsselbunds.
      • PROJECT_NUMBER: die Projektnummer des Google Cloud Projekts, in dem Secure Source Manager aktiviert ist.
    2. Wiederholen Sie den vorherigen Schritt, um Zugriff auf das Konto zu gewähren, mit dem die Secure Source Manager-Instanz erstellt wird.

    Weitere Informationen zu diesem Befehl finden Sie in der Dokumentation zu gcloud kms keys add-iam-policy-binding.

Zugriff entfernen

Es gibt verschiedene Möglichkeiten, um den Zugriff auf ein mit CMEK verschlüsseltes Repository wieder aufzuheben:

Wir empfehlen, die Berechtigungen des Secure Source Manager-Dienstkontos zu widerrufen, bevor Sie einen Schlüssel deaktivieren oder löschen. Die Änderung von Berechtigungen wird innerhalb von Sekunden wirksam, sodass Sie sofort nachvollziehen können, wie sich das Deaktivieren oder Löschen eines Schlüssels auswirkt.

Wenn Sie den Verschlüsselungsschlüssel für eine Instanz deaktivieren oder löschen, können Sie keine Daten mehr aus der Instanz ansehen oder abrufen. Alle in der Instanz gespeicherten Daten sind dann nicht mehr zugänglich, einschließlich des Codeverlaufs, der Pull-Anfragen und der Probleme.

Nutzer mit der Rolle „Secure Source Manager-Instanzadministrator“ oder „Instanzinhaber“ können die Instanz löschen.

CMEK-Organisationsrichtlinien

Secure Source Manager unterstützt Einschränkungen von Organisationsrichtlinien die einen CMEK-Schutz erfordern können.

Mit Richtlinien kann eingeschränkt werden, welche Cloud KMS CryptoKeys für den CMEK-Schutz verwendet werden können.

  • Wenn sich die Secure Source Manager API in der Richtlinienliste Deny der Einschränkung constraints/gcp.restrictNonCmekServices befindet, lehnt Secure Source Manager das Erstellen neuer Instanzen ab, die nicht mit CMEK geschützt sind.

  • Wenn constraints/gcp.restrictCmekCryptoKeyProjects konfiguriert ist, erstellt Secure Source Manager CMEK-geschützte Instanzen, die durch einen CryptoKey aus einem zulässigen Projekt, Ordner oder einer Organisation geschützt sind.

Weitere Informationen zum Konfigurieren von Organisationsrichtlinien finden Sie unter CMEK-Organisationsrichtlinien.

Nächste Schritte