创建一个权限策略,设置允许应用访问的密钥和凭据。
使用说明
自建应用进行密码运算操作、获取凭据值前,需要通过应用身份凭证(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"] | 权限策略支持的操作。取值: 
 支持同时选择这两种操作。 | 
| Resources | String | 是 | ["secret/acs/ram/user/ram-secret", "secret/acs/ram/user/acr-master", "key/key-hzz63d9c8d3dfv8cv****"] | 允许访问的密钥和凭据。 
 | 
| 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****"] | 允许访问的密钥和凭据。 
 | 
| 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不存在 | 
访问错误中心查看更多错误码。
该文章对您有帮助吗?