设置密钥策略

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

注意事项

  • 仅KMS实例中的密钥支持密钥策略。您可以在创建密钥时设置密钥策略,也可以在创建后进行设置。创建时设置,请参见创建密钥。本文介绍创建后如何设置。

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

  • 通过控制台设置密钥策略时,可以选择使用默认策略、设置RAM用户或角色为管理员和使用者、以及设置其他账号使用者。如果您需要对密钥进行更精细化的策略设置,例如只允许使用者执行加解密操作,可以通过OpenAPI设置密钥策略。

    密钥策略中可以设置的操作列表如下,如果您设置了列表外的操作,设置后也不会生效。

     "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侧设置密钥策略允许其使用密钥,同时还要在RAM侧,使用该RAM用户、RAM角色的阿里云账号设置权限策略允许其使用密钥。具体操作,请参见密钥管理服务自定义权限策略参考为RAM用户授权为RAM角色授权

前提条件

已在KMS实例中创建了软件密钥或硬件密钥。具体操作,请参见创建密钥

通过控制台设置

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

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

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

    您可以为密钥设置管理员、使用者、其他账号使用者。

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

      设置密钥管理员

      示例表示允许RAM用户(key_ramuser1)、RAM角色(key_ramrole1)作为管理员管理密钥。

              {
                  "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",
                          "acs:ram::119285303511****:role/key_ramrole1"
                      ]
                  },
                  "Resource": [
                      "*"
                  ]
              }
    • 使用者:仅支持使用密钥进行密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。

      设置密钥使用者

      示例表示允许RAM用户(key_ramuser2)、RAM角色(key_ramrole2)使用密钥进行密码运算操作。

              {
                  "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::119285303511****:role/key_ramrole2"
                      ]
                  },
                  "Resource": [
                      "*"
                  ]
              }
    • 其他账号使用者:使用密钥进行密码运算操作,可以是其他阿里云账号的RAM用户或RAM角色。

      重要

      如果您授权给其他阿里云账号下的RAM用户、RAM角色,会消耗KMS实例的访问管理数量配额,按阿里云账号个数计算消耗的配额。如果您后续取消了授权,请等待约5分钟再查看配额,配额会返还。

      • RAM用户:格式为acs:ram::<userId>:user/<ramuser>,例如acs:ram::119285303511****:user/testpolicyuser

      • RAM角色:格式为acs:ram::<userId>:role/<ramrole>,例如acs:ram::119285303511****:role/testpolicyrole

      设置其他账号使用者

      示例表示允许其他阿里云账号(190325303126****)的RAM用户(key_ramuser3)使用密钥进行密码运算操作。

              {
                  "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::190325303126****:user/key_ramuser3"
                      ]
                  },
                  "Resource": [
                      "*"
                  ]
              }