Vom Kunden verwaltete Verschlüsselungsschlüssel aktivieren

Auf dieser Seite wird gezeigt, wie Sie in Repositories gespeicherte Inhalte mit vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK) verschlüsseln.

Überblick

Standardmäßig verschlüsselt Google Cloud Daten im inaktiven Zustand automatisch mit von Google verwalteten Verschlüsselungsschlüsseln. Wenn Sie bestimmte Compliance- oder gesetzliche Anforderungen für die Schlüssel zum Schutz Ihrer Daten erfüllen müssen, können Sie Repositories erstellen, die mit CMEK-Schlüsseln verschlüsselt sind. Metadaten zu einem Repository, z. B. der Name des Repositorys, werden mit der Standardverschlüsselung von Google verschlüsselt.

Wenn Sie CMEK aktivieren, werden inaktive Daten in Repositories mit einem Schlüssel verschlüsselt, den Sie in Cloud Key Management Service verwalten. Sie können den Zugriff auf den CMEK-Schlüssel mithilfe der Identitäts- und Zugriffsverwaltung steuern. Wenn Sie den CMEK-Schlüssel vorübergehend deaktivieren oder dauerhaft löschen, kann nicht auf die mit diesem Schlüssel verschlüsselten Daten zugegriffen werden.

Mit CMEK können Sie mehr Elemente des Lebenszyklus und die Verwaltung Ihrer Schlüssel steuern. Für den Cloud KMS-Dienst fallen aber zusätzliche Kosten an. Artifact Registry-Repositories und andere Google Cloud-Ressourcen, die mit CMEK verschlüsselt sind, können je nach verwendetem Schlüsseltyp ebenfalls ein Cloud KMS-Kontingent verbrauchen. Prüfen Sie, ob Ihr Kontingent zum Aktivieren der Verschlüsselung von Secrets auf Anwendungsebene für Ihre Anwendungen und Workflows ausreicht.

Cloud KMS kann im selben Google Cloud-Projekt wie Artifact Registry oder in einem eigenen Projekt ausgeführt werden, in dem Sie Schlüssel für mehrere Projekte zentral verwalten. Für eine Aufgabentrennung und eine bessere Kontrolle über den Zugriff auf Schlüssel empfehlen wir, Schlüssel in einem separaten Projekt zu erstellen und zu verwalten, das andere Google Cloud-Ressourcen enthält.

Sie weisen einen CMEK-Schlüssel beim Erstellen eines Repositorys zu. Sie können den Verschlüsselungsmechanismus eines vorhandenen Repositorys nicht ändern. Wenn Sie ein CMEK-verschlüsseltes Repository haben, können Sie den Verschlüsselungsmechanismus nicht in die Google-Standardverschlüsselung ändern oder einen anderen Cloud KMS-Schlüssel für die Verschlüsselung zuweisen.

Weitere Informationen zu CMEK und deren Aktivierung finden Sie in der Cloud KMS-Dokumentation.

Schlüssel erstellen und Berechtigungen gewähren

