Cloud Key Management Service 提供了用于为 Cloud KMS 密钥添加标签的选项。标签采用键值对形式,可用于对相关 Cloud KMS 密钥进行分组以及存储 Cloud KMS 密钥的相关元数据。
您的帐单中也可以包含标签,让您能够按标签查看费用分布情况。
您可以使用 gcloud
命令行工具和 Cloud KMS REST API 添加、更新和移除密钥标签。
您可以在其他 Google Cloud 资源中使用标签,例如虚拟机资源和存储分区。如需详细了解如何在 Google Cloud 中使用标签,请参阅创建和管理标签。
什么是标签?
标签是一种键值对,可帮助您组织 Google Cloud Cloud KMS 密钥。您可以将标签附加到各项资源,然后根据标签对资源进行过滤。标签的相关信息会传递到结算系统,因此您可以根据标签来细分结算费用。
标签的常见用途
我们不建议创建大量唯一标签,例如每个 API 调用的时间戳或单个值。以下是标签的一些常见用例:
团队或成本中心标签:根据团队或成本中心添加标签,以区分不同团队所拥有的 Cloud KMS 密钥(例如
team:research
和team:analytics
)。您可以在进行成本核算或预算时使用此类标签。组件标签:例如
component:redis
、component:frontend
、component:ingest
、component:dashboard
。环境或阶段标签:例如
environment:production
和environment:test
。状态标签:例如
state:active
、state:readytodelete
、state:archive
。
标签要求
应用于资源的标签必须符合以下要求:
- 每项资源可以有多个标签,但不能超过 64 个。
- 每个标签都必须采用键值对形式。
- 键至少包含 1 个字符,最多包含 63 个字符,且不能为空。值可以为空,且最多包含 63 个字符。
- 键和值只能包含小写字母、数字字符、下划线和短划线。所有字符必须使用 UTF-8 编码,允许使用国际字符。
- 标签的键部分必须是唯一的。不过,您可以将同一个键用于多个资源。
- 键必须以小写字母或国际字符开头。
使用带有标签的密钥
创建密钥时,您可以通过提供一个或多个键值对作为标签
网页界面
转到 Cloud Console 中的加密密钥页面。
点击您要为其创建密钥的密钥环的名称。
点击创建密钥。
在您要创建哪种类型的密钥?中,选择生成的密钥。
在密钥名称字段中,输入密钥的名称。
点击保护级别下拉列表,然后选择 HSM。
点击用途下拉列表,然后选择对称加密/解密。
接受轮替周期和开始日期的默认值。
点击添加标签按钮。
添加具有键
team
和值alpha
的标签。点击创建。
命令行
要在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Cloud SDK。
此示例展示了如何创建新密钥并向密钥分配标签。您还可以向现有密钥添加标签。
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"
}
]
}
查看密钥上的标签
网页界面
转到 Cloud Console 中的加密密钥页面。
点击您要检查的密钥对应的密钥环的名称。
在标头中,点击显示信息面板。
在面板中,选择标签标签页。
命令行
要在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Cloud SDK。
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"
添加或更新标签
网页界面
转到 Cloud Console 中的加密密钥页面。
点击您要检查的密钥对应的密钥环的名称。
在标头中,点击显示信息面板。
在面板中,选择标签标签页。
直接在相应的文本字段中修改标签的值。
修改标签的密钥,方法是添加具有所需密钥名称的新标签,然后点击要删除的标签旁边的删除
来删除旧标签。点击保存。
命令行
要在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Cloud SDK。
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"
}
]
}
移除标签
网页界面
转到 Cloud Console 中的加密密钥页面。
点击您要检查的密钥对应的密钥环的名称。
在标头中,点击显示信息面板。
在面板中,选择标签标签页。
点击要删除的标签旁边的删除
图标。点击保存。
命令行
要在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Cloud SDK。
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 审核日志来记录标签信息。创建密钥和更新密钥都属于管理员活动,因此对标签的更改将记录在管理员活动日志中。