Amazon IAM
App · Compliance & Security · 20 actions
Manage who can do what in your AWS account from a workflow: create IAM users, tag them, put them in groups and attach managed policies, then take it all away again when someone leaves. Look up users, groups, roles and policies, and suspend or restore a user's access keys.
Actions
| Action | What it does |
|---|---|
| Add user to group | Add an IAM user to a group, giving it the group's permissions. |
| Attach policy to user | Attach a managed policy to an IAM user, granting what it allows. |
| Create a group | Create an empty IAM group. |
| Create a user | Create an IAM user. |
| Delete a group | Permanently delete an IAM group. |
| Delete a user | Permanently delete an IAM user. |
| Detach policy from user | Detach a managed policy from an IAM user. |
| Get a group | Get an IAM group and a page of the users in it. |
| Get a role | Get one IAM role: its trust policy, tags, permissions boundary and when it was last used. |
| Get a user | Get one IAM user with its tags and permissions boundary. |
| List a user's groups | List the IAM groups a user belongs to. |
| List a user's policies | List the managed policies attached directly to an IAM user. |
| List access keys | List a user's access keys: ID, status and creation date. |
| List groups | List the IAM groups in the account, one page at a time. |
| List policies | List managed policies: AWS's own, the ones made in this account, or both. |
| List roles | List the IAM roles in the account, including AWS's own service-linked roles. |
| List users | List the IAM users in the account, one page at a time. |
| Remove user from group | Remove an IAM user from a group. |
| Tag a user | Add tags to an IAM user. |
| Update an access key | Activate or deactivate a user's access key, for example to suspend a leaked key without deleting it. |
Add user to group
Add an IAM user to a group, giving it the group's permissions. A user can be in up to 10 groups.
Inputs
- Group
group_nametextRequired - The IAM group. Pick one, or give its name, its ARN, or the link to its page in the IAM console.
- User name
user_nametextRequired - The IAM user. Give its name, its ARN, or the link to its page in the IAM console. 'List users' shows every user.
Outputs
addedtrue/falsegroup_nametextuser_nametext
Example output
{
"added": true,
"group_name": "developers",
"user_name": "alice"
}Attach policy to user
Attach a managed policy to an IAM user, granting what it allows. A user can have up to 10 managed policies.
Inputs
- User name
user_nametextRequired - The IAM user. Give its name, its ARN, or the link to its page in the IAM console. 'List users' shows every user.
- Policy ARN
policy_arntextRequired - The managed policy's ARN, or the link to its page in the IAM console. 'List policies' shows them.
Outputs
attachedtrue/falsepolicy_arntextuser_nametext
Example output
{
"attached": true,
"policy_arn": "arn:aws:iam::aws:policy/ReadOnlyAccess",
"user_name": "alice"
}Create a group
Create an empty IAM group. Attach policies to it in the IAM console, then add users with 'Add user to group'.
Inputs
- Group name
group_nametextRequired - Up to 128 letters, digits and _+=,.@- with no spaces. Must be unique in the account, ignoring case.
- Path
pathtext - An optional path to organise it under, such as '/engineering/'. Leave empty for '/'.
Outputs
arntextcreate_datetextgroup_idtextgroup_nametextpathtext
Example output
{
"arn": "arn:aws:iam::123456789012:group/developers",
"create_date": "2026-09-01T09:00:00+00:00",
"group_id": "AGPACKCEVSQ6C2EXAMPLE",
"group_name": "developers",
"path": "/"
}Create a user
Create an IAM user. It starts with no console password, no access keys and no permissions; add it to a group or attach a policy to grant some.
Inputs
- User name
user_nametextRequired - Up to 64 letters, digits and _+=,.@- with no spaces. Must be unique in the account, ignoring case.
- Path
pathtext - An optional path to organise it under, such as '/engineering/'. Leave empty for '/'.
- Tags
tagsobject - Tag names and values, such as team = platform. Up to 50 tags; names up to 128 characters, values up to 256.
- Permissions boundary
permissions_boundarytext - Optional ARN of a managed policy that caps what this user can ever be allowed to do.
Outputs
arntextcreate_datetextpassword_last_usedtextpathtextpermissions_boundary_arntexttagsobject- Tag key to tag value.
user_idtextuser_nametext
Example output
{
"arn": "arn:aws:iam::123456789012:user/alice",
"create_date": "2026-09-01T09:00:00+00:00",
"password_last_used": null,
"path": "/",
"permissions_boundary_arn": null,
"tags": {
"team": "platform"
},
"user_id": "AIDACKCEVSQ6C2EXAMPLE",
"user_name": "alice"
}Delete a group
Permanently delete an IAM group. AWS refuses while it still has members or attached policies.
Inputs
- Group
group_nametextRequired - The IAM group. Pick one, or give its name, its ARN, or the link to its page in the IAM console.
Outputs
deletedtrue/falsegroup_nametext
Example output
{
"deleted": true,
"group_name": "developers"
}Delete a user
Permanently delete an IAM user. AWS refuses while anything is still attached: remove it from its groups and detach its policies first, and delete its access keys and password in the console.
Inputs
- User name
user_nametextRequired - The IAM user. Give its name, its ARN, or the link to its page in the IAM console. 'List users' shows every user.
Outputs
deletedtrue/falseuser_nametext
Example output
{
"deleted": true,
"user_name": "alice"
}Detach policy from user
Detach a managed policy from an IAM user. The policy itself is kept.
Inputs
- User name
user_nametextRequired - The IAM user. Give its name, its ARN, or the link to its page in the IAM console. 'List users' shows every user.
- Policy ARN
policy_arntextRequired - The managed policy's ARN, or the link to its page in the IAM console. 'List policies' shows them.
Outputs
detachedtrue/falsepolicy_arntextuser_nametext
Example output
{
"detached": true,
"policy_arn": "arn:aws:iam::aws:policy/ReadOnlyAccess",
"user_name": "alice"
}Get a group
Get an IAM group and a page of the users in it.
Inputs
- Group
group_nametextRequired - The IAM group. Pick one, or give its name, its ARN, or the link to its page in the IAM console.
- Marker
markertext - To fetch the next page, the 'next_marker' an earlier run of this step returned. Leave empty for the first page.
- Max items
max_itemsnumber - How many to return in one page, from 1 to 1,000.From 1 to 1000. Default:
100.
Outputs
countnumbergroupobjectis_truncatedtrue/falsenext_markertext- Pass this as 'Marker' to fetch the next page. Null on the last page.
userslist
Example output
{
"count": 1,
"group": {
"arn": "arn:aws:iam::123456789012:group/developers",
"create_date": "2026-09-01T09:00:00+00:00",
"group_id": "AGPACKCEVSQ6C2EXAMPLE",
"group_name": "developers",
"path": "/"
},
"is_truncated": false,
"next_marker": null,
"users": [
{
"arn": "arn:aws:iam::123456789012:user/alice",
"create_date": "2026-09-01T09:00:00+00:00",
"password_last_used": null,
"path": "/",
"user_id": "AIDACKCEVSQ6C2EXAMPLE",
"user_name": "alice"
}
]
}Get a role
Get one IAM role: its trust policy, tags, permissions boundary and when it was last used.
Inputs
- Role name
role_nametextRequired - The IAM role. Give its name, its ARN, or the link to its page in the IAM console. 'List roles' shows every role.
Outputs
arntextassume_role_policy_documentobject- The trust policy: who may assume this role.
create_datetextdescriptiontextlast_used_datetextlast_used_regiontextmax_session_durationnumberpathtextpermissions_boundary_arntextrole_idtextrole_nametexttagsobject- Tag key to tag value.
Example output
{
"arn": "arn:aws:iam::123456789012:role/aws-service-role/support.amazonaws.com/AWSServiceRoleForSupport",
"assume_role_policy_document": {
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": "support.amazonaws.com"
}
}
],
"Version": "2012-10-17"
},
"create_date": "2026-09-01T09:00:00+00:00",
"description": "Enables resource access for AWS to provide billing support.",
"last_used_date": null,
"last_used_region": null,
"max_session_duration": 3600,
"path": "/aws-service-role/support.amazonaws.com/",
"permissions_boundary_arn": null,
"role_id": "AROACKCEVSQ6C2EXAMPLE",
"role_name": "AWSServiceRoleForSupport",
"tags": {}
}Get a user
Get one IAM user with its tags and permissions boundary. Leave the name empty to get the user this connection signs in as.
Inputs
- User name
user_nametext - The IAM user. Give its name, its ARN, or the link to its page in the IAM console. Leave empty for the user whose access key this connection uses.
Outputs
arntextcreate_datetextpassword_last_usedtextpathtextpermissions_boundary_arntexttagsobject- Tag key to tag value.
user_idtextuser_nametext
Example output
{
"arn": "arn:aws:iam::123456789012:user/alice",
"create_date": "2026-09-01T09:00:00+00:00",
"password_last_used": null,
"path": "/",
"permissions_boundary_arn": null,
"tags": {
"team": "platform"
},
"user_id": "AIDACKCEVSQ6C2EXAMPLE",
"user_name": "alice"
}List a user's groups
List the IAM groups a user belongs to.
Inputs
- User name
user_nametextRequired - The IAM user. Give its name, its ARN, or the link to its page in the IAM console. 'List users' shows every user.
- Marker
markertext - To fetch the next page, the 'next_marker' an earlier run of this step returned. Leave empty for the first page.
- Max items
max_itemsnumber - How many to return in one page, from 1 to 1,000.From 1 to 1000. Default:
100.
Outputs
countnumbergroupslistis_truncatedtrue/falsenext_markertext- Pass this as 'Marker' to fetch the next page. Null on the last page.
Example output
{
"count": 1,
"groups": [
{
"arn": "arn:aws:iam::123456789012:group/developers",
"create_date": "2026-09-01T09:00:00+00:00",
"group_id": "AGPACKCEVSQ6C2EXAMPLE",
"group_name": "developers",
"path": "/"
}
],
"is_truncated": false,
"next_marker": null
}List a user's policies
List the managed policies attached directly to an IAM user. Policies it gets through its groups are not included.
Inputs
- User name
user_nametextRequired - The IAM user. Give its name, its ARN, or the link to its page in the IAM console. 'List users' shows every user.
- Path prefix
path_prefixtext - Only return entries whose path starts with this, such as '/engineering/'. Leave empty for all.
- Marker
markertext - To fetch the next page, the 'next_marker' an earlier run of this step returned. Leave empty for the first page.
- Max items
max_itemsnumber - How many to return in one page, from 1 to 1,000.From 1 to 1000. Default:
100.
Outputs
countnumberis_truncatedtrue/falsenext_markertext- Pass this as 'Marker' to fetch the next page. Null on the last page.
policieslist
Example output
{
"count": 1,
"is_truncated": false,
"next_marker": null,
"policies": [
{
"policy_arn": "arn:aws:iam::aws:policy/IAMUserChangePassword",
"policy_name": "IAMUserChangePassword"
}
]
}List access keys
List a user's access keys: ID, status and creation date. AWS never shows a secret access key again after it is created.
Inputs
- User name
user_nametext - The IAM user. Give its name, its ARN, or the link to its page in the IAM console. Leave empty for the user whose access key this connection uses.
- Marker
markertext - To fetch the next page, the 'next_marker' an earlier run of this step returned. Leave empty for the first page.
- Max items
max_itemsnumber - How many to return in one page, from 1 to 1,000.From 1 to 1000. Default:
100.
Outputs
access_keyslistcountnumberis_truncatedtrue/falsenext_markertext- Pass this as 'Marker' to fetch the next page. Null on the last page.
Example output
{
"access_keys": [
{
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"create_date": "2026-09-01T09:00:00+00:00",
"status": "Active",
"user_name": "alice"
}
],
"count": 1,
"is_truncated": false,
"next_marker": null
}List groups
List the IAM groups in the account, one page at a time.
Inputs
- Path prefix
path_prefixtext - Only return entries whose path starts with this, such as '/engineering/'. Leave empty for all.
- Marker
markertext - To fetch the next page, the 'next_marker' an earlier run of this step returned. Leave empty for the first page.
- Max items
max_itemsnumber - How many to return in one page, from 1 to 1,000.From 1 to 1000. Default:
100.
Outputs
countnumbergroupslistis_truncatedtrue/falsenext_markertext- Pass this as 'Marker' to fetch the next page. Null on the last page.
Example output
{
"count": 1,
"groups": [
{
"arn": "arn:aws:iam::123456789012:group/developers",
"create_date": "2026-09-01T09:00:00+00:00",
"group_id": "AGPACKCEVSQ6C2EXAMPLE",
"group_name": "developers",
"path": "/"
}
],
"is_truncated": false,
"next_marker": null
}List policies
List managed policies: AWS's own, the ones made in this account, or both. AWS manages over a thousand, so narrow it with the filters or page through.
Inputs
- Scope
scopetext - Whose policies to list.One of:
All(All policies),AWS(AWS managed only),Local(Customer managed only (this account's own)). Default:All. - Only attached
only_attachedtrue/false - Only list policies attached to at least one user, group or role.Default:
false. - Used as
policy_usage_filtertext - Only list policies used this way. Leave empty for both.One of:
PermissionsPolicy(Used as a permissions policy),PermissionsBoundary(Used as a permissions boundary). - Path prefix
path_prefixtext - Only return entries whose path starts with this, such as '/engineering/'. Leave empty for all.
- Marker
markertext - To fetch the next page, the 'next_marker' an earlier run of this step returned. Leave empty for the first page.
- Max items
max_itemsnumber - How many to return in one page, from 1 to 1,000.From 1 to 1000. Default:
100.
Outputs
countnumberis_truncatedtrue/falsenext_markertext- Pass this as 'Marker' to fetch the next page. Null on the last page.
policieslist
Example output
{
"count": 1,
"is_truncated": false,
"next_marker": null,
"policies": [
{
"arn": "arn:aws:iam::aws:policy/ReadOnlyAccess",
"attachment_count": 0,
"create_date": "2015-02-06T18:39:48+00:00",
"default_version_id": "v120",
"description": null,
"is_attachable": true,
"path": "/",
"permissions_boundary_usage_count": 0,
"policy_id": "ANPAILL3HVNFSB6DCOWYQ",
"policy_name": "ReadOnlyAccess",
"update_date": "2026-08-20T17:12:05+00:00"
}
]
}List roles
List the IAM roles in the account, including AWS's own service-linked roles. Tags, permissions boundaries and last use are not included; use 'Get a role' for those.
Inputs
- Path prefix
path_prefixtext - Only return entries whose path starts with this, such as '/engineering/'. Leave empty for all.
- Marker
markertext - To fetch the next page, the 'next_marker' an earlier run of this step returned. Leave empty for the first page.
- Max items
max_itemsnumber - How many to return in one page, from 1 to 1,000.From 1 to 1000. Default:
100.
Outputs
countnumberis_truncatedtrue/falsenext_markertext- Pass this as 'Marker' to fetch the next page. Null on the last page.
roleslist
Example output
{
"count": 1,
"is_truncated": false,
"next_marker": null,
"roles": [
{
"arn": "arn:aws:iam::123456789012:role/aws-service-role/support.amazonaws.com/AWSServiceRoleForSupport",
"assume_role_policy_document": {
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": "support.amazonaws.com"
}
}
],
"Version": "2012-10-17"
},
"create_date": "2026-09-01T09:00:00+00:00",
"description": "Enables resource access for AWS to provide billing support.",
"max_session_duration": 3600,
"path": "/aws-service-role/support.amazonaws.com/",
"role_id": "AROACKCEVSQ6C2EXAMPLE",
"role_name": "AWSServiceRoleForSupport"
}
]
}List users
List the IAM users in the account, one page at a time. Tags and permissions boundaries are not included; use 'Get a user' for those.
Inputs
- Path prefix
path_prefixtext - Only return entries whose path starts with this, such as '/engineering/'. Leave empty for all.
- Marker
markertext - To fetch the next page, the 'next_marker' an earlier run of this step returned. Leave empty for the first page.
- Max items
max_itemsnumber - How many to return in one page, from 1 to 1,000.From 1 to 1000. Default:
100.
Outputs
countnumberis_truncatedtrue/falsenext_markertext- Pass this as 'Marker' to fetch the next page. Null on the last page.
userslist
Example output
{
"count": 1,
"is_truncated": false,
"next_marker": null,
"users": [
{
"arn": "arn:aws:iam::123456789012:user/alice",
"create_date": "2026-09-01T09:00:00+00:00",
"password_last_used": null,
"path": "/",
"user_id": "AIDACKCEVSQ6C2EXAMPLE",
"user_name": "alice"
}
]
}Remove user from group
Remove an IAM user from a group.
Inputs
- Group
group_nametextRequired - The IAM group. Pick one, or give its name, its ARN, or the link to its page in the IAM console.
- User name
user_nametextRequired - The IAM user. Give its name, its ARN, or the link to its page in the IAM console. 'List users' shows every user.
Outputs
group_nametextremovedtrue/falseuser_nametext
Example output
{
"group_name": "developers",
"removed": true,
"user_name": "alice"
}Tag a user
Add tags to an IAM user. A tag whose name already exists on the user is overwritten with the new value; other tags are kept.
Inputs
- User name
user_nametextRequired - The IAM user. Give its name, its ARN, or the link to its page in the IAM console. 'List users' shows every user.
- Tags
tagsobjectRequired - Tag names and values, such as team = platform. Up to 50 tags; names up to 128 characters, values up to 256.
Outputs
tagsobject- The tags this step wrote.
user_nametext
Example output
{
"tags": {
"team": "platform"
},
"user_name": "alice"
}Update an access key
Activate or deactivate a user's access key, for example to suspend a leaked key without deleting it. This step will not deactivate the key this connection itself uses.
Inputs
- User name
user_nametextRequired - The IAM user who owns the key. Give its name, its ARN, or the link to its page in the IAM console. Required, because without it AWS would act on this connection's own keys.
- Access key ID
access_key_idtextRequired - The key to change, such as AKIAIOSFODNN7EXAMPLE. 'List access keys' shows them.
- Status
statustextRequired - What the key should be.One of:
Active(Active (the key can sign requests)),Inactive(Inactive (requests signed with it fail)).
Outputs
access_key_idtextstatustextuser_nametext
Example output
{
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"status": "Inactive",
"user_name": "alice"
}