You need to enable JavaScript to run this app.
导航
标签(Tag)管理
最近更新时间:2025.04.03 11:06:15首次发布时间:2025.04.03 11:06:15
我的收藏
有用
有用
无用
无用

功能介绍

随着云上资源数量的不断增长,管理难度也随之增加。火山引擎提供了标签管理功能,用于从各种维度对云服务资源进行自定义标识与分类化管理,例如通过标签将不同业务类别、用途或使用对象的云资源进行分类管理。 密钥管理服务支持为 密钥(key)添加标签,即支持密钥维度的标签管理。一个标签为一个键值对(Key-Value),包括一个标签键与一个标签值。您可以为每个密钥添加多个不同类别的标签,例如 region:beijingtype:SymmetricKey 等。每个标签也可以绑定多个密钥,例如为所有密钥设置同一个标签 owner:Alice

应用场景

推荐您在以下场景中使用标签管理功能。
权限精细管理: 如果企业使用一个主账号管理所有云资源,并且需要根据资源特征、资源所有者等维度进行分类管理。此场景下可以使用标签作为标识工具高效管理资源。

Project和Tag的区别

Project/Tag管理对象使用约束使用场景更多信息
项目 Project密钥环 Keyring项目是若干资源形成的一个资源集合,支持项目管理的资源只能加入到唯一项目中。如果企业使用一个主账号管理所有云资源,并且需要根据业务部门、项目组等维度进行分组分权管理。此场景下可以使用项目作为资源逻辑隔离的容器。项目管理
标签 Tag密钥 key标签是资源的附加标识,支持标签管理的资源可以同时绑定多个标签。如果企业使用一个主账号管理所有云资源,并且需要根据资源特征、资源所有者等维度进行分类管理。此场景下可以使用标签作为标识工具高效管理资源。标签管理

标签设置规则

密钥标签设置规则如下表所示。

限制项说明
标签键支持 UTF-8 格式表示的字符、空格、数字,以及如下特殊字符: _.:/=+-@标签键的长度需为 1~128 个字符。标签键区分大小写,如 Type 和 type 是两个不同的标签键。
标签值支持 UTF-8 格式表示的字符、空格、数字,以及如下特殊字符: _.:/=+-@标签值区分大小写,如 Standard 和 standard 是两个不同的标签值。标签键的长度需为 0~256 个字符,即标签值可以为空。
其他标签总数量无限制,但每个密钥最多可绑定 50 个标签。您可以为每个密钥添加多个不同类别的标签,但同一密钥下多个标签的标签键不可重复,且每个标签键只能有一个标签值。不同地域之间的标签信息不互通。例如在华北2(北京)地域创建的标签在华东2(上海)地域不可见。

添加标签

  1. 登录密钥管理控制台

  2. 在密钥环列表页,点击已创建好的密钥环详情按钮,进入密钥环详情页。

  3. 新建密钥:

    1. 点击新建密钥,在新建密钥弹窗内点击添加标签,输入Key & value,单次支持新建20个标签。

    2. 在所有必填字段填写完成后,单击确定,密钥以及密钥的标签创建完成。

  4. 编辑密钥:

    1. 在密钥列表/密钥详情页内,鼠标悬浮标签图标上方,出现编辑图标,点击后弹出编辑标签弹窗。

    2. 在编辑标签弹窗内,单击添加标签,设置标签键和标签值。

    3. 标签设置完成后,单击保存

说明

  • 标签键值需满足一定的设置规则,具体规则详情,请参见标签设置规则

  • 单击添加标签,可持续添加标签,单次最多新增20个,单个密钥最多支持绑定50个标签。


删除标签

  1. 登录密钥管理控制台

  2. 在密钥环列表页,点击已创建好的密钥环详情按钮,进入密钥环详情页。

  3. 在密钥列表/密钥详情页内,鼠标悬浮标签图标上方,出现编辑图标,点击后弹出编辑标签弹窗。

  4. 在弹窗内,单击目标标签操作列的删除

  5. 标签设置完成后,单击保存

删除标签后,即可为密钥解绑标签。

