All Products
Search
Document Center

Identity as a Service:RAM authorization

Last Updated:Dec 17, 2024
Resource Access Management (RAM) is a service provided by Alibaba Cloud to manage user identities and resource access permissions. You can use RAM to prevent RAM users from sharing the AccessKey pairs of your Alibaba Cloud account. You can also use RAM to grant minimum permissions to RAM users. RAM uses policies to define permissions.
This topic describes the elements, such as Action, Resource, and Condition, which are defined by EIAM. You can use the elements to create policies in RAM. The code (RamCode) in RAM that is used to indicate EIAM is [{"popCode":"Eiam","ramCodes":["eiam"]},{"popCode":"Eiam-inner","ramCodes":[]}]. You can grant permissions on EIAM at the RESOURCE.

General structure of a policy

Policies can be stored as JSON files. The following code provides an example on the general structure of a policy:
{
  "Version": "1",
  "Statement": [
    {
      "Effect": "<Effect>",
      "Action": "<Action>",
      "Resource": "<Resource>",
      "Condition": {
        "<Condition_operator>": {
          "<Condition_key>": [
            "<Condition_value>"
          ]
        }
      }
    }
  ]
}
The following list describes the fields in the policy:
  • Effect: specifies the authorization effect. Valid values: Allow, Deny.
  • Action: specifies one or more API operations that are allowed or denied. For more information, see the Action section of this topic.
  • Resource: specifies one or more resources to which the policy applies. You can use an Alibaba Cloud Resource Name (ARN) to specify a resource. For more information, see the Resource section of this topic.
  • Condition: specifies one or more conditions that are required for the policy to take effect. This is an optional field. For more information, see the Condition section of this topic.
    • Condition_operator: specifies the conditional operators. Different types of conditions support different conditional operators. For more information, see Policy elements.
    • Condition_key: specifies the condition keys.
    • Condition_value: specifies the condition values.

Action

EIAM defines the values that you can use in the Action element of a policy statement. The following table describes the values.
  • Operation: the value that you can use in the Action element to specify the operation on a resource.
  • API operation: the API operation that you can call to perform the operation.
  • Access level: the access level of each operation. The levels are read, write, and list.
  • Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
    • The required resource types are displayed in bold characters.
    • If the permissions cannot be granted at the resource level, All Resources is used in the Resource type column of the operation.
  • Condition key: the condition keys that are defined by the Alibaba Cloud service. The Condition key column does not list the common condition keys that are defined by Alibaba Cloud. For more information about the common condition keys, see Generic Condition Keyword.
  • Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
