My team uses TeamCity for continuous integration. He will create, test, and deploy web applications through Web Deploy for dev and qa web servers. The tricky part is deployed on the production web server - our policy dictates that developers cannot deploy to production, only a system administrator can.
Our current approach is for TeamCity to create a web deployment package that the administrator can download and install on the production web server. However, we would like to allow them to simply click Run in the build configuration, but we are not sure how to protect this button.
We could create a TeamCity project that only administrators have access to, but we must also access Web Deploy security. The web deployment service must be authenticated using the local administrator account on the production server. We do not want developers to have access to the username / password in the assembly script, and we do not want each assembly agent to work as this account, since developers could create an assembly that uses it for deployment to production.
I was not lucky to find resources in TeamCityโs best practices for security / deployment, but I canโt imagine that we are the only company in this situation. How do others manage deployment deployment security?
source share