IAM operations
Every IAM operation Overcast declares — 74 of 74 implemented — with status, behaviour notes and a link to the AWS API reference for each.
All 74 listed operations are implemented. Back to IAM.
Summary
| Category | ✅ Supported | ⚠️ Partial |
|---|---|---|
| Users | 5 | |
| Access keys | 3 | |
| User inline policies | 4 | |
| User managed policies | 3 | |
| Permissions boundaries | 4 | |
| User tagging | 3 | |
| Roles | 7 | |
| Role inline policies | 4 | |
| Role managed policies | 3 | |
| Role tagging | 3 | |
| Managed policy tagging | 3 | |
| Instance profile tagging | 3 | |
| Instance profiles | 7 | |
| Managed policies | 4 | 1 |
| Groups | 7 | |
| Group inline policies | 4 | |
| Group managed policies | 3 | |
| Policy simulation | 2 | |
| Account details | 1 |
Endpoints
Users
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreateUser | ✅ Supported | Inline Tags applied at creation and returned on the resource | docs |
GetUser | ✅ Supported | Returns the resource’s Tags | docs |
ListUsers | ✅ Supported | Returns AWS’s listing subset: no Tags and no PermissionsBoundary — call GetUser for those | docs |
UpdateUser | ✅ Supported | docs | |
DeleteUser | ✅ Supported | DeleteConflict (409) while access keys, inline or attached policies, or group memberships remain | docs |
Access keys
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreateAccessKey | ✅ Supported | Generates AKIA-prefixed key + secret | docs |
ListAccessKeys | ✅ Supported | docs | |
DeleteAccessKey | ✅ Supported | docs |
User inline policies
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
PutUserPolicy | ✅ Supported | Rejects a malformed document with MalformedPolicyDocument (400) — see CreatePolicy for what that check does and does not cover | docs |
GetUserPolicy | ✅ Supported | docs | |
DeleteUserPolicy | ✅ Supported | docs | |
ListUserPolicies | ✅ Supported | docs |
User managed policies
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
AttachUserPolicy | ✅ Supported | docs | |
DetachUserPolicy | ✅ Supported | docs | |
ListAttachedUserPolicies | ✅ Supported | docs |
Permissions boundaries
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
PutUserPermissionsBoundary | ✅ Supported | Applied by SimulatePrincipalPolicy and by opt-in enforcement; NoSuchEntity if the policy does not exist | docs |
DeleteUserPermissionsBoundary | ✅ Supported | docs | |
PutRolePermissionsBoundary | ✅ Supported | Applied by SimulatePrincipalPolicy and by opt-in enforcement; NoSuchEntity if the policy does not exist | docs |
DeleteRolePermissionsBoundary | ✅ Supported | docs |
User tagging
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
TagUser | ✅ Supported | docs | |
UntagUser | ✅ Supported | docs | |
ListUserTags | ✅ Supported | docs |
Roles
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreateRole | ✅ Supported | Inline Tags applied at creation and returned on the role; the AssumeRolePolicyDocument is parsed, and a malformed one rejected with MalformedPolicyDocument (400) — see CreatePolicy for what that check does and does not cover | docs |
GetRole | ✅ Supported | Returns the resource’s Tags | docs |
ListRoles | ✅ Supported | Returns AWS’s listing subset: no Tags and no PermissionsBoundary — call GetRole for those | docs |
DeleteRole | ✅ Supported | DeleteConflict (409) while an instance profile association or inline/attached policies remain | docs |
UpdateRole | ✅ Supported | An empty Description clears it; an omitted one is left unchanged | docs |
UpdateAssumeRolePolicy | ✅ Supported | Rejects a malformed document with MalformedPolicyDocument (400) — see CreatePolicy for what that check does and does not cover | docs |
CreateServiceLinkedRole | ✅ Supported | docs |
Role inline policies
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
PutRolePolicy | ✅ Supported | Rejects a malformed document with MalformedPolicyDocument (400) — see CreatePolicy for what that check does and does not cover | docs |
GetRolePolicy | ✅ Supported | docs | |
ListRolePolicies | ✅ Supported | docs | |
DeleteRolePolicy | ✅ Supported | docs |
Role managed policies
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
AttachRolePolicy | ✅ Supported | docs | |
DetachRolePolicy | ✅ Supported | docs | |
ListAttachedRolePolicies | ✅ Supported | docs |
Role tagging
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
TagRole | ✅ Supported | docs | |
UntagRole | ✅ Supported | docs | |
ListRoleTags | ✅ Supported | docs |
Managed policy tagging
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
TagPolicy | ✅ Supported | docs | |
UntagPolicy | ✅ Supported | docs | |
ListPolicyTags | ✅ Supported | docs |
Instance profile tagging
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
TagInstanceProfile | ✅ Supported | docs | |
UntagInstanceProfile | ✅ Supported | docs | |
ListInstanceProfileTags | ✅ Supported | docs |
Instance profiles
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreateInstanceProfile | ✅ Supported | Inline Tags applied at creation and returned on the resource | docs |
GetInstanceProfile | ✅ Supported | Returns the resource’s Tags | docs |
DeleteInstanceProfile | ✅ Supported | docs | |
AddRoleToInstanceProfile | ✅ Supported | docs | |
RemoveRoleFromInstanceProfile | ✅ Supported | docs | |
ListInstanceProfiles | ✅ Supported | Returns AWS’s listing subset: no Tags — call the matching Get for those | docs |
ListInstanceProfilesForRole | ✅ Supported | docs |
Managed policies
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreatePolicy | ✅ Supported | Inline Tags applied at creation and returned on the policy. The PolicyDocument is parsed before it is stored and a malformed one is rejected with MalformedPolicyDocument (400): it must be valid JSON, a JSON object, carry a Statement that is an object or a non-empty array, and give every statement an Effect of exactly Allow or Deny plus an Action or NotAction (not both) — with Resource/NotResource mutually exclusive too, and Version, when present, one of 2012-10-17 or 2008-10-17. Deliberately not checked: ARN syntax in Resource/Principal, whether an action name exists, condition-operator and condition-key names, Sid uniqueness and character set, Principal appearing in an identity policy or being absent from a trust policy, Resource being absent where AWS requires it, the 6,144-character document size limit, and an omitted or empty document, which is left to the operation’s own required-parameter handling rather than reported as malformed | docs |
GetPolicy | ✅ Supported | Returns the policy’s Tags. AttachmentCount and PermissionsBoundaryUsageCount are derived from the users, groups and roles that refer to the policy, so they follow attach/detach and boundary changes; IsAttachable is always true, as every policy here is a customer managed one | docs |
ListPolicies | ✅ Supported | Returns AWS’s listing subset: no Tags and no Description — call GetPolicy for those. Carries the same derived AttachmentCount and PermissionsBoundaryUsageCount as GetPolicy | docs |
DeletePolicy | ✅ Supported | DeleteConflict (409) while the policy is attached to any user, role or group, or used as one of their permissions boundaries | docs |
CreatePolicyVersion | ⚠️ Partial | SetAsDefault=true replaces the operative document and bumps DefaultVersionId; superseded versions are not retained and cannot be read back. Rejects a malformed document with MalformedPolicyDocument (400) — see CreatePolicy for what that check does and does not cover | docs |
Groups
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreateGroup | ✅ Supported | docs | |
GetGroup | ✅ Supported | Returns the group’s members, paginated with Marker/MaxItems (default 100, max 1000) | docs |
DeleteGroup | ✅ Supported | DeleteConflict (409) while members or inline/attached policies remain | docs |
ListGroups | ✅ Supported | docs | |
AddUserToGroup | ✅ Supported | docs | |
RemoveUserFromGroup | ✅ Supported | docs | |
ListGroupsForUser | ✅ Supported | docs |
Group inline policies
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
PutGroupPolicy | ✅ Supported | Rejects a malformed document with MalformedPolicyDocument (400) — see CreatePolicy for what that check does and does not cover | docs |
GetGroupPolicy | ✅ Supported | docs | |
DeleteGroupPolicy | ✅ Supported | docs | |
ListGroupPolicies | ✅ Supported | docs |
Group managed policies
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
AttachGroupPolicy | ✅ Supported | docs | |
DetachGroupPolicy | ✅ Supported | docs | |
ListAttachedGroupPolicies | ✅ Supported | docs |
Policy simulation
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
SimulatePrincipalPolicy | ✅ Supported | Real evaluation of the principal’s identity policies (plus an optional ResourcePolicy and permissions boundary): allowed / explicitDeny / implicitDeny with MatchedStatements and MissingContextValues | docs |
SimulateCustomPolicy | ✅ Supported | Evaluates the supplied PolicyInputList without touching any stored entity | docs |
Account details
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
GetAccountAuthorizationDetails | ✅ Supported | Returns all users, groups, roles, and managed policies in one call | docs |
Related
- IAM — quick start, what works, and the differences from AWS
- All service pages