最近更新时间:2024.03.04 11:23:28
首次发布时间:2021.12.21 14:07:34
通过此角色扮演接口,可获取到角色所属账号的临时安全令牌,从而以角色所属账号的身份来访问云资源。
注意:使用临时安全凭证请求API时,需要将SessionToken作为公共参数放在Header中,参考公共参数文档。此接口的Service为sts,接入地址为sts.volcengineapi.com。
该接口仅无法使用主账号AK/SK访问,使用IAM子用户访问该接口时需要为用户添加接口的访问权限(可通过关联STSAssumeRoleAccess策略为子用户赋予该权限)。
请求方式: HTTP GET
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
Action | String | Y | AssumeRole |
Version | String | Y | 2018-01-01 |
RoleTrn | String | Y | 需要扮演的角色Trn,格式为trn:iam::${AccountId}:role/${RoleName} 。其中${AccountId} 需要填入角色所属的主账号ID,${RoleName} 需要填入实际的角色名称。例如账号ID为2000012345的账号内角色名为myRole的角色对应的RoleTrn为trn:iam::2000012345:role/myRole |
RoleSessionName | String | Y | 本次session的临时名称 |
DurationSeconds | Integer | N | 临时密钥有效时长(单位:秒),最短支持900,最长支持43200。若未传入该值或传入的值小于900,则默认按3600执行,若传入的值大于43200,则默认按43200执行 |
Policy | String | N | inline policy,内嵌权限策略,可用于限制产生的临时凭证的权限范围。最终权限将取内联策略与角色策略的权限交集,策略语法书写格式参考策略语法介绍 |
业务的Result结构定义:
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
Credentials | DataTypes. Credentials | Y | 凭证结构 |
AssumedRoleUser | DataTypes. AssumedRoleUser | Y | 临时凭证基本信息 |
Credentials结构定义
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
CurrentTime | DateTime | Y | 生成时间,RFC3339时间格式 |
ExpiredTime | DateTime | Y | 过期时间,RFC3339时间格式 |
AccessKeyId | String | Y | 临时凭证AK |
SecretAccessKey | String | Y | 临时凭证SK |
SessionToken | String | Y | 使用临时凭证时需要传递的Token |
AssumedRoleUser结构定义
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
Trn | String | Y | 当前身份完整的Trn表述 |
AssumedRoleId | String | Y | 由Role信息和Session内部组成的当前身份ID |
GET /?RoleTrn=trn:iam::200000****:role/example-role&RoleSessionName=assumeroledemo&Action=AssumeRole&Version=2018-01-01 HTTP/1.1 Accept: application/json Content-Type: application/x-www-form-urlencoded Host: sts.volcengineapi.com X-Date: 20180614T131357Z Authorization: HMAC-SHA256 Credential=AKLT4MQ/20180614/cn-north-1/sts/request, SignedHeaders=accept;content-type;host;x-date, Signature=83671ac2**8a5581f
成功返回结果
{ "ResponseMetadata": { "RequestId": "202104124922", "Action": "AssumeRole", "Version": "2018-01-01", "Service": "sts" }, "Result": { "Credentials": { "CurrentTime": "2021-04-12T10:57:09+08:00", "ExpiredTime": "2021-04-12T11:57:09+08:00", "AccessKeyId": "AKTPODg0MzV**2ZDcxMDg", "SecretAccessKey": "TVRNNVlqRmxPR1**mRoTkdWbE1ESQ==", "SessionToken": "STSeyJBY2NvdW50SW**klkZW50aXR5VHlwZSI6NCwiSWRlbnRpdHlJZCI6MzAyMTcsIkNoYW5uZWwiOiJyZXNvdXJjZSIsIkFjY2Vzc0tleUlkIjoiQUtUUE9EZzBNelZrWlRNMVlqQXlOR05sWkdGbU0yVTNaVEl6T0RnMlpEY3hNRGciLCJTaWduZWRTZWNyZXRBY2Nlc3NLZXkiOiJHSHRuc2Q1b3BOOThUeUNrckVuMVAxTDd1ZzBXczZFMytzTktDMDJQT01lNzFMOUloNzhYaDB5VXE4Ni9JMW8reEZxTmtkK01tVUR0cjRHR0NodXJQdz09IiwiRXhwaXJlZFRpbWUiOjE2MTgxOTk4MjksIlBvbGljeVN0cmluZyI6IiIsIlNpZ25hdHVyZSI6IjdiZTEzNTU1MDM5NzcyM2VkMDQxYmVkNTIyNzU4YmMyNjQ3YzRmNzZiNmRjYTViNzVhZDUyOTMwYTg1NjE5ZGEiLCJTZXNzaW9uTmFtZSI6ImNlc2hpYXNzdW1lIn0=" }, "AssumedRoleUser": { "Trn": "trn:sts::200000****:assumed-role/example-role/assumeroledemo", "AssumedRoleId": "**:assumeroledemo" } } }
失败返回结果
HTTP状态码为非200
{ "ResponseMetadata": { "RequestId": "201806041104200100100232280022D30", "Action": "AssumeRole", "Version": "2018-01-01", "Service": "sts", "Region": "cn-north-1", "Error": { "Code": "NoPermission", "Message": "" } } }