获取用户的临时访问密钥和securitytoken
功能介绍
该接口可以用于通过token来获取临时AK/SK和securitytoken。临时AK/SK和securitytoken是系统颁发给IAM用户的临时访问令牌,有效期可在15分钟至24小时范围内设置,过期后需要重新获取。临时AK/SK和securitytoken遵循权限最小化原则。
该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点。
使用获取到的临时AK/SK和securitytoken作为凭证访问云服务,临时AK/SK和securitytoken两者必须同时使用,请求头中需要添加“x-security-token”字段,使用方法详情请参考:使用临时AK/SK做签名。
调试
您可以在API Explorer中调试该接口。
URI
POST /v3.0/OS-CREDENTIAL/securitytokens
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Content-Type |
是 |
String |
该字段填为“application/json;charset=utf8”。 |
Authorization |
否 |
String |
X-Auth-Token和Authorization二选一,推荐使用Authorization方式,AK/SK签名认证后会生成Authorization Header。更多信息请参考AK/SK签名认证算法详解。 |
X-Auth-Token |
否 |
String |
X-Auth-Token和Authorization二选一,推荐使用Authorization方式。IAM用户Token或联邦用户的Token或委托Token。通过调用获取IAM用户Token或委托Token,在参数X-Subject-Token中可以获取对应的Token。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
是 |
Object |
认证信息。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
methods |
是 |
Array of strings |
认证方法,该字段内容为["token"]。 |
否 |
Object |
临时访问密钥和securitytoken的有效期。 |
|
否 |
Object |
用户自定义策略的信息,用于限制获取到的临时访问密钥和securitytoken的权限(当前仅OBS服务支持该限制)。 如果填写此参数,则临时访问密钥和securitytoken的权限为:原Token具有的权限和policy参数限制的权限交集。policy参数的字符个数不大于2048。 关于IAM策略的格式和语法,请参考:策略。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Version |
是 |
String |
权限版本号,创建自定义策略时,该字段值填为“1.1”。
说明:
1.1:策略。IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。 |
是 |
Array of objects |
授权语句,描述自定义策略的具体内容。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Action |
是 |
Array of strings |
授权项,指对资源的具体操作权限。支持的授权项请参考各云服务《API参考》中“权限和授权项”章节。
说明:
|
Effect |
是 |
String |
作用。包含两种:允许(Allow)和拒绝(Deny),既有Allow又有Deny的授权语句时,遵循Deny优先的原则。 取值范围:
|
Condition |
否 |
Map<String,Map<String,Array<String>>> |
限制条件。了解更多相关参数,请参考:策略语法。
说明:
以请求示例中的Condition为例:当账号名(DomainName)等于DomainNameExample时,该策略才会生效。 "Condition": { "StringEquals": { "g:DomainName": [ "DomainNameExample" ] } } |
Resource |
否 |
Array of strings |
资源。规则如下:
说明:
|
响应参数
参数 |
参数类型 |
描述 |
---|---|---|
Object |
认证结果信息。 |
请求示例
- 填写"token"参数。包含tokenId(即token)和临时访问密钥和securitytoken的有效期。
POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens
{ "auth": { "identity": { "methods": [ "token" ], "token": { "id": "MIIEIgYJKoZIhvc...", "duration_seconds": 900 } } } }
- 不填写“token”参数(请求头中需要X-Auth-Token)。
POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens
{ "auth": { "identity": { "methods": [ "token" ] } } }
- 填写“policy”参数。即用户自定义策略的信息,用于限制获取到的临时访问密钥和securitytoken的权限(当前仅适用限制OBS服务的权限)。如果填写此参数,则临时访问密钥和securitytoken的权限为:原Token具有的权限和policy参数限制的权限交集。
POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens
{ "auth": { "identity": { "methods": [ "token" ], "policy": { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:object:GetObject" ], "Resource": [ "OBS:*:*:object:*" ], "Condition": { "StringEquals": { "g:DomainName": [ "DomainNameExample" //示例,表示限制条件值,根据实际情况填写 ] } } } ] }, "token": { "duration_seconds": 900 } } } }
响应示例
状态码为 201 时:
创建成功。
{ "credential": { "access": "NZFAT5VNWEJDGZ4PZ...", "expires_at": "2020-01-08T03:50:07.574000Z", "secret": "riEoWsy3qO0BvgwfkoLVgCUvzgpjBBcvdq...", "securitytoken": "gQpjbi1ub3J0aC00jD4Ej..." } }
返回值
返回值 |
描述 |
---|---|
201 |
创建成功。 |
400 |
参数无效。 |
401 |
认证失败。 |
403 |
没有操作权限。 |
500 |
内部服务错误。 |
错误码
无