更新时间:2025-09-25 GMT+08:00
分享

为指定身份策略创建一个新版本

功能介绍

该接口可以用于为指定身份策略创建一个新版本。

URI

POST /v5/policies/{policy_id}/versions

表1 路径参数

参数

是否必选

参数类型

描述

policy_id

String

身份策略ID,长度为1到64个字符,只包含字母、数字和"-"的字符串。

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

policy_document

String

自定义身份策略或系统预置身份策略的策略文档的json格式。下面的字符= < > ( ) |是语法中的特殊字符,不包含在身份策略中。

问号?表示元素是可选的。例如sid_block?

竖线|表示可选项,括号定义了可选项的范围。例如("Allow" | "Deny")

当一个元素允许多个值时,使用重复值,以及...表示。例如[ <policy_statement>, <policy_statement>, ... ]

下面的递归文法描述了身份策略的语法:

policy = {
  <version_block>,
  <statement_block>
}

<version_block> = "Version" : ("5.0")

<statement_block> = "Statement" : [ <policy_statement>, <policy_statement>, ... ]

<policy_statement> = {
  <sid_block?>,
  <effect_block>,
  <action_block>,
  <resource_block?>,
  <condition_block?>
}

<sid_block> = "Sid" : <sid_string>

<effect_block> = "Effect" : ("Allow" | "Deny")

<action_block> = ("Action" | "NotAction") : [ <action_string>, <action_string>, ... ]

<resource_block> = ("Resource" | "NotResource") : [ <resource_string>, <resource_string>, ... ]

<condition_block> = "Condition" : { <condition_map> }

<condition_map> = {
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  ...
}

<condition_value_list> = ( <condition_value> | [ <condition_value>, <condition_value>, ... ] )

<condition_value> = "string"

set_as_default

Boolean

是否设置为默认版本。

缺省值:false

响应参数

状态码:201

表3 响应Body参数

参数

参数类型

描述

policy_version

PolicyVersion object

身份策略版本信息。

表4 PolicyVersion

参数

参数类型

描述

document

String

自定义身份策略或系统预置身份策略的策略文档的json格式。下面的字符= < > ( ) |是语法中的特殊字符,不包含在身份策略中。

问号?表示元素是可选的。例如sid_block?

竖线|表示可选项,括号定义了可选项的范围。例如("Allow" | "Deny")

当一个元素允许多个值时,使用重复值,以及...表示。例如[ <policy_statement>, <policy_statement>, ... ]

下面的递归文法描述了身份策略的语法:

policy = {
  <version_block>,
  <statement_block>
}

<version_block> = "Version" : ("5.0")

<statement_block> = "Statement" : [ <policy_statement>, <policy_statement>, ... ]

<policy_statement> = {
  <sid_block?>,
  <effect_block>,
  <action_block>,
  <resource_block?>,
  <condition_block?>
}

<sid_block> = "Sid" : <sid_string>

<effect_block> = "Effect" : ("Allow" | "Deny")

<action_block> = ("Action" | "NotAction") : [ <action_string>, <action_string>, ... ]

<resource_block> = ("Resource" | "NotResource") : [ <resource_string>, <resource_string>, ... ]

<condition_block> = "Condition" : { <condition_map> }

<condition_map> = {
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  ...
}

<condition_value_list> = ( <condition_value> | [ <condition_value>, <condition_value>, ... ] )

<condition_value> = "string"

version_id

String

身份策略版本号,以"v"开头后跟数字,例如"v5"。

is_default

Boolean

是否为默认版本。

created_at

String

身份策略版本创建时间。

状态码:400

表5 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误信息。

状态码:403

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误信息。

request_id

String

请求ID。

encoded_authorization_message

String

加密后的认证失败信息,可以通过STS5解密接口进行解密。

状态码:404

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误信息。

request_id

String

请求ID。

状态码:409

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误信息。

request_id

String

请求ID。

请求示例

为指定身份策略创建一个新版本,并置为默认版本。

POST https://{endpoint}/v5/policies/{policy_id}/versions

{
  "policy_document" : "{\"Version\":\"5.0\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"*\"]}]}",
  "set_as_default" : true
}

响应示例

状态码:201

请求成功。

{
  "policy_version" : {
    "document" : "{\"Version\":\"5.0\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"*\"]}]}",
    "version_id" : "v2",
    "is_default" : true,
    "created_at" : "2023-09-25T08:00:51.537Z"
  }
}

状态码

状态码

描述

201

请求成功。

400

请求体异常。

403

没有操作权限。

404

未找到相应的资源。

409

请求冲突。

错误码

请参见错误码

相关文档