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.
| Mode | Entrée du workflow | E/S activité | Stocké dans notre base de données |
|---|---|---|---|
| Par défaut | clair | clair | oui (clair) |
| Chiffrement | chiffré | chiffré | oui (chiffré) |
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
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é 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
Deux modes sont disponibles :
full: chaque charge utile est chiffrée.partial: seuls les champs typés commeEncryptedStrFieldsont 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
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.