SetSecretPolicy

为KMS实例中的凭据钥设置凭据策略。

关于凭据策略的详细介绍,请参见凭据策略概述

调试

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

请求参数

名称

类型

是否必选

示例值

描述

Action String SetSecretPolicy

要执行的操作。取值:SetSecretPolicy

SecretName String secret_test

凭据名称或凭据资源名称(ARN)。

说明 访问其他阿里云账号下的凭据时,必须输入凭据ARN。凭据ARN的格式为acs:kms:${region}:${account}:secret/${secret-name}
PolicyName String default

凭据策略名称。仅支持固定取值default。

Policy String {"Version":"1","Statement": [{"Sid":"kms default secret policy","Effect":"Allow","Principal":{"RAM": ["acs:ram::119285303511****:*"]},"Action":["kms:*"],"Resource": ["*"] }] }

凭据策略的具体内容,JSON格式。最大长度为32768个字节。

凭据策略内容包含:

  • Version:凭据策略的版本,目前版本仅支持设置为1。
  • Statement:凭据策略的语句,每个凭据策略包含一个或多个语句。

凭据策略格式为:

{
    "Version": "1",
    "Statement": [
        {
            "Sid": "Enable RAM User Permissions",
            "Effect": "Allow",
            "Principal": {
              "RAM": ["acs:ram::12345678****:*"]
            },
            "Action": [
                "kms:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Statement详细介绍:

  • Sid:可选,表示自定义的语句标识符。内容长度小于等于128字符,支持的字符为:大写英文字母(A-Z)、小写英文字母(a-z)、数字(0-9),特殊字符( _/+=.@-)。
  • Effect:必选,表示是允许还是拒绝该策略语句中的权限。取值为:Allow或Deny。
  • Principal:必选,表示权限策略的授权主体,支持设置为当前阿里云账号(即凭据所属的阿里云账号),当前阿里云账号下的RAM用户、RAM角色,其他阿里云账号下的RAM用户、RAM角色。
  • Action:必选,表示要允许或拒绝的API操作,内容必须以"kms:"开头。操作权限列表的范围,请参见凭据策略概述。如果您设置了列表外的操作,设置后也不会生效。
  • Resource:必选,取值只能是*,表示本KMS凭据。
  • Condition:可选,表示授权生效的限制条件。通过使用条件可以评估API请求的上下文,以确定策略语句是否适用。格式为"Condition": {"condition operator": {"condition key": "condition value"}}。详细介绍,请参见凭据策略概述
说明 授权给其他阿里云账号下的RAM用户、RAM角色后,您仍需在访问控制RAM侧,使用该RAM用户、RAM角色的阿里云账号为其授权使用该凭据,RAM用户、RAM角色才能使用该凭据。集体操作,请参见密钥管理服务自定义权限策略参考为RAM用户授权为RAM角色授权

返回数据

名称

类型

示例值

描述

RequestId String 381D5D33-BB8F-395F-8EE4-AE3BB4B523C8

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

示例

请求示例

http(s)://[Endpoint]/?Action=SetSecretPolicy
&SecretName=secret_test
&PolicyName=default
&Policy={"Version":"1","Statement": [{"Sid":"kms default secret policy","Effect":"Allow","Principal":{"RAM": ["acs:ram::119285303511****:*"]},"Action":["kms:*"],"Resource": ["*"] }] }
&公共请求参数

正常返回示例

XML格式

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

<SetSecretPolicyResponse>
    <RequestId>381D5D33-BB8F-395F-8EE4-AE3BB4B523C8</RequestId>
</SetSecretPolicyResponse>

JSON格式

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

{
  "RequestId" : "381D5D33-BB8F-395F-8EE4-AE3BB4B523C8"
}

错误码

HttpCode

错误码

错误信息

描述

400 MissingParameter The parameter needed but no provided. 需要的参数未提供
400 InvalidParameter The specified parameter is not valid. 参数非法。
400 Forbidden.NoPermission This operation is forbidden by permission system. 该操作无权限
400 Forbidden.KeyPolicyUnSupported The specified key does not support key policy. 指定的密钥不支持密钥策略。
400 Rejected.ShareQuotaExceedLimit Instance Share Quota Exceed Limit. 实例份额配额超过限制。
403 Forbidden.DKMSInstanceStateInvalid The DKMS instance state is invalid. 您的专属KMS状态为无效状态。
404 Forbidden.ResourceNotFound Resource not found. 资源找不到
404 Forbidden.KeyNotFound The specified Key is not found. 指定的密钥不存在。
404 Forbidden.ResourceNotFound Policy not found. 策略找不到。
503 SerivceUnvailableTemporary Service Unvailable Temporary 服务临时不可用。

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