您可以在密钥策略中添加或删除RAM用户、RAM角色,以设置密钥的管理员和使用者。本文介绍如何设置密钥策略。
通过控制台设置
登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击。
在用户主密钥页签,定位到您的目标密钥,单击密钥ID或操作列的详情。
在详情页面下方的密钥策略区域,单击设置密钥策略,完成设置后单击确定。
图形编辑:此模式下授权主体(RAM用户或RAM角色),使用默认策略权限(Action)。
管理员:对密钥进行管控类操作,不支持密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。
使用者:仅支持使用密钥进行密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。
其他账号使用者:
重要如果授权给其他阿里云账号下的RAM用户、RAM角色,将消耗KMS实例的访问管理数量配额,按阿里云账号个数计算消耗的配额。取消授权后,约5分钟后,返还配额。
需同时在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。
语法编辑:可在语法编辑框中,直接修改或新增权限策略,配置示例如下。
场景说明:为阿里云账号(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" }
使用限制
仅用户主密钥支持设置密钥策略。
密钥策略的内容长度不超过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密钥时,需要进行双向授权配置:
在KMS控制台设置密钥策略,授予目标账号使用权限。即需添加授权主体为其他账号使用者的密钥策略。
目标账号需在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"
]