We are in the process of setting up a host for continuous deployment. Each application runs under its own user account.
Currently the approach we are looking at is simply allowing the continuous build machine to have publickey to that application's account for purpose of deployment.
There is concern that this may create a vulnerability, so we are trying to see if there are ways of reducing risk. Limiting the access to IPv4 block is not really an option, due to clustered nature of our third-party build service, so we need to consider other risk mitigation approaches, as part of our deployment process. I don't want the benefits of continuous deployment to harm our production environment.
Can anyone suggest approaches that can provide the CI machines the ability to do their job, while ensuring we aren't opening up a security hole. Ideally approaches that have been used in an environment you respect, as to avoid purely theoretical approaches.
Deployment host is using Ubuntu 16.04.2 LTS, based VM with access via ssh. Server will be hosting a web facing HTTP based application.