CreatePolicy

创建一个权限策略,设置允许应用访问的密钥和凭据。

使用说明

自建应用进行密码运算操作、获取凭据值前,需要通过应用身份凭证(ClientKey)访问KMS实例。创建应用接入点AAP和身份凭证(ClientKey)的整体流程如下:

1. 创建网络控制规则:设置允许访问KMS的私网IP或私网网段。更多信息,请参见CreateNetworkRule

2. 创建权限策略:设置允许应用访问的密钥和凭据,并绑定网络控制规则。即本文介绍的内容。

3. 创建应用接入点:设置认证方式,并绑定权限策略。更多信息,请参见CreateApplicationAccessPoint

4. 创建应用身份凭证(ClientKey):设置ClientKey的加密口令、有效期,并绑定应用接入点。更多信息,请参见CreateClientKey

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String CreatePolicy

要执行的操作。取值:CreatePolicy

Name String policy_test

权限策略名称。

Description String policy description

描述信息。

KmsInstance String kst-hzz634e67d126u9p9****

权限策略的作用域。即要访问的KMS实例。

Permissions String ["RbacPermission/Template/CryptoServiceKeyUser", "RbacPermission/Template/CryptoServiceSecretUser"]

权限策略支持的操作。取值:

  • RbacPermission/Template/CryptoServiceKeyUser:可以对KMS实例进行密码运算操作。
  • RbacPermission/Template/CryptoServiceSecretUser:可以对KMS实例进行凭据相关操作。

支持同时选择这两种操作。

Resources String ["secret/acs/ram/user/ram-secret", "secret/acs/ram/user/acr-master", "key/key-hzz63d9c8d3dfv8cv****"]

允许访问的密钥和凭据。

  • 密钥:格式为key/${KeyId},如果允许访问当前KMS实例的所有密钥请输入key/*。
  • 凭据:格式为secret/${SecretName},如果允许访问当前KMS实例的所有凭据请输入secret/*。
AccessControlRules Map {"NetworkRules":["kst-hzz62ee817bvyyr5x****.efkd","kst-hzz62ee817bvyyr5x****.eyyp"]}

网络控制规则名称。

说明 查询已创建的网络控制规则,请参见ListNetworkRules

返回数据

名称

类型

示例值

描述

RequestId String 3bf02f7a-015b-4f34-be0f-c4543fda2d33

本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。

Arn String acs:kms:cn-hangzhou:119285303511****:policy/policy_test

权限策略的ARN。

Name String policy_test

权限策略名称。

Description String policy description

描述信息。

KmsInstance String kst-hzz634e67d126u9p9****

权限策略的作用域。

Permissions String ["RbacPermission/Template/CryptoServiceKeyUser", "RbacPermission/Template/CryptoServiceSecretUser"]

权限策略支持的操作。

Resources String ["secret/acs/ram/user/ram-secret", "secret/acs/ram/user/acr-master", "key/key-hzz63d9c8d3dfv8cv****"]

允许访问的密钥和凭据。

  • key/*表示允许访问当前KMS实例的所有密钥。
  • secret/*表示允许访问当前KMS实例的所有凭据。
AccessControlRules String {"NetworkRules":["kst-hzz62ee817bvyyr5x****.efkd","kst-hzz62ee817bvyyr5x****.eyyp"]}

网络控制规则名称。

示例

请求示例

http(s)://[Endpoint]/?Action=CreatePolicy
&Name=policy_test
&Description=policy  description
&KmsInstance=kst-hzz634e67d126u9p9****
&Permissions=["RbacPermission/Template/CryptoServiceKeyUser", "RbacPermission/Template/CryptoServiceSecretUser"]
&Resources=["secret/acs/ram/user/ram-secret", "secret/acs/ram/user/acr-master", "key/key-hzz63d9c8d3dfv8cv****"]
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreatePolicyResponse>
    <RequestId>3bf02f7a-015b-4f34-be0f-c4543fda2d33</RequestId>
    <Arn>acs:kms:cn-hangzhou:119285303511****:policy/policy_test</Arn>
    <Name>policy_test</Name>
    <Description>policy  description</Description>
    <KmsInstance>kst-hzz634e67d126u9p9****</KmsInstance>
    <Permissions>["RbacPermission/Template/CryptoServiceKeyUser", "RbacPermission/Template/CryptoServiceSecretUser"]</Permissions>
    <Resources>["secret/acs/ram/user/ram-secret", "secret/acs/ram/user/acr-master", "key/key-hzz63d9c8d3dfv8cv****"]</Resources>
    <AccessControlRules>{"NetworkRules":["kst-hzz62ee817bvyyr5x****.efkd","kst-hzz62ee817bvyyr5x****.eyyp"]}</AccessControlRules>
</CreatePolicyResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "3bf02f7a-015b-4f34-be0f-c4543fda2d33",
  "Arn" : "acs:kms:cn-hangzhou:119285303511****:policy/policy_test",
  "Name" : "policy_test",
  "Description" : "policy  description",
  "KmsInstance" : "kst-hzz634e67d126u9p9****",
  "Permissions" : "[\"RbacPermission/Template/CryptoServiceKeyUser\", \"RbacPermission/Template/CryptoServiceSecretUser\"]",
  "Resources" : "[\"secret/acs/ram/user/ram-secret\", \"secret/acs/ram/user/acr-master\", \"key/key-hzz63d9c8d3dfv8cv****\"]",
  "AccessControlRules" : "{\"NetworkRules\":[\"kst-hzz62ee817bvyyr5x****.efkd\",\"kst-hzz62ee817bvyyr5x****.eyyp\"]}"
}

错误码

HttpCode

错误码

错误信息

描述

400 InvalidParameter The specified parameter is not valid. 参数非法。
404 InvalidAccessKeyId.NotFound The Access Key ID provided does not exist in our records. 提供的 Access Key ID不存在

访问错误中心查看更多错误码。