Kunden-verwaltete Verschlüsselungsschlüssel (CMEK)

Dialogflow CX verschlüsselt ruhende Kundeninhalte standardmäßig. Die Verschlüsselung wird von Dialogflow CX für Sie übernommen. Weitere Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option heißt Google-Standardverschlüsselung. Für die Google-Standardverschlüsselung werden dieselben gehärteten Schlüsselverwaltungssysteme verwendet, die wir auch für unsere eigenen verschlüsselten Daten verwenden. Diese Systeme umfassen strenge Schlüsselzugriffskontrollen und Auditing.

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 Dialogflow CX 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 Dialogflow CX-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).

Geschützte Daten

Sie können alle ruhenden Daten von Dialogflow CX-Agents mit CMEKs schützen.

Beschränkungen

  • Die Schlüsselrotation wird unterstützt, die Neuverschlüsselung von Daten jedoch nicht. Das erneute Verschlüsseln von zuvor verschlüsselten Daten mit einer neuen Schlüsselversion wird nicht unterstützt.
  • Die folgenden Regionen werden nicht unterstützt:
    • global
  • Pro Projektstandort sollte ein Schlüssel verwendet werden.
  • Wenn Sie einen Agent mit aktivierter CMEK wiederherstellen möchten, müssen Sie die Cloud Storage-Option auswählen.
  • Vorhandene Ressourcen in Projekten ohne CMEK-Integration können nicht nachträglich in CMEK integriert werden. Stattdessen müssen Sie Ressourcen in ein neues Projekt für CMEK exportieren und wiederherstellen.
  • Für Vertex AI Agent Builder gelten einige Cloud Key Management Service-Einschränkungen.

Schlüssel erstellen

Zum Erstellen von Schlüsseln verwenden Sie Cloud KMS. Eine Anleitung finden Sie unter Symmetrische Schlüssel erstellen. Beim Erstellen oder Auswählen eines Schlüssels müssen Sie Folgendes konfigurieren:

  • Wählen Sie den Standort aus, den Sie für Ihren Agent verwenden. Andernfalls schlagen Anfragen fehl.

Dialogflow-Dienstkonto identifizieren

So identifizieren Sie das Dialogflow-Dienstkonto:

  1. Öffnen Sie die Conversational Agents-Konsole.
  2. Wählen Sie Ihr Projekt aus.
  3. Wählen Sie den Agent aus.
  4. Klicken Sie im Navigationsmenü auf Einstellungen und dann auf den Tab Sicherheit.
  5. Klicken Sie auf Sicherheitseinstellungen verwalten, um zur CCAI-Konsole weitergeleitet zu werden.
  6. Rufen Sie in der CCAI Console den Tab CMEK auf.
  7. Klicken Sie auf Dienstkonto prüfen oder erstellen.
  8. Notieren Sie sich den angezeigten Dienstkontonamen (z.B. service-665989447347@gcp-sa-ccai-cmek.IAM.gserviceaccount.com).

Berechtigungen für das Dienstkonto gewähren

So gewähren Sie dem Dienstkonto Berechtigungen:

  1. Rufen Sie die Cloud KMS-Seite auf.
  2. Wählen Sie den von Ihnen erstellten Schlüsselbund aus.
  3. Wählen Sie den Schlüssel aus, den Sie in diesem Schlüsselbund erstellt haben.
  4. Wechseln Sie zum Tab Berechtigungen.
  5. Klicken Sie auf Zugriff gewähren.
  6. Geben Sie im Feld Neue Hauptkonten das Dialogflow-Dienstkonto ein, das Sie im vorherigen Schritt identifiziert haben.
  7. Wählen Sie in der Liste Rolle auswählen die Option Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.
  8. Klicken Sie auf Speichern.

Ressourcennamen des Schlüssels kopieren

So kopieren Sie den Ressourcennamen des Schlüssels:

  1. Rufen Sie die Seite mit den KMS-Schlüsseldetails auf.
  2. Klicken Sie auf das Menü Aktion und wählen Sie Ressourcenname kopieren aus.

