This a topic where there is probably no objective best solution and you'll get arguments supporting both options.
I'm strongly opposed to "shared" accounts.
Often more and more people will get access to shared accounts and passwords won't get changed regularly or at all. When people leave/change roles too often they'll still have privileged access, because revoking their personal (admin) accounts and privileges doesn't revoke their access to such shared accounts. Eventually nobody feels accountable for the shared account anymore and/or the impact of changing the password and/or revoking access rights can't be overseen and nobody will want to enter that minefield anymore.
As a security conscious administrator I want to have an audit trail where logins/actions/changes can be attributed to specific team members and administrators.
So when I run a playbook from my workstation, I'll authenticate with my personal account. When my colleague is developing a new playbook, they run them with their own personal credentials. All administrators have full sudo
rights already anyway.
In addition to personal accounts we have AWX ; the plays that launched from there will run with the credentials of a specific functional account dedicated to AWX, but there will be an audit trail in AWX with accounting which schedule and/or whom launched the play.
Access to the functional account reserved for AWX access should be restricted ( i.e. with options in the ˜/.ssh/authorized_keys
file and/or a User Match in the sshd_config
) so even when an admin gets access to the private key used by AWX they can't use it from their own workstation to run/develop playbooks.