接口请求域名: sts.intl.tencentcloudapi.com 。
使用说明
返回一组临时身份访问凭证,包含token和获取该身份的临时密钥;
当您需要将当前账号下的部分权限和资源临时委托给第三方(如合作伙伴、外包团队),且希望避免下发永久密钥时,调用此接口;
临时身份的权限为:当前调用账号的权限和输入参数 Policy 权限的交集;
此接口仅支持永久密钥调用。
典型场景
代理应用程序集中申请临时访问凭证,下发给企业网络内的其他分布式终端应用。例如:终端应用上传文件到COS。
将指定资源临时委托给第三方代理。例如:申请临时访问凭证,分发给企业外部团队,仅允许查看某个存储桶,有效期结束后权限自动回收。
最佳实践
临时访问凭证在有效期内(Expiration)都可以使用,建议在有效期内重复使用,避免业务请求该接口频率达到上限被限频;
授予临时访问凭证权限的CAM策略,建议严格遵循最小权限原则;
建议不要使用主账号永久密钥,对该接口进行调用。
默认接口请求频率限制:600次/秒。
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
| 参数名称 | 必选 | 类型 | 描述 |
|---|---|---|---|
| Action | 是 | String | 公共参数,本接口取值:GetFederationToken。 |
| Version | 是 | String | 公共参数,本接口取值:2018-08-13。 |
| Region | 是 | String | 公共参数,详见产品支持的 地域列表。 |
| Name | 是 | String | 您可以自定义调用方英文名称,由字母组成。 |
| Policy | 是 | String | 注意: 1、策略语法参照 CAM 策略语法。 2、策略中不能包含 principal 元素。 3、该参数需要做urlencode,服务端会对该字段做urldecode, 并按处理后Policy授予临时访问凭证权限,请按规范传入参数。 |
| DurationSeconds | 否 | Integer | 指定临时证书的有效期,单位:秒,默认1800秒,主账号最长可设定有效期为7200秒,子账号最长可设定有效期为129600秒。 |
| 参数名称 | 类型 | 描述 |
|---|---|---|
| Credentials | Credentials | 临时访问凭证 |
| ExpiredTime | Integer | 临时访问凭证有效的时间,返回 Unix 时间戳,精确到秒 |
| Expiration | String | 临时访问凭证有效的时间,以 iso8601 格式的 UTC 时间表示 注意:此字段可能返回 null,表示取不到有效值。 |
| RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
授权临时访问凭证具有以下权限:
{"version":"2.0","statement":[{"effect":"allow","action":["name/cos:PutObject"],"resource":["qcs::cos:ap-beijing:uid/123456:prefix//123456/bucketA/*"]}]}
注意,因为GET请求需要给所有参数做urlencode,所以下面示例中的Policy参数是做了两次urlencode的结果。
https://sts.intl.tencentcloudapi.com/?Action=GetFederationToken
&Name=SUN
&Policy=%257B%2522version%2522%3A%25222.0%2522%2C%2522statement%2522%3A%255B%257B%2522effect%2522%3A%2522allow%2522%2C%2522action%2522%3A%255B%2522name%2Fcos%3APutObject%2522%255D%2C%2522resource%2522%3A%255B%2522qcs%3A%3Acos%3Aap-beijing%3Auid%2F123456%3Aprefix%2F%2F123456%2FbucketA%2F%2A%2522%255D%257D%255D%257D
&<公共请求参数>
{
"Response": {
"Credentials": {
"Token": "kTRt***",
"TmpSecretId": "AKID***",
"TmpSecretKey": "Eo28***"
},
"Expiration": "2023-06-14T05:06:57Z",
"ExpiredTime": 1686719217,
"RequestId": "59a5e07e-4147-4d2e-a808-dca76ac5b3fd"
}
}
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
| 错误码 | 描述 |
|---|---|
| InternalError.DbError | DB错误。 |
| InternalError.EncryptError | 加密失败。 |
| InternalError.GetAppIdError | 获取appid错误。 |
| InternalError.GetSeedTokenError | 获取token失败。 |
| InternalError.SystemError | 系统内部错误,如网络错误。 |
| InvalidParameter.AccountNotAvaliable | 账号不存在或不可用。 |
| InvalidParameter.ExtendStrategyOverSize | 扩展策略过大。 |
| InvalidParameter.GrantOtherResource | 越权访问资源。 |
| InvalidParameter.OverTimeError | 过期时间超过阈值。 |
| InvalidParameter.ParamError | 参数错误。 |
| InvalidParameter.PolicyTooLong | 策略过长。 |
| InvalidParameter.ResouceError | 策略资源六段式错误。 |
| InvalidParameter.StrategyFormatError | 策略语法错误。 |
| InvalidParameter.StrategyInvalid | 非法策略。 |
| InvalidParameter.TempCodeNotAvaliable | 临时Code无效。 |
| ResourceNotFound.RoleNotFound | 账号对应的角色不存在。 |
| UnauthorizedOperation | 未授权操作。 |
| UnsupportedOperation | 操作不支持。 |
文档反馈