What are the current best practices when setting up service Authentication and Authorization for: owners, administrators, developers, end-users, etc.?
For example, in AWS I would never use the Root account instead having a separate ("bastion") IAM account that other service accounts/groups could query to retrieve transient tokens to authorize actions. Besides restricting the various accounts/groups to least privilege. I would further ensure CloudWatch is logging all access and configured to both alert and possibly execute a Lambda script on suspicious activities.
I would appreciate as specific advise as possible[1], since I'm not aware of all the features and configurations available to GCP/G Suite.
[1] admittedly my example isn't representative of this, but that is because I don't have much experience in AWS either.
Projects provide an isolation boundary, except where interconnects are explicitly granted, between the Cloud Platform resources used by your organization. Users and groups can be granted different roles, such as viewer, editor, and owner, for different projects. To assign roles, you can use the IAM & Admin page in the Cloud Platform Console or the Cloud IAM API. This API currently doesn't allow you to create custom roles and assign permissions to those roles.
Further, you can delegate control over who has access to a particular project. Users granted the ownerrole can grant and revoke access for users, groups, and service accounts.
Thanks for the response and the references.What recommendations would you have for managing and securing the organizational root account?
Can I just use it the first time to define a group of owners able to create/manage projects and billing administrators, and thereafter never need to explicitly access root again?