Kunden-verwaltete Verschlüsselungsschlüssel (CMEK)

Dialogflow verschlüsselt inaktive Kundendaten standardmäßig. Die Verschlüsselung wird von Dialogflow durchgeführt. Zusätzliche Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option wird Google-Standardverschlüsselung genannt. 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 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 und zu verwalten, das die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten enthält, 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-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).

Geschützte Daten

Alle inaktiven Daten von Conversational Agents (Dialogflow CX) können mit CMEKs geschützt werden.

Beschränkungen

  • Die Schlüsselrotation wird unterstützt, die Neuverschlüsselung von Daten jedoch nicht. Das heißt, 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 nicht CMEK-integrierten Projekten können nicht nachträglich in CMEK integriert werden. Stattdessen wird empfohlen, Ressourcen zu exportieren und in einem neuen Projekt für CMEK wiederherzustellen.
  • Für KI-Anwendungen gelten einige Cloud KMS-Einschränkungen.

Schlüssel erstellen

Zum Erstellen von Schlüsseln verwenden Sie den KMS-Dienst. 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 unbedingt den Standort aus, den Sie für Ihren Agent verwenden. Andernfalls schlagen Anfragen fehl.

Agent für die Verwendung Ihrer Schlüssel konfigurieren

Wenn Sie einen Agent erstellen, können Sie den Standort des Agents angeben und angeben, ob der Agent einen von Google verwalteten oder den bereits konfigurierten vom Kunden verwalteten Schlüssel für diesen Standort verwenden soll. Treffen Sie jetzt Ihre Auswahl.

Vorbereitung

  1. Erstellen Sie das CCAI CMEK-Dienstkonto für Ihr Projekt mit der Google Cloud CLI. 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 Antwort auf den Erstellungsaufruf 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 die Berechtigung hat, mit Ihrem Schlüssel zu verschlüsseln und zu entschlüsseln.

    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 für den Standort von Konversations-Agents (Dialogflow CX) konfigurieren

  1. Verwenden Sie die InitializeEncryptionSpec API, um den Schlüssel zu konfigurieren.

    Sie müssen die folgenden Variablen angeben:

    • PROJECT_ID: Ihre Google Cloud -Projekt-ID
    • LOCATION_ID: Der Standort, den Sie für die Aktivierung von CMEK in Conversational Agents (Dialogflow CX) ausgewählt haben.
    • 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 Daten von Conversational Agents (Dialogflow CX) 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"

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
    }
  2. Verwenden Sie die GetOperation API, um das Ergebnis des Vorgangs mit langer Ausführungszeit zu prüfen.

    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"

CMEK-Einstellungen prüfen

Mit der GetEncryptionSpec API können Sie den für einen Standort konfigurierten Verschlüsselungsschlüssel prüfen.

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 Conversational Agents (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 für den KMS-Schlüssel entfernen.

Nach dem Widerruf des Schlüssels sind die verschlüsselten Daten für Konversations-Agents (Dialogflow CX) nicht mehr zugänglich. Der Dienst ist erst wieder betriebsbereit, wenn die Schlüsselberechtigungen wiederhergestellt wurden.