STS AssumeRole(角色扮演)常見錯誤及原因如下:

序號 錯誤 原因
1 ErrorCode: NoPermission ErrorMessage: Roles may not be assumed by root accounts. 使用主用戶的密鑰調用AssumeRole,請使用子用戶的密鑰。
2 ErrorCode: MissingSecurityToken ErrorMessage: SecurityToken is mandatory for this action. 使用臨時用戶的密鑰調用AssumeRole,請使用子用戶的密鑰。
3 Error code: InvalidAccessKeyId.NotFound Error message: Specified access key is not found AccessKeyId無效,請檢查是否寫錯,特別是前後不能有空格。
4 Error code: InvalidAccessKeyId.Inactive Error message: Specified access key is disabled. 使用的子用戶的密鑰,已經被禁止,請啟用密鑰或更換密鑰。 密鑰是否被禁止,請通過控制台的存取控制 > 用戶管理 > 管理 > 用戶詳情 > 用戶AccessKey確認,並開啟。
5 ErrorCode: InvalidParameter.PolicyGrammar ErrorMessage: The parameter Policy has not passed grammar check. 角色扮演時指定的授權策略無效。AssumeRole時可以指定授權(Policy),也可以不指定。如果指定授權策略,則臨時用戶的許可權是指定的授權策略和角色許可權的交集;如果不指定授權策略,臨時用戶的許可權是角色的許可權。報該錯誤時,請檢查指定的授權策略Policy。不推薦臨時用戶扮演角色時指定授權策略。如果的確需要使用授權策略,強烈建使用RAM Policy Editor生成授權策略。
6 ErrorCode: InvalidParameter.RoleSessionNameErrorMessage: The parameter RoleSessionName is wrongly formed. 角色扮演時指定RoleSessionName無效。此參數用來區分不同的Token,以標明誰在使用此Token,便於審計。格式:^[a-zA-Z0-9.@-_]+$,2-32個字元。

了解更多請參看扮演角色操作介面。如命名a,1,abc*abc,忍者神龜等都是非法的。

7 ErrorCode: InvalidParameter.DurationSeconds Error message: The Min/Max value of DurationSeconds is 15min/1hr. 角色扮演時指定的過期時間無效,即AssumeRoleRequest.setDurationSeconds參數無效。角色扮演時可以指定過期時間,單位為秒,有效時間是900 ~ 3600,如assumeRoleRequest.setDurationSeconds(60L * 20),20分鐘內有效。
8 ErrorCode: NoPermissionErrorMessage: No permission perform sts:AssumeRole on this Role. Maybe you are not authorized to perform sts:AssumeRole or the specified role does not trust you
  • 原因1:AssumeRole的子用戶沒有許可權,請給子用戶授予AliyunSTSAssumeRoleAccess系統授權策略。請在存取控制 > 用戶管理 > 授權 > 可授權策略名稱中給子用戶授權 AliyunSTSAssumeRoleAccess。
  • 原因2:申請角色扮演的子用戶的雲帳號ID與角色的“受信雲帳號ID”不符,請角色建立者確認並修改。子用戶的雲帳號ID,即建立子用戶的主用戶的ID;角色的雲帳號ID,即建立角色的主用戶的雲帳號ID。請在如下位置確認修改:存取控制 > 角色管理 > 管理 > 角色詳情 > 編輯基本資料中確認修改。
  • 原因3:角色的類型錯誤,如果角色的類型分為“使用者角色”和“服務角色”,服務角色不能使用AssumeRole扮演臨時用戶。
说明