使用标签控制对密钥和凭据的访问

本文介绍如何基于标签,控制RAM用户或RAM角色对密钥和凭据的访问权限。

功能介绍

当您为RAM用户或者RAM角色授予自定义权限策略、密钥策略、凭据策略时,KMS支持通过标签,设置允许或者禁止访问带有特定标签的密钥和凭据。标签的条件关键字为kms:tag,详细内容,请参见密钥管理服务自定义权限策略参考密钥策略凭据策略条件键

由于多个密钥和凭据允许有相同的标签,因此该功能可以将权限应用于一组特定的密钥或凭据。设置完成后,您还可以通过更改密钥和凭据的标签,修改允许或者禁止访问的密钥和凭据。例如,您的自定义权限策略允许访问带有标签A的密钥,其中带有标签A的密钥有两个(密钥1和密钥2),后续您又为密钥3绑定了标签A,那么该自定义权限策略会自动允许访问密钥3。

示例说明

  • 企业的3个应用(App1、App2、App3)分布在不同的环境,企业分别购买了3个KMS实例(KMS实例A,KMS实例B,KMS实例C)。

  • 管理员(阿里云主账号)已经为3个KMS实例的密钥和凭据设置了标签,标签与应用相关。例如应用App1访问的密钥和凭据,设置了标签Application=App1。

  • 管理员设置了3个子账号(RAM用户),App1 Admin、App2 Admin、App3 Admin。

image

管理员需要为每个子账号设置权限策略,允许访问指定的密钥和凭据。例如,设置子账号App2 Admin能访问3个KMS实例中设置了标签为Application=App2的密钥和凭据。您可以为子账号授予如下自定义权限策略。

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "kms:*",
      "Resource": "*",
      "Condition": {
        "StringEqualsIgnoreCase": {
          "kms:tag/Application": [
            "App2"
          ]
        }
      }
    }
  ]
}
  • Effect:授权效果。取值有允许(Allow)和拒绝(Deny)。

  • Action:支持的操作,具体的API列表,请参见条件键kms:*表示列表中的所有API接口。

  • Resource:指被授权的具体对象,*表示KMS实例所有的密钥和凭据。您也可以设置更精细的资源范围,具体格式,请参见授权信息

  • Condition:指授权生效的条件。详细取值,请参见权限策略基本元素

相关文档

权限策略由效果(Effect)、操作(Action)、资源(Resource)、条件(Condition)和授权主体(Principal)等基本元素组成。详细介绍,请参见权限策略基本元素