文档中心>对象存储

PostBucketSTS

最近更新时间:2024-11-21 09:47:22

我的收藏

功能描述

Post Bucket STS 接口用于获取临时密钥,作为 CAM 临时密钥获取接口 GetFederationTokenAssumeRole 的备份接口使用。
作为 GetFederationToken 的备份接口:通过该接口获取联合身份访问凭证,即使用永久密钥获得临时密钥。
作为 AssumeRole 的备份接口:通过该接口申请扮演角色临时访问凭证,即扮演角色并获取临时密钥。

授权说明

作为 GetFederationToken 的备份接口,不需要额外申请权限,只需要保证永久密钥具有您需要使用的权限。
作为 AssumeRole 的备份接口,需要额外保证永久密钥具有 sts:AssumeRole 的权限。也就是,将 授权策略 中 action 设置为 sts:GetFederationToken。查看 STS 服务的 action

请求

请求示例

POST /?sts HTTP 1.1
Host:<BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization: Auth String
说明:
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,请参见 存储桶概览 > 基本信息存储桶概述 > 存储桶命名规范 文档;<Region> 为 COS 的可用地域,请参见 地域和访问域名 文档。
Authorization: Auth String(详情请参见 请求签名 文档)。

请求参数

此接口无请求参数。

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求体

用户在请求体中使用 JSON 获取临时访问凭证:
{
"Type": "FederationToken" | "AssumeRole",
"Name": "String",
"RoleArn": "String",
"RoleSessionName": "String",
"Policy": {
"statement": [{
"effect": "allow",
"action": ["name/cos:GetObject"],
"resource": ["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]
}],
"version": "2.0"
},
"DurationSeconds": 3600
}
具体元素如下:
元素名称
描述
类型
是否必选
Type
请求类型,支持填入 "FederationToken" 或 "AssumeRole"。
String
Name
请求类型为 FederationToken 时,可选填该参数,用于自定义调用方英文名称,由字母组成。
示例值:test
String
RoleArn
请求类型为 AssumeRole 时,必填该参数。表示角色的资源描述,可在 访问管理 单击角色名获取。示例值如下:
普通角色:
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
String
RoleSessionName
请求类型为 AssumeRole 时,必填该参数。表示临时会话名称,由用户自定义名称。长度在2到128之间,可包含大小写字符,数字以及特殊字符:=,.@-。 示例值:cts
String
Policy
授权策略,不可包括 Principal 元素。Resource 覆盖范围必须为存储桶资源的子集,语法规范请参见 访问策略语言概述
Json
DurationSeconds
指定临时证书的有效期,单位:秒,默认1800秒,主账号最长可设定有效期为7200秒,子账号最长可设定有效期为129600秒。
示例值:1800
Integer

响应

响应头

此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

响应体

在 XML 响应体中返回临时密钥信息。
<PostBucketSTSResult>
<Credentials>
<TmpSecretId>String</TmpSecretId>
<TmpSecretKey>String</TmpSecretKey>
<Token>String</Token>
</Credentials>
<Expiration>Integer</Expiration>
<ExpiredTime>String</ExpiredTime>
</PostBucketSTSResult>
具体的节点描述如下:
节点名称(关键字)
父节点
描述
类型
PostBucketSTSResult
获取临时密钥的结果。
Container
Credentials
PostBucketSTSResult
临时访问凭证。
Container
ExpiredTime
PostBucketSTSResult
临时访问凭证的过期时间,返回 Unix 时间戳,精确到秒。 示例值:1543914376
Integer
Expiration
PostBucketSTSResult
临时访问凭证的过期时间,以 iso8601 格式的 UTC 时间表示。 示例值:2018-12-04T09:06:16Z
String
Token
Credentials
Token。Token 长度和绑定的策略有关,最长不超过4096字节。
String
TmpSecretId
Credentials
临时证书密钥 ID。最长不超过1024字节。
String
TmpSecretKey
Credentials
临时证书密钥 Key。最长不超过1024字节。
String

错误码

此接口遵循统一的错误响应和错误码,详情请参见 错误码 文档。

实际案例

案例一:获取联合身份访问凭证

请求

POST /?sts
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization: Auth String
Content-MD5: MD5

{
"Type": "FederationToken",
"Name": "test",
"Policy": {
"statement": [{
"effect": "allow",
"action": [
"name/cos:GetBucket"
],
"resource": [
"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"
]
}],
"version": "2.0"
},
"DurationSeconds": 3600
}

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 0
Date: Mon, 23 Sep 2024 07:49:14 GMT
Server: tencent-cos
x-cos-request-id: NWQwNzUxNTBfMzdiMDJhMDlfOWM0Nl85NDFk****

<PostBucketSTSResult>
<Credentials>
<TmpSecretId>************************************</TmpSecretId>
<TmpSecretKey>************************************</TmpSecretKey>
<Token>************************************</Token>
</Credentials>
<Expiration>2024-09-23T09:34:46Z</Expiration>
<ExpiredTime>1727084086</ExpiredTime>
</PostBucketSTSResult>

案例二:申请扮演角色临时访问凭证

请求

POST /?sts
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization: Auth String
Content-MD5: MD5

{
"Type": "AssumeRole",
"RoleArn": "qcs::cam::uin/12345678:roleName/testRoleName",
"RoleSessionName": "test",
"Policy": {
"statement": [{
"effect": "allow",
"action": [
"name/cos:GetBucket"
],
"resource": [
"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"
]
}],
"version": "2.0"
},
"DurationSeconds": 3600
}

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 0
Date: Mon, 23 Sep 2024 08:24:01 GMT
Server: tencent-cos
x-cos-request-id: NWQwNzUxNTBfMzdiMDJhMDlfOWM0Nl85NDFk****

<PostBucketSTSResult>
<Credentials>
<TmpSecretId>************************************</TmpSecretId>
<TmpSecretKey>************************************</TmpSecretKey>
<Token>************************************</Token>
</Credentials>
<Expiration>2024-09-23T09:36:14Z</Expiration>
<ExpiredTime>1727084174</ExpiredTime>
</PostBucketSTSResult>