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 控制台中的密钥管理页面。
点击您要为其创建密钥的密钥环的名称。
点击创建密钥。
在您要创建哪种类型的密钥?中,选择生成的密钥。
在密钥名称字段中,输入密钥的名称。
点击保护级别下拉列表,然后选择 HSM。
点击用途下拉列表,然后选择对称加密/解密。
接受轮替周期和开始日期的默认值。
点击添加标签按钮。
添加具有键
team
和值alpha
的标签。点击创建。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
此示例展示了如何创建新密钥并向密钥分配标签。您还可以向现有密钥添加标签。
gcloud kms keys create key \ --keyring key-ring \ --location location \ --purpose purpose \ --labels "team=alpha,cost_center=cc1234"
将 key 替换为密钥的名称。将 key-ring 替换为密钥将要存放到的密钥环的名称。将 location 替换为密钥环的 Cloud KMS 位置。将 purpose 替换为密钥的有效用途。提供带引号并以逗号分隔的标签和值的列表。如果多次使用不同的值指定同一个标签,则每个新值都会覆盖前一个值。
如需了解所有标志和可能值,请使用 --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": "team",
"value": "alpha"
},
{
"key": "cost_center",
"value": "cc1234"
}
]
}
如果您提供相同的标签密钥两次,则最后指定的值会替换之前的值。在此示例中,team
设置为 beta
。
{
"labels": [
{
"key": "team",
"value": "alpha"
},
{
"key": "team",
"value": "beta"
}
]
}
查看密钥上的标签
控制台
转到 Google Cloud 控制台中的密钥管理页面。
点击您要检查的密钥对应的密钥环的名称。
在标头中,点击显示信息面板。
在面板中,选择标签标签页。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
gcloud kms keys describe key \ --keyring key-ring \ --location location
将 key 替换为密钥的名称。将 key-ring 替换为密钥所在的密钥环的名称。将 location 替换为密钥环的 Cloud KMS 位置。
如需了解所有标志和可能值,请使用 --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-name/cryptoKeys/key-name" \ --request "GET" \ --header "authorization: Bearer token" \ --header "content-type: application/json" \ --header "x-goog-user-project: project-id"
添加或更新标签
控制台
转到 Google Cloud 控制台中的密钥管理页面。
点击您要检查的密钥对应的密钥环的名称。
在标头中,点击显示信息面板。
在面板中,选择标签标签页。
直接在相应的文本字段中修改标签的值。
修改标签的密钥,方法是添加具有所需密钥名称的新标签,然后点击要删除的标签旁边的删除
来删除旧标签。点击保存。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
gcloud kms keys update key \ --keyring key-ring \ --location location \ --update-labels "cost_center=cc5678"
将 key 替换为密钥的名称。将 key-ring 替换为密钥所在的密钥环的名称。将 location 替换为密钥环的 Cloud KMS 位置。对于 --update-labels
,请提供要更新的标签及其值带引号的逗号分隔列表。如果您省略标签的新值,则会发生。
如需了解所有标志和可能值,请使用 --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": "team",
"value": "alpha"
},
{
"key": "cost_center",
"value": "cc5678"
}
]
}
移除标签
控制台
转到 Google Cloud 控制台中的密钥管理页面。
点击您要检查的密钥对应的密钥环的名称。
在标头中,点击显示信息面板。
在面板中,选择标签标签页。
点击要删除的标签旁边的删除
图标。点击保存。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
gcloud kms keys update key \ --keyring key-ring \ --location location \ --remove-labels "team,cost_center"
将 key 替换为密钥的名称。将 key-ring 替换为密钥所在的密钥环的名称。将 location 替换为密钥环的 Cloud KMS 位置。对于 --remove-labels
,提供要移除的标签列表,该列表带引号并以逗号分隔。请勿为标签提供值。
如需了解所有标志和可能值,请使用 --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 审核日志来记录标签信息。创建密钥和更新密钥都属于管理员活动,因此对标签的更改将记录在管理员活动日志中。