Last reviewed: August 2026
In the cloud, hundreds of services and thousands of resources are accessible via API. Misconfigured IAM can lead to security incidents such as data breaches or resource deletion. The principle of least privilege — granting only the minimum permissions necessary — is the fundamental rule.
- User — An identity representing a person or an application
- Group — Groups users together to grant permissions in bulk
- Role — A set of permissions that can be granted temporarily. Primarily used for service-to-service access
- Policy — A document defining who can do what, on which resources
- MFA — An additional authentication method beyond a password
| Vendor |
Product |
Notes |
| AWS |
IAM + IAM Identity Center |
Users, groups, roles, policies. Multi-account SSO via Identity Center |
| Azure |
Microsoft Entra ID (formerly Azure AD) |
Directory service + RBAC. Integrated with Microsoft 365 |
| Google Cloud |
Cloud IAM |
Project/folder/organization-level RBAC. Service accounts for service-to-service authentication |
| OCI |
OCI IAM with Identity Domains |
Users, groups, policies, compartment-based access control |
| Method |
AWS |
Azure |
Google Cloud |
OCI |
| Console login |
Username + password + MFA |
Entra ID account + MFA |
Google account + MFA |
Username + password + MFA |
| CLI/SDK |
Access Key or aws login |
az login (browser) |
gcloud auth login (browser) |
API Key or oci session authenticate |
| Service-to-service |
IAM Role (temporary credentials) |
Managed Identity |
Service Account |
Instance Principal |
| External IdP integration |
SAML/OIDC Federation |
Entra ID External ID |
Workforce Identity Federation |
SAML/OIDC Federation |
| Vendor |
Model |
Characteristics |
| AWS |
Policy-based (JSON) |
Combines identity-based and resource-based policies. Most granular but complex |
| Azure |
RBAC (role-based) |
Built-in/custom roles. Scoped to subscription/resource group/resource. Dynamic control via Conditional Access |
| Google Cloud |
RBAC (role-based, hierarchical inheritance) |
Inherits organization → folder → project. Direct use of external tokens via Workload Identity Federation |
| OCI |
Policy-based (HCL-like) |
Intuitive syntax such as Allow group X to manage Y in compartment Z. Compartment hierarchy inheritance |
| Vendor |
Long-Term Credential |
Role-Based (Recommended) |
Federation |
| AWS |
Access Key |
IAM Role (Instance Profile, Task Role) |
OIDC/SAML Federation |
| Azure |
Service Principal Secret |
Managed Identity |
Entra External ID, Workload Identity Federation |
| Google Cloud |
Service Account Key (JSON) |
Attached Service Account |
Workload Identity Federation |
| OCI |
API Signing Key |
Instance Principal |
SAML/OIDC Federation |
- “It’s more convenient to just grant admin permissions” — Granting broad permissions for convenience widens the blast radius when an incident occurs. Apply the principle of least privilege from the start.
- “It’s fine to put an Access Key in code” — Long-term credentials exposed in source code or config files carry a high risk of leakage. Use role-based temporary credentials instead.
- “IAM is set once and done” — If permissions aren’t reviewed periodically as staff and services change, unused permissions accumulate over time.