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

In diesem Dokument wird gezeigt, wie Sie mit vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer Managed Encryption Keys, CMEK) ruhende Daten in einem Cloud-Dienst über den Cloud Key Management Service verschlüsseln und steuern. CMEK ist in die Codeanpassung für Gemini Code Assist eingebunden.

Wenn Sie keinen CMEK verwenden, verwaltet Google standardmäßig die Schlüssel, mit denen die Daten verschlüsselt werden. Dieses Verhalten wird als Google-Standardverschlüsselung bezeichnet. Bei diesem Standardverhalten haben Sie keine Kontrolle über die Verschlüsselungsschlüssel.

In diesem Dokument tun Sie Folgendes:

  • Informationen zum Erstellen eines CMEK.
  • Gewähren Sie dem Gemini Code Assist-Dienstkonto Berechtigungen.
  • Erstellen Sie einen Code-Repository-Index mit einer CMEK.
  • Entfernen Sie den Zugriff auf ein CMEK-Repository.

In Gemini for Google Cloud werden inaktive Kundeninhalte standardmäßig verschlüsselt. Die Verschlüsselung wird von Gemini durchgeführt. Zusätzliche Maßnahmen Ihrerseits sind nicht erforderlich. 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 steuern 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 den Verschlüsselungsoptionen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).

Hinweis

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  2. Führen Sie in Ihrer Shell-Umgebung den Befehl gcloud components update aus, um sicherzustellen, dass Sie alle installierten Komponenten der gcloud CLI auf die neueste Version aktualisiert haben. Für diesen Schritt können Sie die gcloud CLI installieren und initialisieren oder Cloud Shell verwenden.

    gcloud components update
    

CMEK erstellen und Berechtigungen gewähren

So erstellen Sie einen CMEK und gewähren dem Gemini Code Assist-Dienstkonto Berechtigungen für den Schlüssel:

  1. Gehen Sie in dem Google Cloud Projekt, in dem Sie Ihre Schlüssel verwalten möchten, so vor:

    1. Cloud Key Management Service API aktivieren

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

  2. 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

    1. Gehen Sie zu Schlüsselverwaltung.

      Schlüsselverwaltung aufrufen

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

    3. Gewähren Sie Zugriff auf das Gemini Code Assist-Dienstkonto:

      1. Klicken Sie auf Hauptkonto hinzufügen.
      2. Fügen Sie das Dienstkonto für Gemini Code Assist hinzu. Das Dienstkonto lautet service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com. Dabei ist PROJECT_NUMBER die Projektnummer des Projekts Google Cloud , in dem Gemini Code Assist aktiviert ist.
      3. Wählen Sie unter Rolle auswählen 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, in dem der Code-Repository-Index mit einem CMEK erstellt wird.

    5. Kehren Sie zur Seite Schlüsselverwaltung zurück und wählen Sie den Schlüssel noch einmal aus.

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

    gcloud

    1. Wenn Sie dem Dienstkonto von Gemini Code Assist Zugriff gewähren möchten, verwenden Sie in einer Shell-Umgebung den Befehl kms keys add-iam-policy-binding:

      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: den Schlüsselnamen.
      • PROJECT_ID: die ID des Projekts, das den Schlüssel enthält.
      • LOCATION: den Speicherort des Schlüssels.
      • KEYRING_NAME: der Name des Schlüsselbunds.
      • PROJECT_NUMBER: die Projektnummer des Google Cloud -Projekts, für das Gemini Code Assist aktiviert ist.
    2. Wiederholen Sie den vorherigen Schritt, um Zugriff auf das Konto zu gewähren, in 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-binding-Dokumentation.

Sie können jetzt mit der API einen Code-Repository-Index mit einem CMEK erstellen und den Schlüssel für die Verschlüsselung angeben.

Code-Repository-Index mit CMEK erstellen

Erstellen Sie in gcloud CLI ein neues Repository im Dienst, das durch einen CMEK-Schlüssel geschützt ist:

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 Index des neuen Code-Repositories, das Sie erstellen.
  • LOCATION: den Speicherort des Schlüssels.
  • KEY_PROJECT_ID: die Schlüsselprojekt-ID.
  • KEYRING_NAME: der Name des Schlüsselbunds.
  • KEY_NAME: den Schlüsselnamen.

Zugriff auf ein CMEK-Repository entfernen

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

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.