JIT access
Just-in-Time access : un user demande un acces temporaire a une connexion (typiquement prod), un admin approuve, l'acces s'autodetruit a expiration.
Quand l'utiliser
- Un dev support a besoin de regarder la prod 30 minutes pour reproduire un bug. Pas la peine de lui donner un acces permanent.
- Une investigation incident : acces grants temporaires plutot que credentials partages.
- Conformite : prouver que les acces prod sont rares, traces, expirent.
Workflow rapide
- User :
Demandes d'acces->Nouvelle demande. Choisir connexion, raison, duree (max policy). - Admin recoit notification. Reviewer, approuver / rejeter.
- Approve -> Auralith cree une
ProjectPermissiontemporaire avecexpires_at. - Le
access_sweeper(cron) revoque automatiquement les permissions expirees. - Toutes les actions du user durant l'acces sont taggees dans l'audit log avec le request_id.
Concepts cles
- AccessRequest : id, user_id, connection_id, reason, requested_until, status (pending / approved / rejected / expired).
- access_sweeper : tache de fond qui scanne les permissions expirees et les revoque toutes les minutes.
- Audit linkage : tout audit log durant la fenetre d'acces porte
access_request_id-> tracabilite parfaite.
Pieges courants
- Duree max policy : si la policy plafonne a 4h, on ne peut pas demander plus. Demande rejetee automatiquement.
- Revocation immediate : un admin peut revoquer une grant active a tout moment. La connexion DB se ferme au prochain check (timeout < 60s).
- Pas une grant SQL native : Auralith gate au niveau applicatif, pas via
GRANTSQL. Si le user a un acces direct au host DB, il contourne. Recommande : exposer la DB uniquement via Auralith.
API
curl -X POST https://app.auralith.io/api/v1/projects/{pid}/access-requests \
-d '{"connection_id":"...","reason":"investigate ticket #1234","duration_minutes":60}'