Chiffrement

Chiffrez toutes les charges utiles (entrées de workflow, E/S d'activité, données de signal) avant qu'elles ne quittent votre worker. La plateforme stocke les données chiffrées, et seuls vos workers peuvent les déchiffrer.

ModeEntrée du workflowE/S activitéStocké dans notre base de données
Par défautclairclairoui (clair)
Chiffrementchiffréchiffréoui (chiffré)
i
Information

Le chiffrement peut être combiné avec l'externalisation des charges utiles : les charges externalisées sont chiffrées avant de quitter votre worker, et l'orchestrateur ne voit qu'une référence chiffrée.

Prérequis

Prérequis

Installez l'extra de chiffrement :

uv add "mistralai[workflow-payload-encryption]"

Cela installe cryptography, utilisé par le SDK pour le chiffrement AES-GCM.

Générez une clé

Générez une clé

Générez une clé AES-GCM 256 bits :

from cryptography.hazmat.primitives.ciphers.aead import AESGCM

key = AESGCM.generate_key(bit_length=256)
print(key.hex())

Enregistrez la clé dans votre gestionnaire de secrets. Toute personne ayant cette clé pourra lire les données de votre workflow.

Configurez vos workers

Configurez vos workers

Deux modes sont disponibles :

  • full : chaque charge utile est chiffrée.
  • partial : seuls les champs typés comme EncryptedStrField sont chiffrés.
TEMPORAL_PAYLOAD_ENCRYPTION__MODE=full
TEMPORAL_PAYLOAD_ENCRYPTION__MAIN_KEY=<your_hex_key>

Les charges utiles chiffrées apparaissent sous forme de <encrypted> dans les traces d'exécution et l'interface Studio.

Rotation des clés

Rotation des clés

Pour effectuer une rotation sans coupure, procédez ainsi :

  • Générez une nouvelle clé avec la méthode ci-dessus.

  • Promouvez la nouvelle clé et conservez l'ancienne comme clé secondaire pour que les workers puissent encore déchiffrer les exécutions en cours :

    TEMPORAL_PAYLOAD_ENCRYPTION__MAIN_KEY=<new_key>
    TEMPORAL_PAYLOAD_ENCRYPTION__SECONDARY_KEY=<old_key>
  • Attendez que les workflows démarrés avant la rotation soient terminés. Ce délai dépend de votre rétention plus la durée des workflows (30 jours par défaut).

  • Retirez l'ancienne clé en supprimant la variable SECONDARY_KEY.