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.

Übersicht

Standardmäßig verschlüsselt Google Cloud Daten automatisch, wenn sie mit Schlüsseln, die Google gehören und von Google verwaltet werden. Wenn bestimmte Compliance- oder regulatorische Anforderungen in Bezug auf die Schlüssel haben, können Sie mit CMEK-Schlüsseln verschlüsselte Repositories erstellen. Metadaten zu einem Repository, z. B. der Repository-Name, werden mit Google-Standardverschlüsselung

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 Mit CMEK verschlüsselte Google Cloud-Ressourcen können auch Cloud KMS-Kontingent, abhängig vom Schlüsseltyp die Sie verwenden. Prüfen, ob das Kontingent zum Aktivieren von Secrets auf Anwendungsebene ausreicht Verschlüsselung für Ihre Anwendungen und Workflows.

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. Um die Aufgabentrennung und eine bessere Kontrolle Zugriff auf Schlüssel haben, sollten Sie sie in einem separaten Projekt, das andere Google Cloud-Ressourcen enthält.

Sie weisen einen CMEK-Schlüssel zu, wenn Sie ein Repository erstellen. Sie können die Verschlüsselungsmechanismus eines vorhandenen Repositorys. Wenn Sie einen CMEK-verschlüsselt haben können Sie den Verschlüsselungsmechanismus nicht in die Standardeinstellung von Google ändern. Verschlüsselung verwenden 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 Erteilen Sie Berechtigungen zum Verschlüsseln und Entschlüsseln von Repository-Daten mit dem Schlüssel. Ich können einen direkt in Cloud KMS erstellten oder einen extern verwalteten Schlüssel verwenden 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 Speicherort des Repositorys des zu verschlüsselnden Repositorys.

  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 Cloud KMS-Seite

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

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

      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, Repositories erstellen.

    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. Sie sollten Rollen auf der Seite Spalte Rolle/Mitglied:

    gcloud

    1. Führen Sie den folgenden Befehl aus, um Zugriff auf Artifact Registry zu gewähren Dienstkonto:

      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
      

      Dabei gilt:

      • 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, Repositories erstellen.

    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 CMEK-Schutz erforderlich.

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

  • Wenn die Artifact Registry API in der Richtlinienliste Deny der Dienste enthalten ist Einschränkung constraints/gcp.restrictNonCmekServices, Artifact Registry weigert sich, neue Repositories zu erstellen, die nicht CMEK-geschützt sind.

  • Wenn constraints/gcp.restrictCmekCryptoKeyProjects konfiguriert ist, gilt Folgendes: Artifact Registry erstellt 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, Artifact Registry versucht, automatisch ein Pub/Sub-Thema mit der Themen-ID zu erstellen. gcr mit Google-eigenen und von Google verwalteten Schlüsseln. Wenn sich die Pub/Sub API in der Deny-Richtlinienliste für die Einschränkung befindet constraints/gcp.restrictNonCmekServices, Pub/Sub verweigert um das Thema zu erstellen. Informationen zum Erstellen des Themas gcr mit CMEK-Verschlüsselung finden Sie in den Pub/Sub-Anleitung zum Verschlüsseln von Themen

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

Nächste Schritte