Actions, resources, and condition keys for AWS Identity and Access Management (IAM)
AWS Identity and Access Management (IAM) (service prefix: iam
) provides the following service-specific resources, actions, and condition context keys for use in IAM permission policies.
References:
-
Learn how to configure this service.
-
View a list of the API operations available for this service.
-
Learn how to secure this service and its resources by using IAM permission policies.
Topics
Actions defined by AWS Identity and Access Management (IAM)
You can specify the following actions in the Action
element of an IAM policy statement. Use policies to grant permissions to perform an operation in AWS. When you use an action in a policy, you usually allow or deny access to the API operation or CLI command with the same name. However, in some cases, a single action controls access to more than one operation. Alternatively, some operations require several different actions.
The Resource types column of the Actions table indicates whether each action supports resource-level permissions. If there is no value for this column, you must specify all resources ("*") to which the policy applies in the Resource
element of your policy statement. If the column includes a resource type, then you can specify an ARN of that type in a statement with that action. If the action has one or more required resources, the caller must have permission to use the action with those resources. Required resources are indicated in the table with an asterisk (*). If you limit resource access with the Resource
element in an IAM policy, you must include an ARN or pattern for each required resource type. Some actions support multiple resource types. If the resource type is optional (not indicated as required), then you can choose to use one of the optional resource types.
The Condition keys column of the Actions table includes keys that you can specify in a policy statement's Condition
element. For more information on the condition keys that are associated with resources for the service, see the Condition keys column of the Resource types table.
Note
Resource condition keys are listed in the Resource types table. You can find a link to the resource type that applies to an action in the Resource types (*required) column of the Actions table. The resource type in the Resource types table includes the Condition keys column, which are the resource condition keys that apply to an action in the Actions table.
For details about the columns in the following table, see Actions table.
Actions | Description | Access level | Resource types (*required) | Condition keys | Dependent actions |
---|---|---|---|---|---|
AddClientIDToOpenIDConnectProvider | Grants permission to add a new client ID (audience) to the list of registered IDs for the specified IAM OpenID Connect (OIDC) provider resource | Write | |||
AddRoleToInstanceProfile | Grants permission to add an IAM role to the specified instance profile | Write |
iam:PassRole |
||
AddUserToGroup | Grants permission to add an IAM user to the specified IAM group | Write | |||
AttachGroupPolicy | Grants permission to attach a managed policy to the specified IAM group | Permissions management | |||
AttachRolePolicy | Grants permission to attach a managed policy to the specified IAM role | Permissions management | |||
AttachUserPolicy | Grants permission to attach a managed policy to the specified IAM user | Permissions management | |||
ChangePassword | Grants permission to an IAM user to change their own password | Write | |||
CreateAccessKey | Grants permission to create access key and secret access key for the specified IAM user | Write | |||
CreateAccountAlias | Grants permission to create an alias for your AWS account | Write | |||
CreateGroup | Grants permission to create a new group | Write | |||
CreateInstanceProfile | Grants permission to create a new instance profile | Write | |||
CreateLoginProfile | Grants permission to create a password for the specified IAM user | Write | |||
CreateOpenIDConnectProvider | Grants permission to create an IAM resource that describes an identity provider (IdP) that supports OpenID Connect (OIDC) | Write | |||
CreatePolicy | Grants permission to create a new managed policy | Permissions management | |||
CreatePolicyVersion | Grants permission to create a new version of the specified managed policy | Permissions management | |||
CreateRole | Grants permission to create a new role | Write | |||
CreateSAMLProvider | Grants permission to create an IAM resource that describes an identity provider (IdP) that supports SAML 2.0 | Write | |||
CreateServiceLinkedRole | Grants permission to create an IAM role that allows an AWS service to perform actions on your behalf | Write | |||
CreateServiceSpecificCredential | Grants permission to create a new service-specific credential for an IAM user | Write | |||
CreateUser | Grants permission to create a new IAM user | Write | |||
CreateVirtualMFADevice | Grants permission to create a new virtual MFA device | Write | |||
DeactivateMFADevice | Grants permission to deactivate the specified MFA device and remove its association with the IAM user for which it was originally enabled | Write | |||
DeleteAccessKey | Grants permission to delete the access key pair that is associated with the specified IAM user | Write | |||
DeleteAccountAlias | Grants permission to delete the specified AWS account alias | Write | |||
DeleteAccountPasswordPolicy | Grants permission to delete the password policy for the AWS account | Permissions management | |||
DeleteCloudFrontPublicKey | Grants permission to delete an existing CloudFront public key | Write | |||
DeleteGroup | Grants permission to delete the specified IAM group | Write | |||
DeleteGroupPolicy | Grants permission to delete the specified inline policy from its group | Permissions management | |||
DeleteInstanceProfile | Grants permission to delete the specified instance profile | Write | |||
DeleteLoginProfile | Grants permission to delete the password for the specified IAM user | Write | |||
DeleteOpenIDConnectProvider | Grants permission to delete an OpenID Connect identity provider (IdP) resource object in IAM | Write | |||
DeletePolicy | Grants permission to delete the specified managed policy and remove it from any IAM entities (users, groups, or roles) to which it is attached | Permissions management | |||
DeletePolicyVersion | Grants permission to delete a version from the specified managed policy | Permissions management | |||
DeleteRole | Grants permission to delete the specified role | Write | |||
DeleteRolePermissionsBoundary | Grants permission to remove the permissions boundary from a role | Permissions management | |||
DeleteRolePolicy | Grants permission to delete the specified inline policy from the specified role | Permissions management | |||
DeleteSAMLProvider | Grants permission to delete a SAML provider resource in IAM | Write | |||
DeleteSSHPublicKey | Grants permission to delete the specified SSH public key | Write | |||
DeleteServerCertificate | Grants permission to delete the specified server certificate | Write | |||
DeleteServiceLinkedRole | Grants permission to delete an IAM role that is linked to a specific AWS service, if the service is no longer using it | Write | |||
DeleteServiceSpecificCredential | Grants permission to delete the specified service-specific credential for an IAM user | Write | |||
DeleteSigningCertificate | Grants permission to delete a signing certificate that is associated with the specified IAM user | Write | |||
DeleteUser | Grants permission to delete the specified IAM user | Write | |||
DeleteUserPermissionsBoundary | Grants permission to remove the permissions boundary from the specified IAM user | Permissions management | |||
DeleteUserPolicy | Grants permission to delete the specified inline policy from an IAM user | Permissions management | |||
DeleteVirtualMFADevice | Grants permission to delete a virtual MFA device | Write | |||
DetachGroupPolicy | Grants permission to detach a managed policy from the specified IAM group | Permissions management | |||
DetachRolePolicy | Grants permission to detach a managed policy from the specified role | Permissions management | |||
DetachUserPolicy | Grants permission to detach a managed policy from the specified IAM user | Permissions management | |||
DisableOrganizationsRootCredentialsManagement | Grants permission to disable the management of member account root user credentials for an organization managed under the current account | Write | |||
DisableOrganizationsRootSessions | Grants permission to disable privileged root actions in member accounts for an organization managed under the current account | Write | |||
EnableMFADevice | Grants permission to enable an MFA device and associate it with the specified IAM user | Write | |||
iam:FIDO-FIPS-140-2-certification |
|||||
EnableOrganizationsRootCredentialsManagement | Grants permission to enable the management of member account root user credentials for an organization managed under the current account | Write | |||
EnableOrganizationsRootSessions | Grants permission to enable privileged root actions in member accounts for an organization managed under the current account | Write | |||
GenerateCredentialReport | Grants permission to generate a credential report for the AWS account | Read | |||
GenerateOrganizationsAccessReport | Grants permission to generate an access report for an AWS Organizations entity | Read |
organizations:DescribePolicy organizations:ListChildren organizations:ListParents organizations:ListPoliciesForTarget organizations:ListRoots organizations:ListTargetsForPolicy |
||
GenerateServiceLastAccessedDetails | Grants permission to generate a service last accessed data report for an IAM resource | Read | |||
GetAccessKeyLastUsed | Grants permission to retrieve information about when the specified access key was last used | Read | |||
GetAccountAuthorizationDetails | Grants permission to retrieve information about all IAM users, groups, roles, and policies in your AWS account, including their relationships to one another | Read | |||
GetAccountEmailAddress | Grants permission to retrieve the email address that is associated with the account | Read | |||
GetAccountName | Grants permission to retrieve the account name that is associated with the account | Read | |||
GetAccountPasswordPolicy | Grants permission to retrieve the password policy for the AWS account | Read | |||
GetAccountSummary | Grants permission to retrieve information about IAM entity usage and IAM quotas in the AWS account | List | |||
GetCloudFrontPublicKey | Grants permission to retrieve information about the specified CloudFront public key | Read | |||
GetContextKeysForCustomPolicy | Grants permission to retrieve a list of all of the context keys that are referenced in the specified policy | Read | |||
GetContextKeysForPrincipalPolicy | Grants permission to retrieve a list of all context keys that are referenced in all IAM policies that are attached to the specified IAM identity (user, group, or role) | Read | |||
GetCredentialReport | Grants permission to retrieve a credential report for the AWS account | Read | |||
GetGroup | Grants permission to retrieve a list of IAM users in the specified IAM group | Read | |||
GetGroupPolicy | Grants permission to retrieve an inline policy document that is embedded in the specified IAM group | Read | |||
GetInstanceProfile | Grants permission to retrieve information about the specified instance profile, including the instance profile's path, GUID, ARN, and role | Read | |||
GetLoginProfile | Grants permission to retrieve the user name and password creation date for the specified IAM user | List | |||
GetMFADevice | Grants permission to retrieve information about an MFA device for the specified user | Read | |||
GetOpenIDConnectProvider | Grants permission to retrieve information about the specified OpenID Connect (OIDC) provider resource in IAM | Read | |||
GetOrganizationsAccessReport | Grants permission to retrieve an AWS Organizations access report | Read | |||
GetPolicy | Grants permission to retrieve information about the specified managed policy, including the policy's default version and the total number of identities to which the policy is attached | Read | |||
GetPolicyVersion | Grants permission to retrieve information about a version of the specified managed policy, including the policy document | Read | |||
GetRole | Grants permission to retrieve information about the specified role, including the role's path, GUID, ARN, and the role's trust policy | Read | |||
GetRolePolicy | Grants permission to retrieve an inline policy document that is embedded with the specified IAM role | Read | |||
GetSAMLProvider | Grants permission to retrieve the SAML provider metadocument that was uploaded when the IAM SAML provider resource was created or updated | Read | |||
GetSSHPublicKey | Grants permission to retrieve the specified SSH public key, including metadata about the key | Read | |||
GetServerCertificate | Grants permission to retrieve information about the specified server certificate stored in IAM | Read | |||
GetServiceLastAccessedDetails | Grants permission to retrieve information about the service last accessed data report | Read | |||
GetServiceLastAccessedDetailsWithEntities | Grants permission to retrieve information about the entities from the service last accessed data report | Read | |||
GetServiceLinkedRoleDeletionStatus | Grants permission to retrieve an IAM service-linked role deletion status | Read | |||
GetUser | Grants permission to retrieve information about the specified IAM user, including the user's creation date, path, unique ID, and ARN | Read | |||
GetUserPolicy | Grants permission to retrieve an inline policy document that is embedded in the specified IAM user | Read | |||
ListAccessKeys | Grants permission to list information about the access key IDs that are associated with the specified IAM user | List | |||
ListAccountAliases | Grants permission to list the account alias that is associated with the AWS account | List | |||
ListAttachedGroupPolicies | Grants permission to list all managed policies that are attached to the specified IAM group | List | |||
ListAttachedRolePolicies | Grants permission to list all managed policies that are attached to the specified IAM role | List | |||
ListAttachedUserPolicies | Grants permission to list all managed policies that are attached to the specified IAM user | List | |||
ListCloudFrontPublicKeys | Grants permission to list all current CloudFront public keys for the account | List | |||
ListEntitiesForPolicy | Grants permission to list all IAM identities to which the specified managed policy is attached | List | |||
ListGroupPolicies | Grants permission to list the names of the inline policies that are embedded in the specified IAM group | List | |||
ListGroups | Grants permission to list the IAM groups that have the specified path prefix | List | |||
ListGroupsForUser | Grants permission to list the IAM groups that the specified IAM user belongs to | List | |||
ListInstanceProfileTags | Grants permission to list the tags that are attached to the specified instance profile | List | |||
ListInstanceProfiles | Grants permission to list the instance profiles that have the specified path prefix | List | |||
ListInstanceProfilesForRole | Grants permission to list the instance profiles that have the specified associated IAM role | List | |||
ListMFADeviceTags | Grants permission to list the tags that are attached to the specified virtual mfa device | List | |||
ListMFADevices | Grants permission to list the MFA devices for an IAM user | List | |||
ListOpenIDConnectProviderTags | Grants permission to list the tags that are attached to the specified OpenID Connect provider | List | |||
ListOpenIDConnectProviders | Grants permission to list information about the IAM OpenID Connect (OIDC) provider resource objects that are defined in the AWS account | List | |||
ListOrganizationsFeatures | Grants permission to list the centralized root access features enabled for your organization | List | |||
ListPolicies | Grants permission to list all managed policies | List | |||
ListPoliciesGrantingServiceAccess | Grants permission to list information about the policies that grant an entity access to a specific service | List | |||
ListPolicyTags | Grants permission to list the tags that are attached to the specified managed policy | List | |||
ListPolicyVersions | Grants permission to list information about the versions of the specified managed policy, including the version that is currently set as the policy's default version | List | |||
ListRolePolicies | Grants permission to list the names of the inline policies that are embedded in the specified IAM role | List | |||
ListRoleTags | Grants permission to list the tags that are attached to the specified IAM role | List | |||
ListRoles | Grants permission to list the IAM roles that have the specified path prefix | List | |||
ListSAMLProviderTags | Grants permission to list the tags that are attached to the specified SAML provider | List | |||
ListSAMLProviders | Grants permission to list the SAML provider resources in IAM | List | |||
ListSSHPublicKeys | Grants permission to list information about the SSH public keys that are associated with the specified IAM user | List | |||
ListSTSRegionalEndpointsStatus | Grants permission to list the status of all active STS regional endpoints | List | |||
ListServerCertificateTags | Grants permission to list the tags that are attached to the specified server certificate | List | |||
ListServerCertificates | Grants permission to list the server certificates that have the specified path prefix | List | |||
ListServiceSpecificCredentials | Grants permission to list the service-specific credentials that are associated with the specified IAM user | List | |||
ListSigningCertificates | Grants permission to list information about the signing certificates that are associated with the specified IAM user | List | |||
ListUserPolicies | Grants permission to list the names of the inline policies that are embedded in the specified IAM user | List | |||
ListUserTags | Grants permission to list the tags that are attached to the specified IAM user | List | |||
ListUsers | Grants permission to list the IAM users that have the specified path prefix | List | |||
ListVirtualMFADevices | Grants permission to list virtual MFA devices by assignment status | List | |||
PassRole [permission only] | Grants permission to pass a role to a service | Write | |||
PutGroupPolicy | Grants permission to create or update an inline policy document that is embedded in the specified IAM group | Permissions management | |||
PutRolePermissionsBoundary | Grants permission to set a managed policy as a permissions boundary for a role | Permissions management | |||
PutRolePolicy | Grants permission to create or update an inline policy document that is embedded in the specified IAM role | Permissions management | |||
PutUserPermissionsBoundary | Grants permission to set a managed policy as a permissions boundary for an IAM user | Permissions management | |||
PutUserPolicy | Grants permission to create or update an inline policy document that is embedded in the specified IAM user | Permissions management | |||
RemoveClientIDFromOpenIDConnectProvider | Grants permission to remove the client ID (audience) from the list of client IDs in the specified IAM OpenID Connect (OIDC) provider resource | Write | |||
RemoveRoleFromInstanceProfile | Grants permission to remove an IAM role from the specified EC2 instance profile | Write | |||
RemoveUserFromGroup | Grants permission to remove an IAM user from the specified group | Write | |||
ResetServiceSpecificCredential | Grants permission to reset the password for an existing service-specific credential for an IAM user | Write | |||
ResyncMFADevice | Grants permission to synchronize the specified MFA device with its IAM entity (user or role) | Write | |||
SetDefaultPolicyVersion | Grants permission to set the version of the specified policy as the policy's default version | Permissions management | |||
SetSTSRegionalEndpointStatus | Grants permission to activate or deactivate an STS regional endpoint | Write | |||
SetSecurityTokenServicePreferences | Grants permission to set the STS global endpoint token version | Write | |||
SimulateCustomPolicy | Grants permission to simulate whether an identity-based policy or resource-based policy provides permissions for specific API operations and resources | Read | |||
SimulatePrincipalPolicy | Grants permission to simulate whether an identity-based policy that is attached to a specified IAM entity (user or role) provides permissions for specific API operations and resources | Read | |||
TagInstanceProfile | Grants permission to add tags to an instance profile | Tagging | |||
TagMFADevice | Grants permission to add tags to a virtual mfa device | Tagging | |||
TagOpenIDConnectProvider | Grants permission to add tags to an OpenID Connect provider | Tagging | |||
TagPolicy | Grants permission to add tags to a managed policy | Tagging | |||
TagRole | Grants permission to add tags to an IAM role | Tagging | |||
TagSAMLProvider | Grants permission to add tags to a SAML Provider | Tagging | |||
TagServerCertificate | Grants permission to add tags to a server certificate | Tagging | |||
TagUser | Grants permission to add tags to an IAM user | Tagging | |||
UntagInstanceProfile | Grants permission to remove the specified tags from the instance profile | Tagging | |||
UntagMFADevice | Grants permission to remove the specified tags from the virtual mfa device | Tagging | |||
UntagOpenIDConnectProvider | Grants permission to remove the specified tags from the OpenID Connect provider | Tagging | |||
UntagPolicy | Grants permission to remove the specified tags from the managed policy | Tagging | |||
UntagRole | Grants permission to remove the specified tags from the role | Tagging | |||
UntagSAMLProvider | Grants permission to remove the specified tags from the SAML Provider | Tagging | |||
UntagServerCertificate | Grants permission to remove the specified tags from the server certificate | Tagging | |||
UntagUser | Grants permission to remove the specified tags from the user | Tagging | |||
UpdateAccessKey | Grants permission to update the status of the specified access key as Active or Inactive | Write | |||
UpdateAccountEmailAddress | Grants permission to update the email address that is associated with the account | Write | |||
UpdateAccountName | Grants permission to update the account name that is associated with the account | Write | |||
UpdateAccountPasswordPolicy | Grants permission to update the password policy settings for the AWS account | Write | |||
UpdateAssumeRolePolicy | Grants permission to update the policy that grants an IAM entity permission to assume a role | Permissions management | |||
UpdateCloudFrontPublicKey | Grants permission to update an existing CloudFront public key | Write | |||
UpdateGroup | Grants permission to update the name or path of the specified IAM group | Write | |||
UpdateLoginProfile | Grants permission to change the password for the specified IAM user | Write | |||
UpdateOpenIDConnectProviderThumbprint | Grants permission to update the entire list of server certificate thumbprints that are associated with an OpenID Connect (OIDC) provider resource | Write | |||
UpdateRole | Grants permission to update the description or maximum session duration setting of a role | Write | |||
UpdateRoleDescription | Grants permission to update only the description of a role | Write | |||
UpdateSAMLProvider | Grants permission to update the metadata document for an existing SAML provider resource | Write | |||
UpdateSSHPublicKey | Grants permission to update the status of an IAM user's SSH public key to active or inactive | Write | |||
UpdateServerCertificate | Grants permission to update the name or the path of the specified server certificate stored in IAM | Write | |||
UpdateServiceSpecificCredential | Grants permission to update the status of a service-specific credential to active or inactive for an IAM user | Write | |||
UpdateSigningCertificate | Grants permission to update the status of the specified user signing certificate to active or disabled | Write | |||
UpdateUser | Grants permission to update the name or the path of the specified IAM user | Write | |||
UploadCloudFrontPublicKey | Grants permission to upload a CloudFront public key | Write | |||
UploadSSHPublicKey | Grants permission to upload an SSH public key and associate it with the specified IAM user | Write | |||
UploadServerCertificate | Grants permission to upload a server certificate entity for the AWS account | Write | |||
UploadSigningCertificate | Grants permission to upload an X.509 signing certificate and associate it with the specified IAM user | Write |
Resource types defined by AWS Identity and Access Management (IAM)
The following resource types are defined by this service and can be used in the Resource
element of IAM permission policy statements. Each action in the Actions table identifies the resource types that can be specified with that action. A resource type can also define which condition keys you can include in a policy. These keys are displayed in the last column of the Resource types table. For details about the columns in the following table, see Resource types table.
Resource types | ARN | Condition keys |
---|---|---|
access-report |
arn:${Partition}:iam::${Account}:access-report/${EntityPath}
|
|
assumed-role |
arn:${Partition}:iam::${Account}:assumed-role/${RoleName}/${RoleSessionName}
|
|
federated-user |
arn:${Partition}:iam::${Account}:federated-user/${UserName}
|
|
group |
arn:${Partition}:iam::${Account}:group/${GroupNameWithPath}
|
|
instance-profile |
arn:${Partition}:iam::${Account}:instance-profile/${InstanceProfileNameWithPath}
|
|
mfa |
arn:${Partition}:iam::${Account}:mfa/${MfaTokenIdWithPath}
|
|
oidc-provider |
arn:${Partition}:iam::${Account}:oidc-provider/${OidcProviderName}
|
|
policy |
arn:${Partition}:iam::${Account}:policy/${PolicyNameWithPath}
|
|
role |
arn:${Partition}:iam::${Account}:role/${RoleNameWithPath}
|
|
saml-provider |
arn:${Partition}:iam::${Account}:saml-provider/${SamlProviderName}
|
|
server-certificate |
arn:${Partition}:iam::${Account}:server-certificate/${CertificateNameWithPath}
|
|
sms-mfa |
arn:${Partition}:iam::${Account}:sms-mfa/${MfaTokenIdWithPath}
|
|
user |
arn:${Partition}:iam::${Account}:user/${UserNameWithPath}
|
Condition keys for AWS Identity and Access Management (IAM)
AWS Identity and Access Management (IAM) defines the following condition keys that can be used in the Condition
element of an IAM policy. You can use these keys to further refine the conditions under which the policy statement applies. For details about the columns in the following table, see Condition keys table.
To view the global condition keys that are available to all services, see Available global condition keys.
Condition keys | Description | Type |
---|---|---|
aws:RequestTag/${TagKey} | Filters access based on the tags that are passed in the request | String |
aws:ResourceTag/${TagKey} | Filters access based on the tags associated with the resource | String |
aws:TagKeys | Filters access based on the tag keys that are passed in the request | ArrayOfString |
iam:AWSServiceName | Filters access by the AWS service to which this role is attached | String |
iam:AssociatedResourceArn | Filters access by the resource that the role will be used on behalf of | ARN |
iam:FIDO-FIPS-140-2-certification | Filters access by the MFA device FIPS-140-2 validation certification level at the time of registration of a FIDO security key | String |
iam:FIDO-FIPS-140-3-certification | Filters access by the MFA device FIPS-140-3 validation certification level at the time of registration of a FIDO security key | String |
iam:FIDO-certification | Filters access by the MFA device FIDO certification level at the time of registration of a FIDO security key | String |
iam:OrganizationsPolicyId | Filters access by the ID of an AWS Organizations policy | String |
iam:PassedToService | Filters access by the AWS service to which this role is passed | String |
iam:PermissionsBoundary | Filters access if the specified policy is set as the permissions boundary on the IAM entity (user or role) | ARN |
iam:PolicyARN | Filters access by the ARN of an IAM policy | ARN |
iam:RegisterSecurityKey | Filters access by the current state of MFA device enablement | String |
iam:ResourceTag/${TagKey} | Filters access by the tags attached to an IAM entity (user or role) | String |