Aller au contenu principal

Incidents

L'écran Incidents permet de déclarer un incident de sécurité ou de sûreté, de suivre sa chronologie, de changer son statut et son responsable, d'ajouter des notes, et de lancer une action de réponse (suspendre un agent, désactiver un modèle ou un fournisseur, faire tourner une clé) depuis l'incident. Chemin dans le portail : /security/incidents, menu Sécurité et gouvernance > Incidents. Il sert aux responsables sécurité et aux administrateurs de tenant qui pilotent la réponse, et aux développeurs ou agents qui déclarent un incident.

Ce que montre l'écran​

L'écran (Incidents dans portal/src/screens/security.tsx) montre un tableau, Incidents, lu dans GET /v1/incidents, du plus récent au plus ancien, 50 lignes par requête avec un curseur.

ColonneContenu
TitreTitre de l'incident.
Gravitésev1 (la plus haute) à sev4.
Statutopen, investigating, contained, resolved, closed.
CatégorieCatégorie libre, other par défaut.
ResponsablePersonne en charge.
CrééDate de la déclaration.

Filtres au-dessus du tableau : Statut et Gravité (listes, tous par défaut), puis Filtrer. Un clic sur une ligne ouvre un panneau latéral chargé par GET /v1/incidents/{incident_id} : la chronologie (création, changements de statut et de gravité, notes, transmission au SIEM, actions) suivie du JSON de l'incident avec ses actions. Tableau vide : « Aucun incident », « Déclarez un incident pour coordonner la réponse. »

Actions​

Bouton ou actionEffetAppel APIRôles
Déclarer un incident (puis Créer)Crée l'incident avec Titre (3 à 300 caractères), Gravité (sev3 en premier dans la liste), Catégorie, Ressources, Responsable, Description ; ouvre la chronologie et transmet incident.created au SIEM.POST /v1/incidentstenant_admin, security_officer, developer, agent
FiltrerApplique les filtres Statut et Gravité.GET /v1/incidents (paramètres status, severity)Tout utilisateur du tenant
Clic sur une ligne ou Voir le détailOuvre la chronologie et le JSON de l'incident.GET /v1/incidents/{incident_id}Tout utilisateur du tenant
Répondre (menu de la ligne, puis Répondre)Lance une action de réponse : Action (suspend_agent, resume_agent, suspend_model, disable_provider, rotate_key), Identifiant de la cible, Raison. Le résultat s'affiche dans un panneau latéral. Une action exécutée fait passer un incident open ou investigating à contained.POST /v1/incidents/{incident_id}/actionstenant_admin, security_officer
Changer le statut (menu de la ligne, puis Changer le statut)Change Statut, Responsable et ajoute une Note à la chronologie ; chaque changement est transmis au SIEM sous incident.updated.PATCH /v1/incidents/{incident_id}tenant_admin, security_officer
Icône d'actualisationRelit la liste.GET /v1/incidentsTout utilisateur du tenant

Ce que fait chaque action de réponse côté serveur (execute_action dans services/control-plane/src/eai/domains/incidents/__init__.py) :

ActionEffetIdentifiant de la cible
suspend_agent, resume_agentKill switch du registre des agents.Nom ou identifiant de l'agent.
suspend_modelDésactive le modèle pour le tenant.Identifiant du modèle.
disable_providerDésactive le fournisseur LLM.Nom ou identifiant du fournisseur.
rotate_keyFait tourner une clé de chiffrement du tenant (nouvelle version).Nom ou identifiant de la clé de chiffrement.

Un modèle ou un fournisseur partagé par la plateforme exige un administrateur de la plateforme : sans platform_admin, l'action est enregistrée au statut pending avec la raison requires_platform_admin.

Rôles​

Le portail ne masque aucun bouton sur cet écran. Le Control Plane contrôle les rôles : déclarer exige tenant_admin, security_officer, developer ou agent ; Répondre et Changer le statut exigent tenant_admin ou security_officer (RESPONDERS) ; la lecture exige seulement un tenant. platform_admin passe tous les contrôles de rôle. Chaque écriture est auditée (incident.create, incident.update, incident.action.<action>).

Tâches courantes​

Déclarer un incident et confiner un agent​

  1. Le déclarer. Un incident déclaré donne à la réponse une chronologie et un responsable. Cliquez Déclarer un incident, remplissez Titre, Gravité (par exemple sev2), Responsable et Description, laissez Ressources vide, puis Créer. Résultat attendu : le message Créé et une nouvelle ligne au statut open. En cas d'échec : validation_error (HTTP 422) sur Ressources (voir Dépannage) ; forbidden signale un rôle manquant.
  2. Suspendre l'agent. La suspension arrête l'agent sans le supprimer. Menu de la ligne > Répondre, Action suspend_agent, Identifiant de la cible le nom de l'agent, Raison, puis Répondre. Résultat attendu : un panneau latéral avec l'action et le statut executed. En cas d'échec : unknown_action (HTTP 400) pour une action hors liste ; le statut failed avec un code d'erreur dans le résultat signifie que l'agent est introuvable ou a refusé le changement.
  3. Vérifier le statut et ajouter une note. Une action exécutée a déjà fait passer l'incident à contained ; une note indique aux autres intervenants ce qui a été fait. Menu de la ligne > Changer le statut, gardez Statut contained, remplissez Note, puis Changer le statut. Résultat attendu : le message Terminé, le statut contained et la note dans la chronologie. En cas d'échec : invalid_request (HTTP 400) pour un statut hors des cinq valeurs.

Clôturer un incident​

  1. Lire la chronologie. Chaque changement et chaque action y figurent avec leur auteur. Cliquez la ligne. Résultat attendu : la chronologie dans le panneau latéral. En cas d'échec : not_found signifie que l'incident a été retiré ou que l'identifiant est faux.
  2. Reprendre ce qui a été suspendu. Un agent suspendu le reste jusqu'à sa reprise. Menu de la ligne > Répondre, Action resume_agent. Résultat attendu : le statut executed dans le résultat. En cas d'échec : lisez le code d'erreur dans le panneau de résultat.
  3. Résoudre, puis fermer. Menu de la ligne > Changer le statut, Statut resolved (la date de résolution est enregistrée), plus tard closed. Résultat attendu : le statut de la ligne change. En cas d'échec : forbidden signifie que vos rôles ne sont ni tenant_admin ni security_officer.

Dépannage​

SymptômeCauseCorrection
validation_error (HTTP 422) sur Déclarer un incident avec resourcesLe formulaire envoie Ressources comme une liste de textes ; l'API attend une liste d'objets.Laissez Ressources vide, ou déclarez l'incident par l'API avec des objets ressource.
invalid_request (HTTP 400) avec severityUne gravité hors de sev1 à sev4 (ou critical, high, medium, low).Choisissez une valeur de la liste.
invalid_request avec status et allowedUn statut hors de open, investigating, contained, resolved, closed.Choisissez une valeur de la liste.
unknown_action (HTTP 400)L'action ne fait pas partie des actions permises.Choisissez une action de la liste.
invalid_request avec targetIdentifiant de la cible est vide.Saisissez le nom ou l'identifiant de la cible.
Résultat pending avec requires_platform_adminLe modèle ou le fournisseur appartient à la plateforme.Demandez à un administrateur de la plateforme de lancer l'action.
forbidden (HTTP 403) avec required_rolesVos rôles ne permettent pas cette écriture.Demandez l'un des rôles listés.
not_found avec incidentIdentifiant d'incident inconnu.Actualisez le tableau.

Pages liées​