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 im inaktiven Zustand automatisch mit Google-eigenen und von Google verwalteten Schlü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 mit CMEK verschlüsselte Google Cloud-Ressourcen können je nach verwendetem Schlüssel auch das Cloud KMS-Kontingent beanspruchen. 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. 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 beim Erstellen eines Repositorys zu. 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
Im Google Cloud-Projekt, in dem Sie Ihre Schlüssel verwalten möchten:
Erstellen Sie einen Schlüsselbund und einen Schlüssel mit einer der folgenden Optionen:
- Erstellen Sie den Schlüsselbund und den Schlüssel direkt in Cloud KMS.
- Verwenden Sie einen extern verwalteten Schlüssel. Erstellen Sie den externen Schlüssel und erstellen Sie dann einen Cloud EKM-Schlüssel, um den Schlüssel über Cloud KMS verfügbar zu machen.
Der Speicherort des Cloud KMS-Schlüssels muss mit dem Speicherort des Repositorys übereinstimmen, das Sie verschlüsseln möchten.
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.
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
Rufen Sie die Seite "Kryptografische Schlüssel" auf.
Wählen Sie den erstellten Schlüssel aus.
Gewähren Sie dem Artifact Registry-Dienstkonto Zugriff:
- Wählen Sie INFOFELD ZEIGEN aus.
- Klicken Sie auf MITGLIED HINZUFÜGEN.
- Fügen Sie das Artifact Registry-Dienstkonto hinzu. Das Dienstkonto lautet service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, wobei PROJECT-NUMBER die Projektnummer des Google Cloud-Projekts ist, in dem Artifact Registry ausgeführt wird.
- Wählen Sie unter Rolle auswählen Cloud KMS > Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.
- Klicken Sie auf SPEICHERN.
Wiederholen Sie den vorherigen Schritt, um Zugriff auf das Konto zu gewähren, Repositories erstellen.
Kehren Sie zur Seite Kryptografische Schlüssel zurück und wählen Sie den Schlüssel noch einmal aus.
Wählen Sie das Optionsfeld Infofeld ansehen aus. Sie sollten Rollen auf der Seite Spalte Rolle/Mitglied:
gcloud
Führen Sie den folgenden Befehl aus, um dem Artifact Registry-Dienstkonto Zugriff 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
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.
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:
- Widerrufen Sie die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler“ aus dem Artifact Registry-Dienstkonto mithilfe der Google Cloud Console oder der gcloud CLI.
- Deaktivieren Sie vorübergehend den CMEK-Schlüssel.
- Löschen Sie endgültig den CMEK-Schlüssel.
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änkungconstraints/gcp.restrictNonCmekServices
, Artifact Registry weigert sich, neue Repositories zu erstellen, 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 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 constraints/gcp.restrictNonCmekServices
befindet, wird das Thema von Pub/Sub nicht erstellt. 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
- Mit CMEK verschlüsseltes Repository erstellen
- Weitere Informationen zu CMEK
- Mehr über die Standardverschlüsselung von Google erfahren