¿Es malo otorgar a los usuarios de www-data acceso al certificado de cliente de Postgres?

1

Tengo un primer servidor que ejecuta una base de datos Postgres. He permitido el acceso remoto a esta base de datos, utilizando certificados para la autenticación (siguiendo este tutorial ).

Ahora tengo un segundo servidor que ejecuta una aplicación Django en Apache. El usuario utilizado por Apache es www-data, y he entendido que es una buena práctica otorgar a este usuario permisos muy restringidos.

Para permitir que django acceda a su base de datos remota, he agregado una carpeta .postgresql en la carpeta de inicio de www-data del usuario (es decir, / var / wwww) que contiene todos los archivos necesarios: root.crt (certificado de raíz confiable), postgresql.crt (certificado de cliente) y postgresql.key (clave privada del cliente).

Por supuesto, si 'alguien' tiene acceso a esos archivos, podrá conectarse a mi base de datos y leer / escribir en él.

¿Es peligrosa esta configuración? En caso afirmativo, ¿puede evitarse?

    
pregunta Istopopoki 26.10.2016 - 19:30
fuente

2 respuestas

0

Su aplicación necesita una forma de acceder a la base de datos, por lo que no veo ningún riesgo. Para que alguien robe el certificado tendría que comprometer la aplicación y en ese momento podrían realizar consultas de todos modos.

Solo asegúrese de que el certificado solo permita el acceso al mínimo que la aplicación necesita para funcionar (menos privilegio) y, si es posible, bloquee el acceso a la IP del servidor web, por lo que un certificado robado no puede ser reutilizado desde otra máquina.

    
respondido por el André Borie 26.10.2016 - 23:03
fuente
1

En última instancia, el servidor web necesita acceso a su base de datos. El uso de permisos de archivos para un usuario limitado es una forma comprobada y verdadera de hacer esto, por lo que no creo que esté haciendo nada inapropiado aquí. Existen algunas herramientas, como Hashicorp's Vault, KeyWhiz, etc., que brindan algunas alternativas a esto, pero incluso esas últimas necesitan ALGUNA forma de identificar al usuario válido (aunque le dan algunas alternativas, como permitir una y solo una solicitud de un determinado La instancia de EC2 puede ser más segura en algunas instancias, especialmente en una situación en la que se está realizando una autoescala y, si falla una instancia, se desmonta.)

    
respondido por el crovers 26.10.2016 - 19:46
fuente

Lea otras preguntas en las etiquetas