nodejs mvn google engine docs deploy app python security google-app-engine deployment webapp2

python - mvn - google cloud app



¿Cómo manejar la información de configuración sensible al implementar aplicaciones del motor de la aplicación? (1)

Otro enfoque posible es tener 2 copias de la aplicación (en realidad, 2 aplicaciones diferentes que tienen el mismo código), cada una con su id_aplicación, archivo (s) de configuración, etc.

  • uno para desarrollo / puesta en escena , accesible por el equipo de desarrollo más grande
  • uno para producción - (¿posiblemente clonado / bifurcado del mismo repositorio de SCM, tal vez una sucursal privada?) solo accesible por los desarrolladores de confianza y con los contenidos del archivo de configuración sobrescritos / actualizados para la implementación de producción

Tal configuración puede ofrecer beneficios adicionales además de restringir el acceso a las credenciales de producción, por ejemplo:

  • capacidad de utilizar un sistema de CI que incluye la implementación automática en un entorno de producción muy cercano
  • control más estricto para las implementaciones de producción

Ejemplo: Tengo una aplicación que necesita acceder a una API que proporciona un token de autenticación

myApi = MyApi(token=my_private_sensible_token)

Quiero evitar tener ese token privado en un archivo de configuración que es parte del proyecto.

Una solución que viene a la mente es aislar la interacción con este servicio en una aplicación de proxy separada mantenida por un número restringido de personas autorizadas. App-engine permite proteger a los manipuladores con autenticación y, en el proxy, podría permitir solo las llamadas provenientes de una aplicación de consumidor de motor de aplicación autorizada.

Diferentes soluciones que puedo pensar, en cierto punto todas hacen que este token privado esté disponible en la memoria de la aplicación del consumidor, esto podría permitir a un usuario malicioso (que mantiene al consumidor) escribir un controlador que imprima este token secreto que de alguna manera elegante aplicación ha recuperado.

¿Tienes mejores sugerencias?