Durch diese Aktion wird der vollständige Pfad Ihres KMS-Schlüssels kopiert (z. B. projects/<var>PROJECT_ID</var>/locations/<var>LOCATION_ID</var>/keyRings/<var>KEY_RING</var>/cryptoKeys/<var>KEY_ID</var>).

CMEK in Dialogflow aktivieren

So aktivieren Sie CMEK in Dialogflow:

  1. Kehren Sie in der CCAI-Konsole zum Tab CMEK zurück.
  2. Fügen Sie den kopierten Schlüsselressourcennamen in das Feld Schlüssel für den Speicherort ein, an dem Sie CMEK aktivieren möchten.
  3. Klicken Sie auf Speichern.

Dadurch wird ein Vorgang mit langer Ausführungszeit gestartet, um CMEK für den ausgewählten Standort zu aktivieren. Dieser Vorgang dauert 2 bis 3 Minuten.

Agent für die Verwendung Ihrer Schlüssel konfigurieren

Wenn Sie einen Agent erstellen, geben Sie seinen Standort an und legen Sie fest, ob für diesen Standort ein Google-managed encryption key oder ein CMEK verwendet werden soll.

CMEK über die Befehlszeile einrichten

Alternativ können Sie die folgenden Befehle verwenden, um CMEK einzurichten. Das ist hilfreich, wenn Sie CMEK für mehrere Regionen einrichten.

  1. Erstellen Sie mit der Google Cloud CLI das CCAI CMEK-Dienstkonto für Ihr Projekt. Weitere Informationen finden Sie in der gcloud services identity-Dokumentation.

     gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID

    Das Dienstkonto wird erstellt. Sie wird nicht in der Antwort auf die Erstellung zurückgegeben, hat aber das folgende Format:

     service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
  2. Weisen Sie dem CCAI CMEK-Dienstkonto die Rolle Cloud KMS CryptoKey Encrypter/Decrypter zu, damit der Dienst mit Ihrem Schlüssel verschlüsseln und entschlüsseln kann.

     gcloud kms keys add-iam-policy-binding KMS_KEY_ID \
     --project=PROJECT_ID \
     --location=LOCATION_ID \
     --keyring=KMS_KEY_RING \
     --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com \
     --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Schlüssel konfigurieren und Einstellungen mit der API prüfen

  1. Wenn Sie einen Schlüssel für den Dialogflow CX-Standort konfigurieren möchten, rufen Sie die InitializeEncryptionSpec API auf und geben Sie die folgenden Variablen an:

    • PROJECT_ID: Die Google Cloud Projekt-ID.
    • LOCATION_ID: Der Standort, den Sie auswählen, um CMEK in Dialogflow CX zu aktivieren.
    • KMS_KEY_RING: Der Schlüsselbund, in dem Ihr KMS-Schlüssel erstellt wurde. Der Speicherort im Schlüsselbund, z. B. projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING, muss mit dem Speicherort übereinstimmen, an dem Sie CMEK aktivieren.
    • KMS_KEY_ID: Der Name Ihres KMS-Schlüssels, der zum Verschlüsseln und Entschlüsseln von Dialogflow CX-Daten am ausgewählten Standort verwendet wird.

    Beispiel:

     curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        -d "{ encryption_spec: { kms_key: 'projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_ID' } }" \
        "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec:initialize"

    Die JSON-Antwort sieht in etwa so aus:

     {
       "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
     }
  2. Rufen Sie die GetOperation API auf, um das Ergebnis des Vorgangs mit langer Ausführungszeit (long-running operation, LRO) abzurufen.

    Beispiel:

     curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
  3. Rufen Sie die GetEncryptionSpec API auf, um den für einen Standort konfigurierten Verschlüsselungsschlüssel abzurufen.

    Beispiel:

     curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec"

Schlüssel widerrufen

Wenn Sie den Zugriff von Dialogflow CX auf den Schlüssel widerrufen möchten, können Sie die KMS-Schlüsselversion deaktivieren oder die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler des Dienstkontos aus dem KMS-Schlüssel entfernen.

Nach dem Widerruf des Schlüssels sind die verschlüsselten Daten für Dialogflow CX nicht mehr zugänglich und der Dienst ist nicht mehr betriebsbereit, bis die Schlüsselberechtigungen wiederhergestellt werden.