Aquesta secció conté les bones pràctiques per securitzar una base de dades PostgreSQL.
::: notclassic Per a una configuració bàsica, veieu les instruccions de creació de bases de dades PostgreSQL, que inclouen la creació de l'usuari 'zabbix' amb privilegis complets a la base de dades Zabbix. Aquest usuari és el propietari de la base de dades que també té els privilegis necessaris per modificar l'estructura de la base de dades quan actualitza Zabbix.
Per millorar la seguretat, es recomana configurar un patró d'ús d'esquema segur, així com crear rols de base de dades addicionals i usuaris amb privilegis mínims. Aquests rols i usuaris s'han de configurar segons el principi del mínim privilegi, és a dir, només haurien de tindre privilegis essencials per a l'exercici de les funcions previstes.
Creeu l'usuari que serà el propietari de la base de dades i creeu la base de dades Zabbix; el propietari de la base de dades és l'usuari que s'especifica en la creació de la base de dades:
createuser -U postgres -h localhost --pwprompt usr_owner
creatb -U postgres -h host local -O usr_owner -E Unicode -T template0 zabbix
El propietari de la base de dades ha de fer una instal·lació o actualització neta de la base de dades. Això es deu al fet que el dret d'esborrar un objecte de base de dades o modificar-ne la definició és un privilegi inherent al propietari de la base de dades i no es pot concedir ni revocar.
Les comandes següents d'aquesta pàgina s'han d'executar mentre la connexió a PostgreSQL es fa específicament a la base de dades zabbix
.
Creeu l'esquema zabbix
i configureu el propietari de la base de dades (usr_owner
) perquè sigui el propietari d'aquest esquema:
Configureu un esquema segur patró d'ús:
REVOQUE CREATE ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON DATABASE zabbix FROM PUBLIC;
-- Nota: search_path hauria d'apuntar a l'esquema "zabbix":
ALTER ROLE ALL IN DATABASE zabbix SET search_path = "zabbix";
Després de configurar la base de dades, procediu a la creació de rols d'usuari.
Creeu els rols següents amb els privilegis corresponents:
CREATE ROLE zbx_srv;
GRANT CONNECT ON DATABASE zabbix TO zbx_srv;
GRANT USAGE ON SCHEMA zabbix TO zbx_srv;
ALTER DEFAULT PRIVILEGES FOR ROLE usr_owner IN SCHEMA zabbix GRANT DELETE, INSERT, SELECT, UPDATE ON TABLES TO zbx_srv;
ALTER DEFAULT PRIVILEGES FOR ROLE usr_owner IN SCHEMA zabbix GRANT SELECT, UPDATE, USAGE ON sequences TO zbx_srv;
CREATE ROLE zbx_web;
GRANT CONNECT ON DATABASE zabbix TO zbx_web;
GRANT USAGE ON SCHEMA zabbix TO zbx_web;
ALTER DEFAULT PRIVILEGES FOR ROLE usr_owner IN SCHEMA zabbix GRANT DELETE, INSERT, SELECT, UPDATE ON TABLES TO zbx_web;
ALTER DEFAULT PRIVILEGES FOR ROLE usr_owner IN SCHEMA zabbix GRANT SELECT, UPDATE, USAGE ON sequences TO zbx_web;
CREATE ROLE zbx_bckp;
GRANT CONNECT ON DATABASE zabbix TO zbx_bckp;
GRANT USAGE ON SCHEMA zabbix TO zbx_bckp;
ALTER DEFAULT PRIVILEGES FOR ROLE usr_owner IN SCHEMA zabbix GRANT SELECT ON TABLES TO zbx_bckp;
ALTER DEFAULT PRIVILEGES FOR ROLE usr_owner IN SCHEMA zabbix GRANT SELECT, UPDATE, USAGE ON sequences TO zbx_bckp;
La restauració de la taula només pot fer-la el propietari de la base de dades.
Després de crear els rols, es poden assignar als usuaris.
Per assignar els rols d'usuari creats, creeu usuaris i assigneu-los els rols rellevants. Substituïu <usuari>
, <rol>
i <contrasenya>
segons sigui necessari.
Per exemple, per crear i assignar la funció per executar el servidor i el proxy Zabbix:
El particionament de la base de dades és proveït per TimescaleDB. Per emprar TimescaleDB, el servidor Zabbix requereix privilegis de propietari de la base de dades.
Si l'esquema zabbix
de PostgreSQL ja s'ha creat a la base de dades zabbix
, podeu habilitar TimescaleDB amb l'ordre següent: