Aller au contenu

Runbook Operations Keycloak

Document d'exploitation - INV-IAM-10


1. Vue d'ensemble

Ce runbook decrit les procedures operationnelles pour l'IdP Keycloak ProbatioVault.

1.1 Informations de base

Attribut DEV STAGING PROD
URL https://id.dev.probatiovault.com https://id.staging.probatiovault.com https://id.probatiovault.com
Serveur 51.68.126.160 TBD TBD
Port interne 8088 8088 8088
Realm pv-dev pv-staging pv-prod

2. Acces et authentification

2.1 Acces SSH

ssh ubuntu@<IP_SERVEUR>

2.2 Acces console admin Keycloak

  1. URL: https://id.<env>.probatiovault.com/admin/
  2. Credentials dans HashiCorp Vault: kv/keycloak/<env>/admin
# Recuperer les credentials depuis Vault
VAULT_ADDR=https://vault.dev.probatiovault.com
vault kv get kv/keycloak/dev/admin

3. Gestion du service

3.1 Status du service

sudo systemctl status keycloak

3.2 Redemarrage

sudo systemctl restart keycloak

3.3 Arret (maintenance)

sudo systemctl stop keycloak

3.4 Logs en temps reel

sudo journalctl -u keycloak -f

4. Logs d'audit

4.1 Emplacement

/var/log/keycloak/events.log

4.2 Consultation

# Derniers evenements
sudo tail -100 /var/log/keycloak/events.log | jq .

# Filtrer par type
sudo cat /var/log/keycloak/events.log | jq 'select(.type == "LOGIN")'

# Filtrer par resultat
sudo cat /var/log/keycloak/events.log | jq 'select(.error != null)'

4.3 Rotation

Les logs sont geres par logrotate: - Rotation quotidienne - Retention: 7 jours localement, 30 jours archives - Compression: gzip


5. Base de donnees

5.1 Connexion PostgreSQL

sudo -u postgres psql keycloak_<env>

5.2 Backup manuel

sudo -u postgres pg_dump keycloak_<env> > /backup/keycloak_$(date +%Y%m%d).sql

5.3 Restore

sudo -u postgres psql keycloak_<env> < /backup/keycloak_YYYYMMDD.sql

6. Certificats SSL

6.1 Verification

sudo certbot certificates

6.2 Renouvellement manuel

sudo certbot renew --nginx

6.3 Test renouvellement

sudo certbot renew --dry-run

7. Troubleshooting

7.1 Keycloak ne demarre pas

  1. Verifier les logs:

    sudo journalctl -u keycloak -n 100 --no-pager
    

  2. Verifier PostgreSQL:

    sudo systemctl status postgresql
    

  3. Verifier l'espace disque:

    df -h
    

7.2 Erreurs d'authentification

  1. Verifier les logs d'evenements:

    sudo tail -50 /var/log/keycloak/events.log | jq 'select(.error != null)'
    

  2. Verifier la configuration du realm:

  3. Console admin > Realm settings

7.3 Certificat expire

sudo certbot renew --force-renewal
sudo systemctl reload nginx

7.4 Performance degradee

  1. Verifier l'utilisation memoire:

    free -h
    htop
    

  2. Verifier les connexions DB:

    sudo -u postgres psql -c "SELECT count(*) FROM pg_stat_activity WHERE datname = 'keycloak_dev';"
    


8. Maintenance planifiee

8.1 Mise a jour Keycloak

  1. Sauvegarder la base de donnees
  2. Arreter le service
  3. Deployer via Ansible
  4. Verifier les logs de demarrage
  5. Tester l'authentification

8.2 Rotation des cles de signature

Keycloak gere automatiquement la rotation des cles JWT. Verification:

curl -s https://id.<env>.probatiovault.com/realms/pv-<env>/protocol/openid-connect/certs | jq '.keys | length'


9. Contacts escalade

Voir operational-responsibility.md


10. Historique des modifications

Date Auteur Modification
2025-01 Equipe Infra Creation initiale