Mejores prácticas para almacenar credenciales en el centro de datos

6

Tengo una secuencia de comandos de calentamiento de la memoria caché que quiero iniciar en respuesta a un determinado evento del lado del servidor. Esa secuencia de comandos necesita credenciales de usuario para realizar su trabajo (cuenta de solo lectura). Hasta ahora he evitado automatizar este proceso porque no quería almacenar NINGUNA credencial en el servidor, pero he llegado a un punto en el que realmente necesito automatizar el proceso. El servidor es CentOS 6.

Sé que almacenar cualquier credencial es un riesgo, así que tengo curiosidad por saber cuál es el estándar de la industria si no puedo estar en un terminal para ingresar una credencial cada vez que necesito este proceso para ejecutarlo.

Actualizar La pregunta raíz: si NO está bien tener las credenciales almacenadas en forma clara, ¿cuáles son las otras opciones?

    
pregunta Jeremy Mullin 17.01.2013 - 17:49
fuente

2 respuestas

1

Para evitar utilizar las credenciales por completo, desacoplar el desencadenante del script de calentamiento de caché del evento del lado del servidor.

El concepto es:

  • el evento del lado del servidor establece un indicador en una ubicación compartida
  • el proceso persistente ejecutado por el usuario de script de calentamiento de la memoria caché supervisa esa ubicación compartida
  • si el proceso persistente ve que el indicador está establecido, el indicador se borra y se ejecuta el script de calentamiento de caché

Dado que el proceso persistente se puede ejecutar a través de cron o como un demonio que es propiedad del usuario del script de calentamiento de caché, solo debe configurarlo una vez, nunca necesita pasar las credenciales de la cuenta de usuario.

Ubicación compartida:

Decida sobre una ubicación compartida a la que se pueda acceder y escribir tanto por el evento del lado del servidor como por el usuario que necesita ejecutar el script de calentamiento de caché. En un sistema con una base de datos, esto podría ser una variable en una tabla de configuración. Pero esto también podría ser solo un archivo en un directorio que está a cargo de ambos usuarios y es tocado por el evento del lado del servidor.

Estableciendo la bandera:

Si está utilizando una base de datos, un ejemplo de configuración de un indicador sería si tiene una tabla de variables que tiene columnas de clave y valor, estableciendo el valor de una clave particular en 1. Si es un archivo, sería la existencia de un archivo.

Beneficios secundarios:

Si necesita restringir la frecuencia con la que se ejecuta el script de calentamiento de caché, siempre puede implementar la lógica en el proceso persistente para realizar un seguimiento de la última vez que se ejecutó el script para evitar el uso excesivo si algo falla.

Puede agregar fácilmente múltiples desencadenantes de la secuencia de comandos de calentamiento de la caché desde otros eventos del lado del servidor porque el método de activación de la secuencia de comandos está oculto detrás de la interfaz de ubicación compartida.

    
respondido por el Jeremy Zerr 17.01.2013 - 20:29
fuente
1

Con respecto a la actualización: si NO está bien tener las credenciales almacenadas en forma clara, ¿cuáles son las otras opciones?

Generalmente, una vez que una entidad quiere autenticarse en un servicio, la entidad debe tener un token de autenticación. Dicho esto, si está utilizando la autenticación de contraseña y desea hacerlo automáticamente, debe hacer que la contraseña sea accesible de alguna manera en algún texto sin formato; de lo contrario, necesitaría otro token para transformarla de forma segura a texto sin formato.

Volviendo a su problema original, siempre es bueno considerar quién, por qué y cómo alguien podría (querría) hacer un mal uso de las credenciales (si estuvieran en un archivo de texto simple legible solo por el usuario que ejecuta el script de calentamiento de caché, por ejemplo) ). Puede resultar que asegurarla no tenga mucho sentido o que el concepto general de seguridad del proyecto sea erróneo.

Es posible que desee realizar una consulta en Security SE : es probable que responda más a fondo allí.

    
respondido por el peterph 18.01.2013 - 00:35
fuente

Lea otras preguntas en las etiquetas