In diesem Dokument wird beschrieben, wie Sie vom Kunden verwaltete Verschlüsselungsschlüssel (Customer Managed Encryption Keys, CMEK) verwenden, um ruhende Daten in einem Clouddienst über Cloud Key Management Service zu verschlüsseln und zu steuern. CMEK ist in die Codeanpassung für Gemini Code Assist integriert. Gemini Code Assist unterstützt die Verwendung von Cloud EKM-Schlüsseln nicht.
In diesem Dokument führen Sie folgende Schritte aus:
- CMEK erstellen
- Berechtigungen für das Gemini Code Assist-Dienstkonto gewähren
- Code-Repository-Index mit einem CMEK erstellen
- Zugriff auf ein CMEK-Repository entfernen
Gemini verschlüsselt ruhende Kundendaten standardmäßig. Google Cloud Gemini übernimmt die Verschlüsselung für Sie, ohne dass Sie weitere Maßnahmen ergreifen müssen. Diese Option wird Google-Standardverschlüsselung genannt.
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 Gemini 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 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 Gemini-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselung soptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).
Hinweis
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Führen Sie in der Entwicklungsumgebung, in der Sie die gcloud CLI eingerichtet haben, den
gcloud components updateBefehl aus, um sicherzustellen, dass Sie alle installierten Komponenten der gcloud CLI auf die aktuelle Version aktualisiert haben.gcloud components update
CMEK erstellen und Berechtigungen gewähren
Führen Sie die folgenden Aufgaben aus, um einen CMEK zu erstellen und dem Gemini Code Assist-Dienstkonto Berechtigungen für den Schlüssel zu gewähren:
Führen Sie im Google Cloud Projekt, in dem Sie Ihre Schlüssel verwalten möchten, folgende Schritte aus:
Erstellen Sie den Schlüsselbund und Schlüssel direkt in Cloud KMS.
Weisen Sie dem Gemini Code Assist-Dienstkonto die IAM-Rolle „CryptoKey-Verschlüsseler/Entschlüsseler“(
roles/cloudkms.cryptoKeyEncrypterDecrypter) zu. Gewähren Sie diese Berechtigung für den von Ihnen erstellten Schlüssel.Console
Rufen Sie die Schlüsselverwaltung auf.
Wählen Sie den erstellten Schlüssel aus.
Gewähren Sie Zugriff auf das Gemini Code Assist-Dienstkonto:
- Klicken Sie auf Hauptkonto hinzufügen.
- Fügen Sie das Gemini Code Assist-Dienstkonto hinzu. Das
Dienstkonto ist
service-PROJECT_NUMBER@gcp-sa-cloudaicompanions.iam.gserviceaccount.com, wobei PROJECT_NUMBER die Projektnummer des Google Cloud Projekts ist, in dem Gemini Code Assist aktiviert ist. - Wählen Sie unter Rolle auswählen die Option 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, mit dem der Code-Repository-Index mit einem CMEK erstellt wird.
Kehren Sie zur Schlüsselverwaltung Seite zurück und wählen Sie den Schlüssel noch einmal aus.
Wählen Sie Infofeld anzeigen aus. In der Spalte Rolle/Mitglied sollten Rollen angezeigt werden.
gcloud CLI
Verwenden Sie in einer Shell-Umgebung den
kms keys add-iam-policy-bindingBefehl, um Zugriff auf das Gemini Code Assist-Dienstkonto zu gewähren:gcloud kms keys add-iam-policy-binding KEY_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --keyring=KEYRING_NAME \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com" \ --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"Ersetzen Sie Folgendes:
- KEY_NAME: der Schlüsselname
- PROJECT_ID: die ID des Projekts, das den Schlüssel enthält
- LOCATION: der Speicherort des Schlüssels
- KEYRING_NAME: der Name des Schlüsselbunds
- PROJECT_NUMBER: die Projektnummer des Google Cloud Projekts, in dem Gemini Code Assist aktiviert ist
Wiederholen Sie den vorherigen Schritt, um Zugriff auf das Konto zu gewähren, mit dem der Code-Repository-Index mit einem CMEK erstellt wird.
Weitere Informationen zu diesem Befehl finden Sie in der
gcloud kms keys add-iam-policy-bindingDokumentation.
Sie können jetzt mit der API einen Code-Repository-Index mit einem CMEK erstellen und dabei den Schlüssel für die Verschlüsselung angeben.
Code-Repository-Index mit einem CMEK erstellen
Führen Sie einen der folgenden Schritte aus, um ein neues Repository mit CMEK-Schutz zu erstellen:
gcloud CLI
Verwenden Sie den gemini code-repository-indexes create Befehl:
gcloud gemini code-repository-indexes create CODE_REPOSITORY_INDEX_NAME \
--location=LOCATION \
--kms-key="projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
Ersetzen Sie Folgendes:
- CODE_REPOSITORY_INDEX_NAME: der Name des neuen Code-Repository Index, den Sie erstellen
- LOCATION: der Speicherort des Schlüssels
- KEY_PROJECT_ID: die Projekt-ID.
- KEYRING_NAME: der Name des Schlüsselbunds
- KEY_NAME: der Schlüsselname
API
Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "kmsKey": "projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME" }Ersetzen Sie Folgendes:
KEY_PROJECT_ID: die Projekt-IDKEY_LOCATION: der Speicherort des SchlüsselsKEYRING_NAME: der Name des SchlüsselbundsKEY_NAME: der Schlüsselname
Verwenden Sie einen
cURL-Befehl, um dieprojects.locations.codeRepositoryIndexes.createMethode aufzurufen:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudaicompanion.googleapis.com/v1/projects/PROJECT_ID/locations/KEY_LOCATION/codeRepositoryIndexes?codeRepositoryIndexId=CODE_REPOSITORY_INDEX_NAME"Ersetzen Sie Folgendes:
JSON_FILE_NAME: der Pfad für die JSON-Datei, die Sie im vorherigen Schritt erstellt habenPROJECT_ID: die ID des Projekts, in dem das Repository erstellt werden sollKEY_LOCATION: der Speicherort, an dem das Repository erstellt werden soll. Dieser muss mit dem Speicherort übereinstimmen, an dem sich der CMEK befindet.CODE_REPOSITORY_INDEX_NAME: der Name des neuen Code-Repository-Index, den Sie erstellen Beispiel:zg-btf-0001.
Die Antwort gibt eine Reihe von Logeinträgen zurück.
Zugriff auf ein CMEK-Repository 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“ role aus dem Gemini Code Assist-Dienstkonto mithilfe der Google Cloud Console oder der gcloud CLI.
- Deaktivieren Sie den CMEK vorübergehend.
- Löschen Sie den CMEK endgültig.
Wir empfehlen, die Berechtigungen des Gemini Code Assist-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.