接口请求域名: sts.intl.tencentcloudapi.com 。
使用说明
申请扮演某个角色的临时访问凭证,返回临时身份的token和能够扮演该角色的临时密钥;
角色策略组成
(1)角色载体:指定谁可以扮演该角色;
(2)角色权限:指定扮演角色后可以执行哪些操作,操作哪些资源。
角色可被扮演的条件
(1)给该用户绑定包含AssumeRole的策略;
(2)将该用户配置为角色载体的主体。
此接口可以支持永久密钥或临时密钥调用。
典型场景
跨账号授权:主账号A需要操作主账号B的资源。
例如:A账号下有子用户a,B账号下有角色role b,a可以通过AssumeRole接口扮演b,以角色b身份登录账号B的控制台,并操作资源。
跨服务调用:云上的A服务需要访问或操作B服务的资源。
例如:为A服务接入一个服务相关角色,用户授权创建角色和策略后,A服务即可调用AssumeRole获取用户的服务相关角色临时密钥,调用B服务接口并访问资源。
最佳实践
默认接口请求频率限制:600次/秒。
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
| 参数名称 | 必选 | 类型 | 描述 |
|---|---|---|---|
| Action | 是 | String | 公共参数,本接口取值:AssumeRole。 |
| Version | 是 | String | 公共参数,本接口取值:2018-08-13。 |
| Region | 是 | String | 公共参数,详见产品支持的 地域列表。 |
| RoleArn | 是 | String | 角色的资源描述,可在访问管理,点击角色名获取。 普通角色: qcs::cam::uin/12345678:role/4611686018427397919、qcs::cam::uin/12345678:roleName/testRoleName 服务角色: qcs::cam::uin/12345678:role/tencentcloudServiceRole/4611686018427397920、qcs::cam::uin/12345678:role/tencentcloudServiceRoleName/testServiceRoleName |
| RoleSessionName | 是 | String | 临时会话名称,由用户自定义名称。 长度在2到128之间,可包含大小写字符,数字以及特殊字符:=,.@_-。 正则为:[\w+=,.@_-]* |
| DurationSeconds | 否 | Integer | 指定临时访问凭证的有效期,单位:秒,默认 7200 秒,最长可设定有效期为 43200 秒 |
| Policy | 否 | String | 策略描述 注意: 1、该参数需要做urlencode,服务端会对该字段做urldecode, 并按处理后Policy授予临时访问凭证权限,请按规范传入参数。(如果通过 GET 方法请求云 API,发送请求前,所有参数都需要按照云 API 规范再 urlencode 一次)。 2、策略语法参照 CAM 策略语法。 3、策略中不能包含 principal 元素。 |
| ExternalId | 否 | String | 角色外部ID,可在访问管理,点击角色名获取。 长度在2到128之间,可包含大小写字符,数字以及特殊字符:=,.@:/-。 正则为:[\w+=,.@:/-]* |
| Tags.N | 否 | Array of Tag | 会话标签列表。最多可以传递 50 个会话标签,不支持包含相同标签键。 |
| SourceIdentity | 否 | String | 调用者身份uin |
| SerialNumber | 否 | String | MFA序列号,与进行调用的CAM用户关联的MFA设备的标识号。格式qcs::cam:uin/${ownerUin}::mfa/${mfaType}。mfaType支持softToken(软token) |
| TokenCode | 否 | String | mfa身份验证码。 |
| 参数名称 | 类型 | 描述 |
|---|---|---|
| Credentials | Credentials | 临时访问凭证 |
| ExpiredTime | Integer | 临时访问凭证的过期时间,返回 Unix 时间戳,精确到秒 |
| Expiration | String | 临时访问凭证的过期时间,以 iso8601 格式的 UTC 时间表示 |
| RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
申请扮演角色临时访问凭证
POST / HTTP/1.1
Host: sts.intl.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AssumeRole
<公共请求参数>
{
"RoleArn": "qcs::cam::uin/100015158414:roleName/readOnlyRole",
"RoleSessionName": "cts"
}
{
"Response": {
"Credentials": {
"Token": "da1e***",
"TmpSecretId": "AKID***",
"TmpSecretKey": "q95K***"
},
"ExpiredTime": 1543914376,
"Expiration": "2018-12-04T09:06:16Z",
"RequestId": "4daec797-9cd2-4f09-9e7a-7d4c43b2a74c"
}
}
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
| 错误码 | 描述 |
|---|---|
| FailedOperation.CheckMFAError | 校验MFA失败 |
| FailedOperation.MFATypeNotSupported | MFA类型不支持 |
| InternalError.DbError | DB错误。 |
| InternalError.EncryptError | 加密失败。 |
| InternalError.GetAppIdError | 获取appid错误。 |
| InternalError.GetRoleError | 获取角色失败。 |
| InternalError.GetSeedTokenError | 获取token失败。 |
| InternalError.IllegalRole | 角色非法。 |
| InternalError.PbSerializeError | pb打包失败。 |
| InternalError.SystemError | 系统内部错误,如网络错误。 |
| InternalError.UnknownError | 未知错误。 |
| InvalidParameter.AccountNotAvaliable | 账号不存在或不可用。 |
| InvalidParameter.ExtendStrategyOverSize | 扩展策略过大。 |
| InvalidParameter.GrantOtherResource | 越权访问资源。 |
| InvalidParameter.OverLimit | 超过频率限制。 |
| InvalidParameter.OverTimeError | 过期时间超过阈值。 |
| InvalidParameter.ParamError | 参数错误。 |
| InvalidParameter.PolicyTooLong | 策略过长。 |
| InvalidParameter.ResouceError | 策略资源六段式错误。 |
| InvalidParameter.StrategyFormatError | 策略语法错误。 |
| InvalidParameter.StrategyInvalid | 非法策略。 |
| InvalidParameter.TempCodeNotAvaliable | 临时Code无效。 |
| ResourceNotFound.RoleNotFound | 账号对应的角色不存在。 |
| UnauthorizedOperation | 未授权操作。 |
| UnsupportedOperation | 操作不支持。 |
文档反馈