Estoy considerando el uso de un servidor de implementación continua en la nube para impulsar el código de producción para mi aplicación.
Debido a que es un servidor basado en la nube, esto requiere que les dé una clave SSH privada que tenga acceso para enviar los archivos apropiados a mi servidor de producción. Me imagino que con el principio de privilegio mínimo, esta clave SSH debería permitir el inicio de sesión a un usuario bloqueado con privilegios de escritura en solo unos pocos directorios. Luego, el servidor de producción puede usar upstart u otros tipos de scripts que detectan los cambios en el código y comienzan a ejecutar el nuevo código.
Supongamos que mi modelo de amenaza es que la clave SSH privada se filtra desde su extremo. ¿Es posible mitigar este riesgo? Incluso si bloqueo al usuario tanto como sea posible, el usuario del servidor web (que tiene mayores privilegios) ejecutará el código que es empujado por el usuario. Entonces, parece que cualquier pérdida de la clave SSH que les proporcione dará como resultado la posibilidad de ejecución remota de código.
¿Existen prácticas recomendadas para configurar un servidor de CD / CD basado en la nube o es solo un riesgo que debo asumir?