Cloud Key Management Service 提供了用于为 Cloud KMS 密钥添加标签的选项。标签采用键值对形式,可用于对相关 Cloud KMS 密钥进行分组以及存储 Cloud KMS 密钥的相关元数据。
您的账单中也可以包含标签,让您能够按标签查看费用分布情况。
您可以使用 Google Cloud CLI 和 Cloud KMS REST API 添加、更新和移除密钥标签。
您可以在其他 Google Cloud 资源中使用标签,例如虚拟机资源和存储分区。如需详细了解如何在 Google Cloud 中使用标签,请参阅创建和管理标签。
什么是标签?
标签是一种键值对,可分配给 Google Cloud Cloud KMS 密钥。它们可以帮助您按照所需的粒度大规模组织这些资源并管理费用。您可以将标签附加到各项资源,然后根据其标签对资源进行过滤。标签的相关信息会转发到结算系统,以便您按标签细分结算费用。使用内置的结算报告,您可以按资源标签对费用进行过滤和分组。您还可以使用标签查询结算数据导出。
标签要求
应用于资源的标签必须符合以下要求:
- 每个资源最多可以有 64 个标签。
- 每个标签都必须采用键值对形式。
- 键至少包含 1 个字符,最多包含 63 个字符,且不能为空。值可以为空,且最多包含 63 个字符。
- 键和值只能包含小写字母、数字字符、下划线和短划线。所有字符必须使用 UTF-8 编码,允许使用国际字符。 键必须以小写字母或国际字符开头。
- 标签的键部分在单个资源内必须是唯一的。不过,您可以将同一个键用于多个资源。
这些限制适用于每个标签的键和值,以及带有标签的各个 Google Cloud 资源。您可以对一个项目的所有资源应用任意数量的标签。
标签的常见用途
以下是标签的一些常见使用场景:
团队或成本中心标签:根据团队或成本中心添加标签,以区分不同团队所拥有的 Cloud KMS 密钥(例如
team:research
和team:analytics
)。您可以在进行成本核算或预算时使用此类标签。组件标签:例如
component:redis
、component:frontend
、component:ingest
、component:dashboard
。环境或阶段标签:例如
environment:production
和environment:test
。状态标签:例如
state:active
、state:readytodelete
、state:archive
。所有权标签:用于标识负责运营的团队,例如:
team:shopping-cart
。
我们不建议创建大量唯一标签,例如为每个 API 调用的时间戳或个别值创建标签。这种方法的问题在于,当值经常变化或键导致目录杂乱时,很难有效地过滤和报告资源。
标签和标记
标签可用作资源可查询的注释,但不能用于设置政策的条件。通过对政策进行精细控制,标记提供了一种有条件地允许或拒绝政策的方法,具体取决于资源是否具有特定的标记。如需了解详情,请参阅标记概览。
使用带有标签的密钥
创建密钥时,您可以通过提供一个或多个键值对作为标签
控制台
在 Google Cloud 控制台中,前往密钥管理页面。
点击您要为其创建密钥的密钥环的名称。
点击创建密钥。
在密钥名称中,输入密钥的名称。
根据您的需求配置密钥。
点击其他设置。
对于要添加的每个标签,请点击添加标签,然后输入键和值。
点击创建。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
此示例展示了如何创建新密钥并向密钥分配标签。您还可以向现有密钥添加标签。
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose PURPOSE \ --labels "LABEL_LIST"
替换以下内容:
KEY_NAME
:密钥的名称。KEY_RING
:您要在其中创建密钥的密钥环。LOCATION
:密钥环的位置,例如global
。PURPOSE
:密钥的用途,例如encryption
。LABEL_LIST
:以英文逗号分隔的键值对列表,其中每个键值对的格式为LABEL_KEY=LABEL_VALUE
。例如env=prod,team=research
。每个标签键只能在一个 Cloud Key Management Service 密钥上使用一次。如果多次使用不同的值指定同一个标签键,则每个新值都会覆盖前一个值。
如需了解所有标志和可能值,请使用 --help
标志运行命令。
C#
要运行此代码,请先设置 C# 开发环境并安装 Cloud KMS C# SDK。
Go
要运行此代码,请先设置 Go 开发环境并安装 Cloud KMS Go SDK。
Java
要运行此代码,请先设置 Java 开发环境并安装 Cloud KMS Java SDK。
Node.js
要运行此代码,请先设置 Node.js 开发环境并安装 Cloud KMS Node.js SDK。
PHP
要运行此代码,请先了解如何在 Google Cloud 上使用 PHP 并安装 Cloud KMS PHP SDK。
Python
要运行此代码,请先设置 Python 开发环境并安装 Cloud KMS Python SDK。
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Cloud KMS Ruby SDK。
API
在创建新密钥时使用 CryptoKeys.create
方法为其添加标签,并在请求正文中添加 labels
属性。例如:
{
"purpose": "ENCRYPT_DECRYPT",
"labels": [
{
"key": "LABEL_KEY",
"value": "LABEL_VALUE"
}
]
}
替换以下内容:
LABEL_KEY
:标签的键,例如env
。LABEL_VALUE
:标签的值,例如prod
。
您可以添加多个标签键,每个键都有自己的值。每个标签键只能在一个 Cloud Key Management Service 密钥上使用一次。如果多次使用不同的值指定同一个标签键,则每个新值都会覆盖前一个值。
查看密钥上的标签
控制台
在 Google Cloud 控制台中,前往密钥管理页面。
点击您要检查的密钥对应的密钥环的名称。
在标头中,点击显示信息面板。
在面板中,选择标签标签页。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
gcloud kms keys describe KEY_NAME \ --keyring KEY_RING \ --location LOCATION
替换以下内容:
KEY_NAME
:您要查看标签的键的名称。KEY_RING
:包含密钥的密钥环的名称。LOCATION
:密钥环的位置。
如需了解所有标志和可能值,请使用 --help
标志运行命令。
C#
要运行此代码,请先设置 C# 开发环境并安装 Cloud KMS C# SDK。
Go
要运行此代码,请先设置 Go 开发环境并安装 Cloud KMS Go SDK。
Java
要运行此代码,请先设置 Java 开发环境并安装 Cloud KMS Java SDK。
Node.js
要运行此代码,请先设置 Node.js 开发环境并安装 Cloud KMS Node.js SDK。
PHP
要运行此代码,请先了解如何在 Google Cloud 上使用 PHP 并安装 Cloud KMS PHP SDK。
Python
要运行此代码,请先设置 Python 开发环境并安装 Cloud KMS Python SDK。
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Cloud KMS Ruby SDK。
API
这些示例使用 curl 作为 HTTP 客户端来演示如何使用 API。如需详细了解访问权限控制,请参阅访问 Cloud KMS API。
如需查看应用于密钥的标签,请使用 CryptoKeys.get
方法:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \ --request "GET" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID"
替换以下内容:
PROJECT_ID
:包含密钥环的项目的 ID。KEY_NAME
:您要查看标签的键的名称。KEY_RING
:包含密钥的密钥环的名称。LOCATION
:密钥环的位置。
添加或更新标签
控制台
在 Google Cloud 控制台中,前往密钥管理页面。
点击您要检查的密钥对应的密钥环的名称。
在标头中,点击显示信息面板。
在面板中,选择标签标签页。
直接在相应的文本字段中修改标签的值。
修改标签的密钥,方法是添加具有所需密钥名称的新标签,然后点击要删除的标签旁边的删除
来删除旧标签。点击保存。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
gcloud kms keys update KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --update-labels "LABEL_LIST"
KEY_NAME
:密钥的名称。KEY_RING
:包含密钥的密钥环。LOCATION
:密钥环的位置。LABEL_LIST
:以英文逗号分隔的键值对列表,其中每个键值对的格式为LABEL_KEY=LABEL_VALUE
。例如env=prod,team=research
。每个标签键只能在一个 Cloud Key Management Service 密钥上使用一次。如果多次使用不同的值指定同一个标签键,则每个新值都会覆盖前一个值。
如需了解所有标志和可能值,请使用 --help
标志运行命令。
C#
要运行此代码,请先设置 C# 开发环境并安装 Cloud KMS C# SDK。
Go
要运行此代码,请先设置 Go 开发环境并安装 Cloud KMS Go SDK。
Java
要运行此代码,请先设置 Java 开发环境并安装 Cloud KMS Java SDK。
Node.js
要运行此代码,请先设置 Node.js 开发环境并安装 Cloud KMS Node.js SDK。
PHP
要运行此代码,请先了解如何在 Google Cloud 上使用 PHP 并安装 Cloud KMS PHP SDK。
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Cloud KMS Ruby SDK。
Python
要运行此代码,请先设置 Python 开发环境并安装 Cloud KMS Python SDK。
API
这些示例使用 curl 作为 HTTP 客户端来演示如何使用 API。如需详细了解访问权限控制,请参阅访问 Cloud KMS API。
使用 CryptoKeys.patch 方法为现有密钥添加或更新标签,并在请求正文中添加 labels
属性。例如:
{
"labels": [
{
"key": "LABEL_KEY",
"value": "LABEL_VALUE"
}
]
}
移除标签
控制台
在 Google Cloud 控制台中,前往密钥管理页面。
点击您要检查的密钥对应的密钥环的名称。
在标头中,点击显示信息面板。
在面板中,选择标签标签页。
点击要删除的标签旁边的删除
图标。点击保存。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
gcloud kms keys update KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --remove-labels "LABEL_KEYS"
KEY_NAME
:密钥的名称。KEY_RING
:包含密钥的密钥环。LOCATION
:密钥环的位置。LABEL_LIST
:您要从键中移除的标签键的逗号分隔列表,例如env,team
。
如需了解所有标志和可能值,请使用 --help
标志运行命令。
C#
要运行此代码,请先设置 C# 开发环境并安装 Cloud KMS C# SDK。
Go
要运行此代码,请先设置 Go 开发环境并安装 Cloud KMS Go SDK。
Java
要运行此代码,请先设置 Java 开发环境并安装 Cloud KMS Java SDK。
Node.js
要运行此代码,请先设置 Node.js 开发环境并安装 Cloud KMS Node.js SDK。
PHP
要运行此代码,请先了解如何在 Google Cloud 上使用 PHP 并安装 Cloud KMS PHP SDK。
Python
要运行此代码,请先设置 Python 开发环境并安装 Cloud KMS Python SDK。
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Cloud KMS Ruby SDK。
API
这些示例使用 curl 作为 HTTP 客户端来演示如何使用 API。如需详细了解访问权限控制,请参阅访问 Cloud KMS API。
使用 CryptoKeys.patch 方法从现有密钥中移除标签,并将 labels
属性以空数组形式添加到请求正文中。例如:
{
"labels": []
}
审核日志
在创建或更新密钥时,您可以使用 Cloud KMS 的 Cloud 审核日志来记录标签信息。创建密钥和更新密钥都属于管理员活动,因此对标签的更改将记录在管理员活动日志中。