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

创建自定义身份策略

功能介绍

该接口可以用于创建一个默认版本为v1的新自定义身份策略。

URI

POST /v5/policies

请求参数

表1 请求Body参数

参数

是否必选

参数类型

描述

policy_name

String

身份策略名称,长度为1到128个字符,只包含字母、数字、"_"、"+"、"="、"."、"@"和"-"的字符串。

path

String

资源路径,默认为空串。由若干段字符串拼接而成,每段先包含一个或多个字母、数字、"."、","、"+"、"@"、"="、"_"或"-",并以"/"结尾,例如"foo/bar/"。

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"

description

String

身份策略描述。

响应参数

状态码:201

表2 响应Body参数

参数

参数类型

描述

policy

Policy object

身份策略。

表3 Policy

参数

参数类型

描述

policy_type

String

身份策略类型,可以为“自定义”(custom)或“系统预置”(system)。

policy_name

String

身份策略名称,长度为1到128个字符,只包含字母、数字、"_"、"+"、"="、"."、"@"和"-"的字符串。

policy_id

String

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

urn

String

统一资源名称。

path

String

资源路径,默认为空串。由若干段字符串拼接而成,每段先包含一个或多个字母、数字、"."、","、"+"、"@"、"="、"_"或"-",并以"/"结尾,例如"foo/bar/"。

default_version_id

String

默认版本号。

attachment_count

Integer

附加了本身份策略的实体数量。

description

String

身份策略描述。

created_at

String

身份策略创建时间。

updated_at

String

身份策略默认版本最近一次的更新时间。

状态码:400

表4 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误信息。

状态码:403

表5 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误信息。

request_id

String

请求ID。

encoded_authorization_message

String

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

状态码:409

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误信息。

request_id

String

请求ID。

请求示例

创建一个名为name的新自定义身份策略。

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

{
  "policy_name" : "name",
  "path" : "",
  "policy_document" : "{\"Version\":\"5.0\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"*\"]}]}",
  "description" : "description"
}

响应示例

状态码:201

请求成功。

{
  "policy" : {
    "policy_type" : "custom",
    "policy_name" : "name",
    "policy_id" : "string",
    "urn" : "iam::accountid:policy:name",
    "path" : "",
    "default_version_id" : "v1",
    "attachment_count" : 0,
    "description" : "description",
    "created_at" : "2023-09-25T07:49:11.582Z",
    "updated_at" : "2023-09-25T07:49:11.582Z"
  }
}

状态码

状态码

描述

201

请求成功。

400

请求体异常。

403

没有操作权限。

409

请求冲突。

错误码

请参见错误码

相关文档