IAM appliance - iam-app-czechidm-db

RPM balíček s podporou PostgreSQL 12 kontejneru jako podložní databáze pro CzechIdM. Kontejner původně pochází z Docker HUB, ale byl uzpůsoben pro účely BCV - máme tedy vlatní fork.

Balíček je závislostí služby czechidm, která ho vyžaduje.

Build probíhá standardním způsobem v bcv-rpmbuild kontejneru.

Služba

Kontejner je používán BCV bcv-postgres:12-r2 z repo.iamappliance.com. Služba je v appliance známá jako iam-czechidm-db.

Adresáře na disku appliance

  • /data/volumes/czechidm-db/data - datafiles PostgreSQL

  • /data/volumes/czechidm-db/secrets - hesla k databázovým uživatelům postgres a czechidm. Hesla se automaticky generují při instalaci balíčku, pokud již neexistovala.

  • /data/volumes/czechidm-db/backup - do tohoto adresáře se pravidelně generují zálohy db

  • /data/logs/czechidm-db - logy

    • Tento adresář musí mít správně SElinux labely, o to se stará RPM balíček už v procesu instalace pomocí volání semanage fcontext …​.

Konfigurační soubory

  • /data/registry/node-active-config/docker-compose-czechidm-db.yml - konfigurace kontejneru

  • /etc/rsyslog.d/10_czechidm-db.conf - odbočka logů ze syslogu do vyhrazeného souboru na disku

  • /etc/logrotate.d/czechidm-db - konfigurace rotace logů

Ovládání

  • systemd unita je umístěna v /usr/lib/systemd/system/iam-czechidm-db.service, ovládání klasicky přes systemctl start/stop/enable/disable.

  • Start unity ve skutečnosti zavolá docker-compose …​ up, který v případě změny compose file rovnou dropne a vygeneruje nový kontejner.

  • Zálohování

    • Zálohování je jednou denně spouštěno přes systemd timer /usr/lib/systemd/system/iam-czechidm-db-backup.timer a související unitu /usr/lib/systemd/system/iam-czechidm-db-backup.service.

    • Zálohu je možné spustit i ručně pomocí systemctl start iam-czechidm-db-backup.service.

    • Zálohy se automaticky komprimují.

    • Zálohy starší než 7 dnů se automaticky mažou.

    • Obnova ze zálohy vyžaduje ruční zásah.

    • Zálohu databáze je možné šifrovat, šifrování se aktivuje nastavením DB_ENCRYPT_BACKUP=true v konfiguraci služby a restartem služby. Šifrovací klíč se vygeneruje automaticky při instalaci balíčku. Pomocí openssl rand -base64 32 je možné klíč přegenerovat. Šifrování je AES-256-CBC, solené heslo, PBKDF2 derivace klíče a je prováděno pomocí openssl.

Závislosti

  • Služba nemá žádné závislosti pro svoji instalaci.

  • Služba nemá žádné závislosti pro svůj běh.

Podivnosti

  • Sizing databázové instance se provádí na úrovni compose file.

    • Tyto parametry dostává databázový démon přímo na svou cmdline.

    • V konfiguračním souboru psotgresql.conf lze najít seznam nastavení, ta ale mohou být překrytá cmdline parametry.

    • Zjištění reálného nastavení je možné pomocí psql a příkazů show all; nebo show názevparametru;.