Aller au contenu principal

Clés de chiffrement

L'écran Clés de chiffrement permet de créer les clés d'enveloppe qui chiffrent les données du tenant, de les faire tourner et de lire les métadonnées publiques des clés qui signent les contextes d'exécution (avec leur révocation par un administrateur de la plateforme). Chemin dans le portail : /security/encryption-keys, menu Sécurité et gouvernance > Clés de chiffrement. Il sert aux administrateurs de tenant et aux responsables sécurité, et aux administrateurs de la plateforme pour les clés de signature.

Ce que montre l'écran​

L'écran (EncryptionKeys dans portal/src/screens/encryption.tsx) contient deux tableaux.

Clés de chiffrement, lu dans GET /v1/encryption/keys (sans pagination), trié par nom :

ColonneContenu
NomNom de la clé, par exemple customer-data.
FinalitéUsage de la clé, data par défaut.
AlgorithmeAlgorithme de chiffrement.
Coffreopenbao-transit quand OpenBao est configuré, sinon local.
VersionVersion courante ; chaque rotation en ajoute une.
StatutStatut de la clé, par exemple active.
RotationDate de la dernière rotation.
CrééDate de création.

Tableau vide : « Aucune clé de chiffrement », « Créez une clé pour chiffrer les données du tenant ; la rotation ajoute une version. »

Clés de signature des contextes, lu dans GET /v1/context/keys : métadonnées publiques seulement, jamais le matériel de clé.

ColonneContenu
Identifiant de clékid de la clé de signature.
AlgorithmeAlgorithme de signature.
StatutPar exemple active ou revoked.
Première utilisation, Dernière utilisationPremier et dernier usage de la clé.
Retrait aprèsDate après laquelle la clé est retirée.
Révoqué le, Révoquée parDate et auteur de la révocation.

Un clic sur une ligne de l'un ou l'autre tableau affiche la ligne dans un panneau latéral.

Actions​

Bouton ou actionEffetAppel APIRôles
Nouvelle clé (puis Créer)Crée une clé avec Nom (obligatoire, exemple customer-data) et Finalité (par défaut data) ; la version 1 est générée. Audité sous encryption.key.create.POST /v1/encryption/keystenant_admin, security_officer (bouton masqué pour les autres)
Rotation (menu de la ligne, affiché quand la clé est active)Après une confirmation, ajoute une nouvelle version de la clé ; les données chiffrées avec les versions précédentes restent lisibles. Audité sous encryption.key.rotate.POST /v1/encryption/keys/{key_id}/rotatetenant_admin, security_officer (masqué pour les autres)
Révoquer (menu de la ligne d'une clé de signature non révoquée)Ouvre un formulaire avec Raison (obligatoire), puis Révoquer : les contextes d'exécution signés par cette clé ne sont plus acceptés. Audité sous context.key.revoke.POST /v1/context/keys/{kid}/revokeplatform_admin (masqué pour les autres)
Clic sur une ligne ou Voir le détailAffiche la ligne.AucunLecteurs du tableau
Icône d'actualisation d'un tableauRelit la liste.GET /v1/encryption/keys ou GET /v1/context/keysLecteurs du tableau
attention

Révoquer une clé de signature refuse aussitôt chaque contexte d'exécution qu'elle a signé : les agents et applications en cours qui détiennent un tel contexte doivent en obtenir un nouveau.

Rôles​

Le portail affiche la création et la rotation à ROLES.encryptionAdmins (tenant_admin, security_officer) et la révocation à ROLES.platformAdmins (platform_admin), d'après portal/src/lib/kit.ts. Le Control Plane applique les mêmes rôles : la liste des clés de chiffrement exige seulement un tenant, la création et la rotation exigent tenant_admin ou security_officer (services/control-plane/src/eai/domains/privacy/__init__.py) ; la liste des clés de signature exige security_officer ou auditor, la révocation platform_admin (services/control-plane/src/eai/domains/context/routes.py). platform_admin passe tous les contrôles de rôle.

Tâches courantes​

Créer une clé pour un domaine de données​

  1. Ouvrir le formulaire. Une clé par domaine de données limite l'impact d'une rotation. Cliquez Nouvelle clé. Résultat attendu : un panneau latéral avec Nom et Finalité. En cas d'échec : sans bouton, vous n'êtes ni tenant_admin ni security_officer.
  2. La nommer. Saisissez un Nom en minuscules, par exemple customer-data, gardez Finalité data. Résultat attendu : le formulaire accepte le nom. En cas d'échec : rien à relancer à cette étape.
  3. Créer. Cliquez Créer. Résultat attendu : le message Créé et une ligne avec Version 1 et le statut active. En cas d'échec : invalid_request (HTTP 400) avec name signale un nom hors de [a-z0-9][a-z0-9._-]{0,62} ; conflict (HTTP 409) signale un nom existant.

Faire tourner une clé​

  1. Trouver la clé. Seule une clé active peut tourner. Repérez sa ligne et notez Version. Résultat attendu : la version courante. En cas d'échec : sans Rotation dans le menu, la clé n'est pas active ou le rôle vous manque.
  2. Faire tourner. Menu de la ligne > Rotation, puis acceptez la confirmation. Résultat attendu : le message Terminé, la Version augmentée de un et une nouvelle date Rotation. En cas d'échec : key_not_found (HTTP 404) signifie que la clé a été retirée ; actualisez le tableau.

Révoquer une clé de signature compromise​

  1. Trouver la clé. La révocation porte sur un kid. Repérez la ligne par son Identifiant de clé dans Clés de signature des contextes. Résultat attendu : la clé avec son statut et son dernier usage. En cas d'échec : forbidden sur ce tableau signifie que vous n'êtes ni security_officer, ni auditor, ni platform_admin.
  2. Révoquer. Menu de la ligne > Révoquer, saisissez la Raison, puis Révoquer. Résultat attendu : le message Terminé et le statut revoked avec Révoqué le et Révoquée par. En cas d'échec : signing_key_not_found (HTTP 404) signale une clé inconnue ou déjà révoquée ; validation_error signale une raison de moins de 3 caractères.

Dépannage​

SymptômeCauseCorrection
Clés de signature des contextes affiche forbidden (HTTP 403)La liste exige security_officer ou auditor (ou platform_admin) ; un tenant_admin seul ne peut pas la lire.Demandez l'un de ces rôles.
invalid_request (HTTP 400) avec nameLe nom ne suit pas [a-z0-9][a-z0-9._-]{0,62}.Utilisez des minuscules, des chiffres, ., _ et -.
conflict (HTTP 409)Une clé de ce nom existe déjà.Choisissez un autre nom, ou faites tourner la clé existante.
key_not_found (HTTP 404)La clé n'existe pas pour ce tenant.Actualisez le tableau.
signing_key_not_found (HTTP 404)Clé de signature introuvable ou déjà révoquée.Actualisez le tableau.
tenant_required (HTTP 403)Le compte agit sans tenant.Connectez-vous avec un compte du tenant.

Pages liées​