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 kundenverwaltete Verschlüsselungsschlüssel (CMEKs) 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-Agenten mit CMEKs schützen.

Beschränkungen

  • Die Schlüsselrotation wird unterstützt, die erneute Verschlüsselung von Daten jedoch nicht. Das erneute Verschlüsseln zuvor verschlüsselter 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 aktiviertem 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 mit CMEK integriert werden. Exportieren und wiederherstellen Sie stattdessen Ressourcen in einem neuen Projekt für CMEK.
  • Für Vertex AI Agent Builder gelten einige Einschränkungen für Cloud Key Management Service.

Schlüssel erstellen

Verwenden Sie Cloud KMS, um Schlüssel zu erstellen. Eine Anleitung finden Sie unter Symmetrische Schlüssel erstellen. Achten Sie beim Erstellen oder Auswählen eines Schlüssels darauf, Folgendes zu konfigurieren:

  • Wählen Sie den Standort aus, den Sie für Ihren Agenten verwenden, da Anfragen fehlschlagen, wenn die Standorte nicht übereinstimmen.

Dialogflow-Dienstkonto identifizieren

So identifizieren Sie das Dialogflow-Dienstkonto:

  1. Öffnen Sie die Konsole für Konversations-Agenten.
  2. Wählen Sie Ihr Projekt aus.
  3. Wählen Sie den Agent aus.
  4. Klicken Sie im Navigationsmenü auf Einstellungen und rufen Sie dann den Tab Sicherheit auf.
  5. Klicken Sie auf Sicherheitseinstellungen verwalten, um zur CCAI-Konsole weitergeleitet zu werden.
  6. Rufen Sie in der CCAI-Konsole 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 Seite Cloud KMS 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.

Dadurch 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 zum Tab CMEK in der CCAI-Konsole zurück.
  2. Fügen Sie den kopierten Schlüsselressourcennamen in das Feld Schlüssel für den Standort ein, an dem Sie CMEK aktivieren möchten.
  3. Klicken Sie auf Speichern.

Dadurch wird ein Vorgang mit langer Ausführungszeit (Long Running Operation, LRO) gestartet, um CMEK für den ausgewählten Standort zu aktivieren. Dieser Vorgang dauert 2–3 Minuten.

Agent für die Verwendung Ihrer Schlüssel konfigurieren

Wenn Sie einen Agent erstellen, geben Sie seinen Standort an und 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 die Funktion 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 Dokumentation zu gcloud services identity.

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

    Das Dienstkonto wird erstellt. Sie wird nicht in der Erstellungsantwort 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-Verschlüsseler/Entschlüsseler 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

API zum Konfigurieren eines Schlüssels und zum Prüfen der Einstellungen verwenden

  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 Standort im Schlüsselbund, z. B. projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING, muss mit dem Standort ü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 zu erhalten.

    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. Wenn Sie den für einen Standort konfigurierten Verschlüsselungsschlüssel abrufen möchten, rufen Sie die GetEncryptionSpec API auf.

    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 vom KMS-Schlüssel entfernen.

Nach dem Widerruf des Schlüssels kann Dialogflow CX nicht mehr auf die verschlüsselten Daten zugreifen und der Dienst ist erst wieder funktionsfähig, wenn die Schlüsselberechtigungen wiederhergestellt wurden.