Cloud permissions: the most important rule is the minimum
Principles
Each service gets its own identity with precise permissions; humans get temporary access through roles rather than fixed keys; and two-factor authentication is mandatory for every administrative account.
The root account is locked and not used day to day.
Avoiding permission creep
Permissions granted “just to test” stay forever. Set an expiry, and periodically review who actually accessed what — cloud tools can point to permissions never used, and that's the most worthwhile list to delete.
Separation
Separate accounts or projects for production and other environments. Strong separation prevents the common scenario where a development script touches real data.
Going deeper
Log administrative actions in the account and alert on sensitive events: key creation, policy change, logging turned off, and access from an unusual region. Turning off logs is usually an attacker's first step — which is why the alert on it is among the most important.