In der folgenden Anleitung wird erläutert, wie Sie einen Schlüssel für ein Repository erstellen und Berechtigungen zum Verschlüsseln und Entschlüsseln von Repository-Daten mit dem Schlüssel erteilen. Sie können einen Schlüssel verwenden, der direkt in Cloud KMS erstellt wurde, oder einen extern verwalteten Schlüssel, den Sie mit Cloud External Key Manager zur Verfügung stellen.

  1. Im Google Cloud-Projekt, in dem Sie Ihre Schlüssel verwalten möchten:

    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 Repository-Speicherort des zu verschlüsselnden Repositorys übereinstimmen.

  2. Wenn Sie im Artifact Registry-Projekt noch kein Repository erstellt haben, ist das Artifact Registry-Dienstkonto noch nicht vorhanden. Um das Dienstkonto zu erstellen, führen Sie den folgenden Befehl aus:

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

    Ersetzen Sie dabei PROJECT durch die ID des Projekts, in dem Artifact Registry ausgeführt wird.

  3. Weisen Sie dem Artifact Registry-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 "Kryptografische Schlüssel" auf.

      Zur Seite "Cloud KMS"

    2. Wählen Sie den erstellten Schlüssel aus.

    3. Gewähren Sie Zugriff auf das Artifact Registry-Dienstkonto:

      1. Wählen Sie INFOFELD ZEIGEN aus.
      2. Klicken Sie auf Mitglied hinzufügen.
      3. Fügen Sie das Artifact Registry-Dienstkonto hinzu. Das Dienstkonto ist service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com. Dabei ist PROJECT-NUMBER die Projektnummer des Google Cloud-Projekts, in dem Artifact Registry ausgeführt wird.
      4. Wählen Sie unter Rolle auswählen Cloud KMS > Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.
      5. Klicken Sie auf SPEICHERN.
    4. Wiederholen Sie den vorherigen Schritt, um Zugriff auf das Konto zu gewähren, mit dem Repositories erstellt werden.

    5. Kehren Sie zur Seite Kryptografische Schlüssel zurück und wählen Sie 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 Artifact Registry-Dienstkonto zu gewähren:

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

      Wo

      • PROJECT ist die ID des Projekts, das den Schlüssel enthält.
      • KEY ist der Schlüsselname.
      • LOCATION ist der Speicherort des Schlüssels. Der Schlüsselspeicherort muss mit dem Speicherort des Repositorys übereinstimmen, das Sie verschlüsseln möchten.
      • KEYRING ist der Schlüsselbundname.
      • PROJECT-NUMBER ist die Projektnummer des Google Cloud-Projekts, in dem Artifact Registry ausgeführt wird.
    2. Wiederholen Sie den vorherigen Schritt, um Zugriff auf das Konto zu gewähren, mit dem Repositories erstellt werden.

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

Sie können jetzt ein Repository erstellen und dabei den Schlüssel für die Verschlüsselung angeben.

Zugriff entfernen

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

Wir empfehlen, die Berechtigungen des Artifact Registry-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 ein Repository deaktivieren oder löschen, können Sie die Artefaktdaten nicht mehr aufrufen oder abrufen. Auf alle im Repository gespeicherten Artefaktdaten kann dann nicht mehr zugegriffen werden. Dies gilt auch für erstellte Artefakte, beliebige Binärdaten (Blobs) und Manifeste wie Docker-Manifest- oder npm-Paketdateien. Nutzer mit der Rolle Artifact Registry-Leser oder -Betrachter haben aber weiterhin die Möglichkeit, Artefaktmetadaten wie den Artefaktnamen, die Version oder das Tag aufzurufen.

Nutzer mit der Rolle „Artifact Registry-Administrator“ oder „Inhaber“ können das Repository löschen.

CMEK-Organisationsrichtlinien

Artifact Registry unterstützt Einschränkungen für Organisationsrichtlinien, die einen CMEK-Schutz erfordern können.

Richtlinien können einschränken, welche Cloud KMS-CryptoKeys für den CMEK-Schutz verwendet werden können.

  • Wenn sich die Artifact Registry API in der Richtlinienliste Deny der Dienste der Einschränkung constraints/gcp.restrictNonCmekServices befindet, können von Artifact Registry keine neuen Repositories erstellt werden, die nicht CMEK-geschützt sind.

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

Pub/Sub unterstützt dieselben Einschränkungen. Wenn Sie die Artifact Registry API in einem Google Cloud-Projekt aktivieren, versucht Artifact Registry, automatisch ein Pub/Sub-Thema mit der Themen-ID gcr mit von Google verwalteten Verschlüsselungsschlüsseln zu erstellen. Wenn sich die Pub/Sub API in der Richtlinienliste Deny für die Einschränkung constraints/gcp.restrictNonCmekServices befindet, verweigert Pub/Sub das Erstellen des Themas. Informationen zum Erstellen des Themas gcr mit CMEK-Verschlüsselung finden Sie in der Pub/Sub-Anleitung zum Verschlüsseln von Themen.

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

Nächste Schritte