I am trying to figure out a way to limit access and also to establish processes to avoid any and all of my team members to compromise our entire production system.
We have a team of 10 developers, 1 QA and 1 SA.
Our entire team has direct access to our entire production DB for development and for support. They also have access to all of our production web servers for the same reasons.
Our system is a high volume, critical system for 1000+ businesses across the U.S.
Team members need access to production DB to debug and correct problems with data. SA and some team members have access to web servers to deploy/release new versions of code.
The common problems or risks: Everyone in our organization can potentially: - Simply wipe out the entire DB. - Run stupid queries taking the system down. - Corrupt data. - Release new code at will. - Have access to see full clients list. - Have access to sensitive information.
Processes are not enough, I need to also be able to enforce it with technology, logging, auditing, etc.
So what I am looking for is: - Common practices for the several scenarios. - Ideas, tips and tools to help with this.
p.s Application is apache,php,mysql source control in git, on ubuntu servers 99% on owned and self managed hardware at a secure location.