I agree with a lot of this, but it's missing any discussion of downsides to having a lot of accounts. Some of these include: * Granting permissions to resources in other accounts is complicated. Even where there is first class support, such as for s3 and kms, it involves multiple steps, and familiarity with confusing terminology. * Using the web console or cli is more complicated. In the cli you'll have to manage a b…
One workaround I usually implement for this is to always have to assume a role. Meaning that, basically, your base permissions only allow you to assume roles. To actually do the job, you need a separate one, in whichever account.
This way, it's also easier to standardize roles across accounts. A action requires R role.