Ir al contenido

Bases de datos

Esta página explica cómo funciona el acceso a bases de datos con Ironchip PAM. Es para quien administra las bases de datos y para quien se conecta con un cliente de base de datos.

La persona se conecta con su cliente (psql, mysql u otro) y un ticket de un solo uso como usuario. El broker de Ironchip PAM retiene la conexión mientras Ironchip comprueba la ventana, la dirección y los factores, y la conecta con la base de datos con la credencial del recurso. La persona nunca conoce la contraseña.

  • PostgreSQL, MySQL y MariaDB. Solo con el cliente nativo, no desde la consola.
  • Aprobación al conectar: PostgreSQL le dice a la persona que su sesión espera una aprobación; en MySQL, el cliente simplemente espera.
  • Registro de la conexión: quién, cuándo, desde dónde y a qué base de datos. El contenido de la sesión no se graba.

Elige Managed by Ironchip: nobody types or sees it y escribe una cuenta de administración (Admin account y Admin password). El almacén de secretos entra con ella, pone una contraseña que nadie conoce a la cuenta del recurso y la cambia cada día y tras cada sesión. Solo el almacén guarda la cuenta de administración. Consulta Rotación de contraseñas.

Con A stored password, la consola muestra las órdenes CREATE ROLE (PostgreSQL) o CREATE USER (MySQL) para preparar la cuenta.

Credenciales de base de datos para aplicaciones

Sección titulada «Credenciales de base de datos para aplicaciones»

Sobre una base de datos con la contraseña gestionada puedes crear roles de credenciales temporales: tus aplicaciones y pipelines piden una cuenta con cualquier cliente de Vault, por ejemplo de solo lectura durante una hora, y la cuenta se borra sola al caducar.

Ventana de terminal
vault read database/creds/reporting
  1. Da de alta la base de datos como recurso PostgreSQL o MySQL y añádela a una política de destino.

  2. Nómbrala en un acceso.

  3. La persona solicita el acceso, si hace falta, y se conecta:

    Ventana de terminal
    psql -h <PAM_HOST> -p <PUERTO> -U ticket-<TICKET>
    mysql -h <PAM_HOST> -P <PUERTO> -u ticket-<TICKET>