全部产品
Search
文档中心

密钥管理服务:设置密钥策略

更新时间:Sep 09, 2026

在密钥策略中添加或删除RAM用户、RAM角色,以设置密钥的管理员和使用者。本文介绍如何设置密钥策略。

通过控制台设置

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理。

  2. 在用户主密钥页签,定位到您的目标密钥,单击密钥ID或操作列的详情。

  3. 在详情页面下方的密钥策略区域,单击设置密钥策略,完成设置后单击确定。

    1. 图形编辑:此模式下授权主体(RAM用户或RAM角色),使用默认策略权限(Action)。

      • 管理员:对密钥进行管控类操作,不支持密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。

      • 使用者:仅支持使用密钥进行密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。

      • 其他账号使用者:

        重要
        • 可以是其他阿里云账号的RAM用户或RAM角色,仅支持密钥进行密码运算操作。

        • 单击添加其他账号使用者ARN,填写授权主体的ARN,可登录RAM控制台,在用户或角色详情页获取ARN信息。

          • RAM用户:格式为acs:ram::<其他阿里云账号userId>:user/<ramuser>,例如acs:ram::119285303511****:user/testpolicyuser。

          • RAM角色:格式为acs:ram::<其他阿里云账号userId>:role/<ramrole>,例如acs:ram::119285303511****:role/testpolicyrole。

    2. 语法编辑:可在语法编辑框中,直接修改或新增权限策略,配置示例如下。

      • 场景说明:为阿里云账号(119285303511****)下的密钥设置密钥策略为例。

        • 当前阿里云账号(119285303511****)对该密钥具有完全访问权限,即管理和使用密钥,不建议修改。

        • 允许当前阿里云账号(119285303511****)下的RAM用户(key_ramuser1)管理密钥。

        • 允许当前阿里云账号(119285303511****)下的RAM用户(key_ramuser2)、其他阿里云账号(190325303126****)下的RAM用户(key_ramuser3)使用密钥。

      • 语法示例:

        {
            "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/key_ramuser1"
                        ]
                    },
                    "Resource": [
                        "*"
                    ]
                },
                {
                    "Action": [
                        "kms:Encrypt",
                        "kms:Decrypt",
                        "kms:GenerateDataKey",
                        "kms:GenerateAndExportDataKey",
                        "kms:AsymmetricEncrypt",
                        "kms:AsymmetricDecrypt",
                        "kms:DescribeKey",
                        "kms:DescribeKeyVersion",
                        "kms:ListKeyVersions",
                        "kms:ListAliasesByKeyId",
                        "kms:TagResource"
                    ],
                    "Effect": "Allow",
                    "Principal": {
                        "RAM": [
                            "acs:ram::119285303511****:user/key_ramuser2",
                            "acs:ram::190325303126****:user/key_ramuser3"
                        ]
                    },
                    "Resource": [
                        "*"
                    ]
                }
            ],
            "Version": "1"
        }
        说明

        上述示例中 Resource 字段取值只能为 ["*"],表示策略生效于当前密钥。

使用限制

  • 仅用户主密钥支持设置密钥策略。

  • 密钥策略的内容长度不超过32768个字节,且为JSON格式。

  • 密钥策略中可以设置的操作列表如下:

    警告

    如果设置了列表外的操作,设置后也不会生效。

     "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"
                    "kms:Encrypt",
                    "kms:Decrypt",
                    "kms:GenerateDataKey",
                    "kms:GenerateAndExportDataKey",
                    "kms:AsymmetricEncrypt",
                    "kms:AsymmetricDecrypt",
                    "kms:DescribeKey",
                    "kms:DescribeKeyVersion",
                    "kms:ListKeyVersions",
                    "kms:ListAliasesByKeyId",
                    "kms:TagResource"
                ]
  • 跨账号密钥授权:若需要授权其他阿里云账号下的RAM用户或RAM角色使用当前账号下的KMS密钥时,需要进行双向授权配置:

    1. 在KMS控制台设置密钥策略,授予目标账号使用权限。即需添加授权主体为其他账号使用者的密钥策略。

    2. 目标账号需在RAM控制台为其用户/角色配置相应的密钥使用权限。

默认策略权限(Action)

管理员

对密钥进行管控类操作,不支持密码运算操作。

  "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"
            ]

使用者/其他账号使用者

仅支持使用密钥进行密码运算操作。

 "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:GenerateAndExportDataKey",
                "kms:AsymmetricEncrypt",
                "kms:AsymmetricDecrypt",
                "kms:DescribeKey",
                "kms:DescribeKeyVersion",
                "kms:ListKeyVersions",
                "kms:ListAliasesByKeyId",
                "kms:TagResource"
            ]

常见问题

  • 密钥策略与 RAM 权限策略的是什么关系?

    密钥策略(Key Policy)与 RAM 权限策略从不同维度控制对 KMS 密钥的访问权限。在密钥策略中添加 RAM 用户或 RAM 角色后,还可配置 RAM 权限策略,管理RAM 用户或 RAM 角色已在 RAM 控制台配置了相应的 KMS 密钥操作权限。

    说明

    权限判断优先级,请参考权限判断优先级。

    • 密钥策略:资源级策略,绑定在具体密钥上,用于声明哪些身份(RAM 用户、RAM 角色或阿里云账号)可以管理或使用该密钥。

    • RAM 权限策略:身份级策略,绑定在 RAM 用户或 RAM 角色上,用于声明该身份可以执行哪些 KMS 操作。