SetKeyPolicy - 设置密钥策略

KMS实例中的密钥设置密钥策略。

接口说明

  • RAM 用户或 RAM 角色调用该 OpenAPI 需要被授予的权限策略详情,请参见访问控制

  • 关于密钥策略的详细介绍,请参见密钥策略概述

调试

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

调试

授权信息

当前API暂无授权信息透出。

请求参数

名称

类型

必填

描述

示例值

KeyId

string

密钥 ID 或密钥资源名称(ARN)。

说明

访问其他阿里云账号下的密钥时,必须输入密钥 ARN。密钥 ARN 的格式为acs:kms:${region}:${account}:key/${keyid}

key-hzz630494463ejqjx****

PolicyName

string

密钥策略名称。仅支持固定取值 default。

default

Policy

string

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

密钥策略内容包含:

  • Version:密钥策略的版本,目前版本仅支持设置为 1。

  • Statement:密钥策略的语句,每个密钥策略包含一个或多个语句。

密钥策略格式为:

{
    "Version": "1",
    "Statement": [
        {
            "Sid": "Enable RAM User Permissions",
            "Effect": "Allow",
            "Principal": {
              "RAM": ["acs:ram::112890462****:*"]
            },
            "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 角色授权

{"Statement":[{"Action":["kms:*"],"Effect":"Allow","Principal":{"RAM":["acs:ram::119285303511****:*"]},"Resource":["*"],"Sid":"kms default key policy"},{"Action":["kms:List*","kms:Describe*","kms:Create*","kms:Enable*","kms:Disable*","kms:Get*","kms:Set*","kms:Update*","kms:Delete*","kms:Cancel*","kms:TagResource","kms:UntagResource","kms:ImportKeyMaterial","kms:ScheduleKeyDeletion"],"Effect":"Allow","Principal":{"RAM":["acs:ram::119285303511****:user/for_test_policy"]},"Resource":["*"]}],"Version":"1"}

返回参数

名称

类型

描述

示例值

object

RequestId

string

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

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

示例

正常返回示例

JSON格式

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

错误码

HTTP status code

错误码

错误信息

描述

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. 实例份额配额超过限制。
500 InternalFailure Internal Failure 内部错误
403 Forbidden.DKMSInstanceStateInvalid The DKMS instance state is invalid. 您的专属KMS状态为无效状态。
404 Forbidden.KeyNotFound The specified Key is not found. 指定的密钥不存在。
404 Forbidden.ResourceNotFound Policy not found. 策略找不到。

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

变更历史

更多信息,参考变更详情