Aller au contenu

Rotation des jetons

Deux types de secrets par agent peuvent être faites pivoter :

SecretSi il est compromisQuand faire pivoter
agent_tokenL’attaquant ne peut pas falsifier (la signature te sauve) mais obtient bien les droits de registrationLors d’un événement réseau suspect, après le départ de l’administrateur
clé de signatureL’attaquant peut falsifier s’il a également le jeton bearerAprès une compromission de serveur, périodiquement (annuellement)

Rotation du jeton bearer

Via dashboard

Paramètres → Agents → Trouvez l’agent → Cliquez sur ↻ token → Confirmez.

Le nouveau jeton apparaît une fois dans une boîte d’informations verte. Copiez-le, placez-le dans /etc/monsys/agent.toml sur le serveur, redémarrez l’agent.

Via API

Fenêtre de terminal
NEW=$(curl -s -X POST -b /tmp/c.txt \
https://api.monsys.ai/api/v1/agents/<id_agent>/rotate-token \
| jq -r .token)
# Sur le serveur :
sudo sed -i "s|^agent_token =.*|agent_token = \"$NEW\"|" /etc/monsys/agent.toml
sudo systemctl restart monsys-agent

Le jeton ancien est directement invalidé — il n’y a pas de fenêtre d’overlap. Si l’agent ne se connecte pas avec le nouveau jeton dans les ~30 secondes, il apparaît en ligne rouge dans le dashboard.

Audit

Chaque rotation écrit une ligne dans audit_log :

SELECT user_id, agent_id, event_type, created_at
FROM audit_log
WHERE event_type = 'agent_token_rotated'
ORDER BY created_at DESC;

Rotation de la clé de signature

La clé publique pinée sur le hub est en lecture seule pour l’agent — il ne peut pas simplement “mettre à jour” vers un nouveau keypair. Un administrateur doit d’abord supprimer la pin :

Via dashboard

Paramètres → Agents → Cliquez sur ↻ key → Confirmez.

Puis sur le serveur :

Fenêtre de terminal
sudo rm /var/lib/monsys/agent-signing.key
sudo systemctl restart monsys-agent

L’agent génère un nouveau keypair et enregistre la nouvelle clé publique. Le hub la pinne à nouveau (TOFU). Pendant ce temps, les payloads déjà insérés avec la clé de signature ancienne sont refusés (signature_invalid anomalie).

Via API

Fenêtre de terminal
curl -s -X POST -b /tmp/c.txt \
https://api.monsys.ai/api/v1/agents/<id_agent>/rotate-signing-key

Traçage audit dans audit_log: event_type='agent_signing_key_cleared'.

Cadence de rotation recommandée

DéclencheurTokenClé de signature
Périodiqueannuellementannuellement
Administrateur partdirect-
Compromission de serveurdirectdirect
Migration d’agent vers un autre serveur-direct
Image disque volé / sauvegarde compromisuedirectdirect

Limites de taux

Les deux endpoints sont limités à 10 rotations par heure par utilisateur. Les bulk-rotations (la flotte entière après un événement de sécurité) durent donc sur plusieurs heures — utilisez un script avec sleep 60 ou planifiez dans une fenêtre de maintenance.

Ce qui ne pivote pas automatiquement

Actuellement, il n’y a pas de rotation automatisée programmée. Une demande de fonctionnalité pour les futures versions. Jusqu’à présent : placez un ticket Linear / Jira dans votre runbook d’opérations avec la cadence souhaitée.