Aller au contenu principal

Posture de sécurité

L'écran Posture de sécurité permet de lire les protections de la plateforme et ses contrôles automatiques (conforme, alerte, échec), de modifier les réglages de sécurité de votre tenant (injection de prompt, contenu non fiable, liens, sorties réseau) et de suivre les événements de sécurité récents. Chemin dans le portail : /security/posture, menu Sécurité et gouvernance > Posture de sécurité. Il sert aux responsables sécurité (security_officer) et aux administrateurs de tenant (tenant_admin).

Ce que montre l'écran​

L'écran est construit par portal/src/screens/security-posture.tsx et lit quatre routes.

  • Ligne d'en-tête : le badge Environnement (par exemple prod) et la date Généré de la posture, tous deux lus dans GET /v1/security/posture.
  • Cartes de synthèse : trois compteurs, Conformes, Avertissements et En échec (champ summary de la posture).
  • Carte Contrôles : les contrôles regroupés par catégorie, triés par nom. Chaque ligne montre un badge d'état (OK, Alerte ou Échec), le message dans la langue du portail (message_fr ou message_en), l'identifiant du contrôle en police fixe et, s'il existe, un badge de gravité (Critique, Haute, Moyenne, Basse). Sans contrôle : « Aucun contrôle ».
  • Carte Protections : une tuile par protection de la plateforme (par exemple En-têtes de sécurité, HSTS, Hôtes autorisés, Proxys de confiance, Limites de taille, Limites de débit, Authentification, Origines CORS, Politique de sortie, Documentation API exposée). Un booléen affiche Activé ou Désactivé, une liste affiche un badge par valeur, un objet est affiché en JSON. Sans protection : « Aucune protection signalée ».
  • Carte Réglages de sécurité du tenant (« Mise à jour partielle, auditée sous security.settings.update. »), chargée par GET /v1/security/settings :
ChampValeursDéfautSignification
Mode anti-injection de promptDésactivé, Détecter, BloquerDétecteroff : aucun contrôle, detect : audit seulement, block : refuser la requête.
Liens dans les réponses du modèleAutoriser, Retirer les non fiablesRetirer les non fiablesstrip_untrusted retire les liens vers des hôtes hors liste.
Encadrer le contenu non fiableinterrupteuractivéLes résultats d'outils et les documents sont délimités comme données non fiables.
Hôtes de liens autorisésun hôte par lignevideHôtes dont les liens restent dans la réponse du modèle.
Hôtes de sortie autorisésun hôte ou *.suffixe par lignevideHôtes que le tenant peut appeler. Vide : aucune restriction du tenant.
  • Carte Événements de sécurité récents : un tableau avec les colonnes Date, Action, Acteur et Résultat. Le portail lit les 200 derniers événements d'audit (GET /v1/audit/events) et garde les 50 plus récents dont l'action commence par security.. Sans événement : « Aucun événement de sécurité ».

Actions​

Bouton ou actionEffetAppel APIRôles
Actualiser (en-tête de page)Relit la posture : synthèse, contrôles et protections.GET /v1/security/posturesecurity_officer, tenant_admin
Réessayer (état d'erreur d'une carte)Relit la carte en erreur.La route de la carteCeux de la carte
EnregistrerEnvoie les cinq réglages du formulaire en mise à jour partielle, puis recharge la posture et les événements. Message « Réglages de sécurité enregistrés ».PUT /v1/security/settingstenant_admin, security_officer
RéinitialiserRemet le formulaire aux dernières valeurs lues dans l'API, sans appel.AucunTout lecteur de l'écran
Chargement de Réglages de sécurité du tenantLit les réglages actuels du tenant.GET /v1/security/settingstenant_admin, security_officer
Chargement de Événements de sécurité récentsLit les événements d'audit et filtre les actions security.*.GET /v1/audit/eventsauditor, security_officer, tenant_admin, platform_admin

Rôles​

Le portail ne masque aucune partie de cet écran : le Control Plane décide. Côté serveur (services/control-plane/src/eai/domains/security/__init__.py), la posture et les réglages exigent security_officer ou tenant_admin, et platform_admin passe tous les contrôles de rôle. Les réglages exigent un tenant : un principal sans tenant reçoit tenant_required. La carte des événements suit les lecteurs du journal d'audit (ROLES.auditReaders dans portal/src/lib/kit.ts : auditor, security_officer, tenant_admin, platform_admin). Chaque enregistrement est écrit dans le journal d'audit sous security.settings.update avec les champs modifiés.

Tâches courantes​

