AWS and GCP both work pretty well if you avoid conditions, which are a nightmare. Azure is like everything is conditions, and also buggy.

They work, but the documentation is overwhelming. With my last GCP project, I ran into security theater folks that didn't like predefined roles and demanded custom roles with dozens and dozens of granular permissions. Do you think they audited all those permissions? Nope. The simpler predefined roles were just not permitted by their checklists.