Permitiendo que el cliente genere una clave secreta para asegurar la instancia RDS en AWS

0

Tengo una arquitectura de microservicio que se ejecuta en el clúster de AWS ECS usando Postgres y Node, y existe el requisito de que, de alguna manera, debemos permitir que nuestro cliente bloquee nuestra base de datos con una clave secreta para que el desarrollador no pueda acceder al DB directamente sin su consentimiento.

Esto suena un poco extraño, pero el proyecto involucra datos confidenciales y hay requisitos estrictos de cumplimiento que deben cumplirse y, por lo tanto, debemos permitirlos de alguna manera haciendo algo o lo otro mediante el cual, cuando mi aplicación se ejecuta, se recupera. las credenciales de un servicio y las utiliza para acceder a la base de datos, mientras que yo no debería poder hacer eso.

Miré un par de servicios de AWS que podrían ayudarme a almacenar las credenciales secretas en un lugar seguro como el Parameter Store y cifre los datos utilizando KMS . Pero no tengo idea de que esto sea posible utilizando los servicios de AWS o por cualquier otro medio.

¿Alguna ayuda o sugerencias sobre cómo se debe implementar la idea?

    
pregunta Vinay 09.02.2017 - 10:45
fuente

1 respuesta

1

Realmente depende de tus requisitos como lo señaló Vinay. Sin embargo puedo darte algunas opciones:

  • Configura un rol de IAM que permite cambiar la contraseña maestra de la instancia RDS. Cada vez que inicia el servidor, establece esta credencial a través de la aplicación. La cuenta de AWS debe configurarse de manera que los desarrolladores no puedan hacerlo. Problemas: ya no se puede acceder fácilmente a la instancia de la base de datos. Es posible que tenga algunos problemas con la escala, ya que no desea que dos instancias cambien la contraseña al mismo tiempo.

  • Configura a los usuarios desarrolladores dentro de la cuenta de AWS de manera que no puedan cambiar la contraseña de la instancia RDS. La aplicación accede a un grupo de S3 al que los desarrolladores no tienen acceso. Sin embargo, la aplicación puede leer los datos de la cubeta S3. Puede hacerlo utilizando los roles IAM que asigna a las instancias de EC2 de la aplicación. Dentro del cubo guardas la contraseña de RDS. Puede permitir desde dentro de la aplicación cambiar la contraseña. De esta manera, puede configurar todo inicialmente y permitir que el cliente lo cambie una vez (o más). De esta manera puedes bloquearte.

  • Eventualmente, puede configurar a nivel de red con reglas de grupos de seguridad que impiden el acceso desde el exterior e impide que los desarrolladores puedan acceder al entorno. Esto es eventualmente problemático, ya que es posible que necesite acceder al entorno, ya que necesita una forma de mantener las instancias de EC2.

respondido por el Thomas Hunziker 06.03.2017 - 07:13
fuente

Lea otras preguntas en las etiquetas