Revoir la posture avant une mise en production​

  1. Ouvrir l'écran. La posture réunit les contrôles de la plateforme en un seul endroit. Menu Sécurité et gouvernance > Posture de sécurité. Résultat attendu : l'en-tête montre l'environnement et la date de génération, puis les trois compteurs. En cas d'échec : forbidden (HTTP 403) signifie que vous n'avez ni security_officer ni tenant_admin.
  2. Lire d'abord les contrôles en échec. Un contrôle Échec est une protection absente ou mal configurée. Cherchez dans la carte Contrôles les badges Échec et notez leur identifiant. Résultat attendu : la liste des contrôles à corriger, avec leur gravité. En cas d'échec : « Aucun contrôle » signifie que l'API a renvoyé une liste vide ; cliquez Actualiser.
  3. Vérifier les protections. Elles montrent la configuration effective de l'API (en-têtes, hôtes, limites, CORS). Lisez la carte Protections. Résultat attendu : Activé sur les protections attendues, les hôtes autorisés et les origines CORS de votre déploiement. En cas d'échec : une protection Désactivé se change dans la configuration du Control Plane, pas depuis cet écran (voir la page de configuration de la sécurité).
  4. Actualiser après correction. La posture est calculée à chaque lecture. Cliquez Actualiser. Résultat attendu : le compteur En échec baisse. En cas d'échec : le changement de configuration n'a pas été appliqué au Control Plane en service.

Bloquer les injections de prompt du tenant​

  1. Choisir le mode. block refuse une requête dont le contenu ressemble à une injection, detect se contente de l'auditer. Dans Réglages de sécurité du tenant, réglez Mode anti-injection de prompt sur Bloquer. Résultat attendu : la liste affiche Bloquer. En cas d'échec : la carte affiche « Connectez-vous avec un tenant pour modifier ses réglages. » quand l'API répond 400 ou 404 ; connectez-vous avec un compte du tenant.
  2. Garder le contenu non fiable encadré. L'encadrement délimite les résultats d'outils et les documents comme des données, pas comme des instructions. Laissez Encadrer le contenu non fiable activé. Résultat attendu : l'interrupteur est activé.
  3. Enregistrer. Cliquez Enregistrer. Résultat attendu : le message « Réglages de sécurité enregistrés » et une ligne security.settings.update dans Événements de sécurité récents. En cas d'échec : forbidden signale un rôle manquant ; une erreur sous un champ signale que la valeur de ce champ a été refusée.

Restreindre les hôtes que le tenant peut appeler​

  1. Lister les hôtes. Seuls les noms d'hôte publics sont acceptés, un par ligne, ou *.suffixe pour tout un domaine. Remplissez Hôtes de sortie autorisés, par exemple api.openai.com. Résultat attendu : un hôte par ligne dans le champ. En cas d'échec : rien à faire à cette étape.
  2. Enregistrer. Cliquez Enregistrer. Résultat attendu : « Réglages de sécurité enregistrés ». En cas d'échec : « Nom d'hôte public invalide » sous le champ signale une adresse IP, localhost ou un suffixe interne (.local, .internal, .svc, .corp...) ; « Liste d'au plus 200 noms d'hôte attendue. » signale une liste trop longue.
  3. Vérifier. Un appel sortant vers un autre hôte est désormais refusé. Surveillez Événements de sécurité récents. Résultat attendu : les sorties refusées y apparaissent. En cas d'échec : cliquez Réessayer sur la carte des événements ; forbidden sur cette carte signifie que vous ne lisez pas le journal d'audit.

Dépannage​

SymptômeCauseCorrection
État d'erreur forbidden (HTTP 403) sur la postureVos rôles ne sont ni security_officer ni tenant_admin.Demandez l'un de ces rôles à un administrateur du tenant.
« Connectez-vous avec un tenant pour modifier ses réglages. »GET /v1/security/settings a répondu 400 ou 404 (par exemple unknown_tenant).Connectez-vous avec un compte rattaché à un tenant.
Erreur tenant_required dans la carte des réglagesLe principal agit sans tenant (HTTP 403).Utilisez un compte ou une clé d'API du tenant.
Message rouge sous un champ après Enregistrervalidation_error (HTTP 422) avec details.field : réglage inconnu, valeur hors de off, detect, block ou allow, strip_untrusted, nom d'hôte public invalide, plus de 200 hôtes.Corrigez le champ cité dans le message et enregistrez à nouveau.
Événements de sécurité récents affiche forbiddenGET /v1/audit/events exige auditor, security_officer, tenant_admin ou platform_admin.Demandez un rôle qui lit le journal d'audit.
« Aucun événement de sécurité »Aucun événement d'audit d'action security.* parmi les 200 derniers.Normal sur un tenant calme ; consultez le journal complet sur l'écran des événements d'audit.
« L'API Control Plane est injoignable »L'API est arrêtée ou l'adresse de l'API du portail est fausse.Vérifiez le Control Plane et le réglage NEXT_PUBLIC_EAI_API_URL du portail.

Pages liées​