修改标签

  1. 登录密钥管理控制台

  2. 在密钥环列表页,点击已创建好的密钥环详情按钮,进入密钥环详情页。

  3. 在密钥列表/密钥详情页内,鼠标悬浮标签图标上方,出现编辑图标,点击后弹出编辑标签弹窗。

  4. 在弹窗内,可直接修改已有的标签键标签值

说明

标签键值需满足一定的设置规则,具体规则详情,请参见标签设置规则

  1. 标签设置完成后,单击保存

权限策略用例

  1. 要查看用户主密钥(密钥环列表)页面,需要对通配符密钥环(trn:...:keyrings/*)有 DescribeKeyrings 权限。
      要查看特定项目的密钥环列表页,请将策略附加到该项目。

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKeyrings"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/*"
          ]
        }
      ]
    }
    
  2. 查看密钥环详情页面,需要以下权限:

    • 通配符密钥环(trn:...:keyrings/*)的DescribeKeyrings权限(使用户可查看用户主密钥页面并点击进入特定密钥环)。
    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKeyrings"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/*"
          ]
        }
      ]
    }
    
    • 指定密钥环的QueryKeyring权限(密钥环详情页面会调用QueryKeyring OpenAPI)。
    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:QueryKeyring"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/*"
          ]
        }
      ]
    }
    
    • 指定密钥环的DescribeKeys权限(密钥环详情页面调用DescribeKeys OpenAPI,需同时拥有密钥环和密钥的权限)。
    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:QueryKeyring",
            "kms:DescribeKeys"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/*"
          ]
        }
      ]
    }
    
  3. 其它操作
    Encrypt操作,因为会同时使用密钥环和密钥资源,所以资源列表中需要同时传入密钥环和密钥的TRN。

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:Encrypt"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/keyringA",
            "trn:kms:*:*:keyrings/keyringA/keys/keyA",
          ]
        }
      ]
    }
    

    或者

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:Encrypt"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/*"
          ]
        }
      ]
    }
    

更多Tag权限策略示例

  1. 允许对所有密钥环及所有密钥执行DescribeKeys操作。

    // No project
    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKeys",
          ],
          "Resource": [
            "*"
          ]
        }
      ]
    }
    
  2. 允许对所有密钥环及密钥执行DescribeKeys操作,但排除带有env=prod标签的资源

    // No project
    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKeys",
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/*"
          ]
        },
        {
          "Effect": "Deny",
          "Action": [
            "kms:DescribeKeys"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/*/keys/*"
          ],
          "Condition": {
              "StringEquals": {
                  "volc:ResourceTag/env": "prod"
            }
          }
        }
      ]
    }
    
  3. 允许在keyringA上执行DescribeKeys操作,但禁止访问该密钥环下的所有密钥。

    // No project
    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKeys"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/keyringA"
          ]
        }
      ]
    }
    
  4. 允许在keyringA及其带有env=test标签的密钥上执行DescribeKeys操作。

    // No project
    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKeys"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/keyringA"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKeys"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/keyringA/keys/*"
          ],
          "Condition": {
              "StringEquals": {
                  "volc:ResourceTag/env": "test"
            }
          }
        }
      ]
    }
    
  5. 允许查询ProjectA项目下的所有密钥环及密钥。

    // IMPORTANT NOTE: assume this policy is attached to ProjectA
    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKeys"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/*"
          ]
        }
      ]
    }
    
  6. 允许查询ProjectA项目keyringA密钥环中带env=test标签的密钥。

    为什么需要第一条策略?因为第二条策略即使形式上允许所有资源(Resource: *),由于约束条件中的volc:ResourceTag标签机制仅作用于密钥资源,密钥环资源因不支持标签所以该请求会被拒绝。

    // IMPORTANT NOTE: assume this policy is attached to ProjectA
    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKeys"
          ],
          "Resource": [
            "trn:kms:*:*:keyrings/keyringA"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKeys"
          ],
          "Resource": [
            "*"
          ],
          "Condition": {
              "StringEquals": {
                  "volc:ResourceTag/env": "test"
            }
          }
        }
      ]
    }