ActionsAPI operationAccess levelResource typeCondition keyAssociated operation
eiam:ListOrganizationalUnitsForApplicationListOrganizationalUnitsForApplicationlist
All Resources
*
NoneNone
eiam:DisableApplicationDisableApplication
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/{#ApplicationId}
NoneNone
eiam:AuthorizeApplicationToUsersAuthorizeApplicationToUsersWrite
All Resources
*
NoneNone
eiam:EnableUserEnableUserupdate
All Resources
*
NoneNone
eiam:CreateApplicationCreateApplicationcreate
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/*
NoneNone
eiam:UpdateOrganizationalUnitDescriptionUpdateOrganizationalUnitDescriptionupdate
All Resources
*
NoneNone
eiam:SetPasswordInitializationConfigurationSetPasswordInitializationConfigurationupdate
All Resources
*
NoneNone
eiam:EnableApplicationProvisioningEnableApplicationProvisioningWrite
All Resources
*
NoneNone
eiam:GetForgetPasswordConfigurationGetForgetPasswordConfigurationget
All Resources
*
NoneNone
eiam:SetApplicationGrantScopeSetApplicationGrantScope
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/{#ApplicationId}
NoneNone
eiam:AuthorizeApplicationToOrganizationalUnitsAuthorizeApplicationToOrganizationalUnitsWrite
All Resources
*
NoneNone
eiam:ListApplicationClientSecretsListApplicationClientSecretslist
All Resources
*
NoneNone
eiam:RevokeApplicationFromOrganizationalUnitsRevokeApplicationFromOrganizationalUnitsWrite
All Resources
*
NoneNone
eiam:DeleteInstanceDeleteInstancedelete
Instance
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}
NoneNone
eiam:EnableApplicationApiInvokeEnableApplicationApiInvokeWrite
All Resources
*
NoneNone
eiam:RemoveUsersFromGroupRemoveUsersFromGroupdelete
All Resources
*
NoneNone
eiam:UpdateOrganizationalUnitUpdateOrganizationalUnitupdate
All Resources
*
NoneNone
eiam:ListOrganizationalUnitsListOrganizationalUnitsget
All Resources
*
NoneNone
eiam:UpdateUserDescriptionUpdateUserDescriptionupdate
All Resources
*
NoneNone
eiam:DeleteOrganizationalUnitChildrenDeleteOrganizationalUnitChildrenWrite
All Resources
*
NoneNone
eiam:GetPasswordComplexityConfigurationGetPasswordComplexityConfigurationget
All Resources
*
NoneNone
eiam:UpdateOrganizationalUnitParentIdUpdateOrganizationalUnitParentIdupdate
All Resources
*
NoneNone
eiam:ListGroupsForApplicationListGroupsForApplicationlist
All Resources
*
NoneNone
eiam:ListRegionsListRegionsget
All Resources
*
NoneNone
eiam:CreateOrganizationalUnitCreateOrganizationalUnitcreate
All Resources
*
NoneNone
eiam:DeleteUserDeleteUserdelete
All Resources
*
NoneNone
eiam:ListGroupsForUserListGroupsForUserget
All Resources
*
NoneNone
eiam:UpdateGroupUpdateGroupupdate
All Resources
*
NoneNone
eiam:SetApplicationProvisioningConfigSetApplicationProvisioningConfigWrite
All Resources
*
NoneNone
eiam:DeleteOrganizationalUnitDeleteOrganizationalUnitdelete
All Resources
*
NoneNone
eiam:GetPasswordInitializationConfigurationGetPasswordInitializationConfigurationget
All Resources
*
NoneNone
eiam:ListApplicationsListApplicationslist
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/*
NoneNone
eiam:AuthorizeApplicationToGroupsAuthorizeApplicationToGroupsWrite
All Resources
*
NoneNone
eiam:RevokeApplicationFromUsersRevokeApplicationFromUsersWrite
All Resources
*
NoneNone
eiam:DeleteApplicationClientSecretDeleteApplicationClientSecretWrite
All Resources
*
NoneNone
eiam:GetOrganizationalUnitGetOrganizationalUnitget
All Resources
*
NoneNone
eiam:SetForgetPasswordConfigurationSetForgetPasswordConfigurationWrite
All Resources
*
NoneNone
eiam:ListUsersForGroupListUsersForGroupget
All Resources
*
NoneNone
eiam:UpdateApplicationDescriptionUpdateApplicationDescription
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/{#ApplicationId}
NoneNone
eiam:ListGroupsListGroupsget
All Resources
*
NoneNone
eiam:GetApplicationGrantScopeGetApplicationGrantScopeget
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/{#ApplicationId}
NoneNone
eiam:UpdateInstanceDescriptionUpdateInstanceDescriptionupdate
Instance
acs:eiam:{#regionId}:{#accountId}:instance/{#instanceId}
NoneNone
eiam:GetApplicationSsoConfigGetApplicationSsoConfigget
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/{#ApplicationId}
NoneNone
eiam:SetPasswordHistoryConfigurationSetPasswordHistoryConfigurationupdate
All Resources
*
NoneNone
eiam:CreateApplicationClientSecretCreateApplicationClientSecretWrite
All Resources
*
NoneNone
eiam:DeleteApplicationDeleteApplicationdelete
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/{#ApplicationId}
NoneNone
eiam:DisableUserDisableUserupdate
All Resources
*
NoneNone
eiam:EnableApplicationEnableApplication
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/{#ApplicationId}
NoneNone
eiam:SetPasswordComplexityConfigurationSetPasswordComplexityConfigurationupdate
All Resources
*
NoneNone
eiam:GetApplicationProvisioningConfigGetApplicationProvisioningConfigget
All Resources
*
NoneNone
eiam:ListApplicationsForOrganizationalUnitListApplicationsForOrganizationalUnitlist
All Resources
*
NoneNone
eiam:GetPasswordExpirationConfigurationGetPasswordExpirationConfigurationget
All Resources
*
NoneNone
eiam:SetPasswordExpirationConfigurationSetPasswordExpirationConfigurationupdate
All Resources
*
NoneNone
eiam:AddUsersToGroupAddUsersToGroupcreate
All Resources
*
NoneNone
eiam:DisableApplicationApiInvokeDisableApplicationApiInvokeWrite
All Resources
*
NoneNone
eiam:DisableApplicationProvisioningDisableApplicationProvisioningWrite
All Resources
*
NoneNone
eiam:DeleteGroupDeleteGroupdelete
All Resources
*
NoneNone
eiam:RevokeApplicationFromGroupsRevokeApplicationFromGroupsWrite
All Resources
*
NoneNone
eiam:ListApplicationsForUserListApplicationsForUserlist
All Resources
*
NoneNone
eiam:GetRootOrganizationalUnitGetRootOrganizationalUnitget
All Resources
*
NoneNone
eiam:CreateGroupCreateGroupcreate
All Resources
*
NoneNone
eiam:SetUserPrimaryOrganizationalUnitSetUserPrimaryOrganizationalUnitupdate
All Resources
*
NoneNone
eiam:ListInstancesListInstancesget
Instance
acs:eiam:{#regionId}:{#accountId}:instance/*
NoneNone
eiam:GetApplicationGetApplicationget
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/{#ApplicationId}
NoneNone
eiam:UpdateApplicationAuthorizationTypeUpdateApplicationAuthorizationTypeWrite
All Resources
*
NoneNone
eiam:GetGroupGetGroupget
All Resources
*
NoneNone
eiam:ListUsersListUsersget
All Resources
*
NoneNone
eiam:GetPasswordHistoryConfigurationGetPasswordHistoryConfigurationget
All Resources
*
NoneNone
eiam:UpdateUserUpdateUserupdate
All Resources
*
NoneNone
eiam:EnableApplicationClientSecretEnableApplicationClientSecretWrite
All Resources
*
NoneNone
eiam:GetInstanceGetInstance
Instance
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}
NoneNone
eiam:UpdateUserPasswordUpdateUserPasswordupdate
All Resources
*
NoneNone
eiam:CreateInstanceCreateInstancecreate
Instance
acs:eiam:{#regionId}:{#accountId}:instance/*
NoneNone
eiam:SetApplicationSsoConfigSetApplicationSsoConfigcreate
Application
acs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/{#ApplicationId}
NoneNone
eiam:UnlockUserUnlockUserupdate
All Resources
*
NoneNone
eiam:DisableApplicationClientSecretDisableApplicationClientSecretWrite
All Resources
*
NoneNone
eiam:ObtainApplicationClientSecretObtainApplicationClientSecretRead
All Resources
*
NoneNone
eiam:RemoveUserFromOrganizationalUnitsRemoveUserFromOrganizationalUnitsdelete
All Resources
*
NoneNone
eiam:UpdateGroupDescriptionUpdateGroupDescriptionupdate
All Resources
*
NoneNone
eiam:ListUsersForApplicationListUsersForApplicationlist
All Resources
*
NoneNone
eiam:CreateUserCreateUsercreate
All Resources
*
NoneNone
eiam:AddUserToOrganizationalUnitsAddUserToOrganizationalUnitscreate
All Resources
*
NoneNone
eiam:GetUserGetUserget
All Resources
*
NoneNone

Resource

EIAM defines the values that you can use in the Resource. You can attach the policy to a RAM user or a RAM role so that the RAM user or the RAM role can perform a specific operation on a specific resource. The ARN is the unique identifier of the resource on Alibaba Cloud. Take note of the following items:
  • {#}indicates a variable. {#} must be replaced with an actual value. For example, {#ramcode} must be replaced with the actual code of an Alibaba Cloud service in RAM.
  • An asterisk (*) is used as a wildcard. Examples:
    • {#resourceType} is set to *, all resources are specified.
    • {#regionId} is set to *, all regions are specified.
    • {#accountId} is set to *, all Alibaba Cloud accounts are specified.
Resource typeARN
Applicationacs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/{#ApplicationId}
DomainProxyTokenacs:eiam:{#regionId}:{#accountId}:instance/${#InstanceId}/domain/${#DomainId}/domainproxytoken/${#DomainProxyTokenId}
DomainProxyTokenacs:eiam:{#regionId}:{#accountId}:*
Domainacs:eiam:{#regionId}:{#accountId}:instance/${#InstanceId}/domain/${#DomainId}
Applicationacs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/application/*
Applicationacs:eiam:{#regionId}:{#accountId}:*
Instanceacs:eiam:{#regionId}:{#accountId}:*
Instanceacs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}
IdentityProvideracs:eiam:{#regionId}:{#accountId}:*
ConditionalAccessPolicyacs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/conditionalaccesspolicy/{#ConditionalAccessPolicyId}
NetworkZoneacs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/networkzone/{#NetworkZoneId}
ConditionalAccessPolicyacs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/conditionalaccesspolicy/*
Domainacs:eiam:{#regionId}:{#accountId}:*
NetworkAccessEndpointacs:eiam:{#regionId}:{#accountId}:*
DomainProxyToken
NetworkZoneacs:eiam:{#regionId}:{#accountId}:instance/{#InstanceId}/networkzone/*
Instanceacs:eiam:{#regionId}:{#accountId}:instance/*

Condition

EIAM does not define service-specific condition keys. For more information about common condition keys that are defined by Alibaba Cloud, see Generic Condition Keyword.

What to do next

You can create a custom policy and attach the policy to a RAM user, RAM user group, or RAM role. For more information, see the following topics: