您可以使用标记对 Google Cloud 中的代码库和其他资源进行分组,以便在 Google Cloud组织内进行报告、审核和访问权限控制。
如需对 Artifact Registry 中的代码库进行分组以自动执行操作和结算,请使用标签。标记和标签彼此独立工作,您可以同时将它们应用于同一代码库。如需详细了解标记和标签之间的区别,请参阅标记和标签。
什么是标记?
标记是可应用于资源以实现精细访问权限控制的键值对。
项目管理员在组织级层为整个 Google Cloud 内的资源创建标记,并在 Resource Manager 中管理这些标记。将标记附加到 Artifact Registry 制品库后,您可以将相应标记与 IAM 条件搭配使用,以便有条件地授予对该制品库的访问权限。您无法将标记附加到单个制品。
请注意以下限制:
组织政策可以有条件地引用从父项目及更高级别继承的标记,但不支持直接附加到代码库的标记。
系统不会为代码库附加标记和查看标记绑定生成 Cloud 审核日志。
如需详细了解标记以及如何使用标记控制条件式访问权限,请参阅标记和访问权限控制。
所需权限
如需获得管理标记所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
Tag Viewer (
roles/resourcemanager.tagViewer
) 附加了标记的资源 -
查看和管理组织级层的标记:针对组织的 Organization Viewer (
roles/resourcemanager.organizationViewer
) -
创建、更新和删除标记定义:
Tag Administrator (
roles/resourcemanager.tagAdmin
) 在您要创建、更新或删除标记的资源上 -
在资源中附加和移除标记:
Tag User (
roles/resourcemanager.tagUser
) 对标记值以及您要附加或移除标记值的资源具有此角色
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
将标记附加到代码库
项目管理员创建标记后,您可以将标记附加到代码库。每个标记都有一个键和一个值。您可以通过将值绑定到代码库来标记代码库。
如需将标记附加到代码库,请执行以下操作:
控制台
从管理员处获取要附加的标记值。
您可以附加具有以下标识符类型的标记值:
- 命名空间名称,例如
123456789012/env/dev
- 永久 ID,例如
tagValues/567890123456
- 命名空间名称,例如
在 Google Cloud 控制台中打开代码库页面。
选择要添加链接的代码库。
在代码库详情部分,点击显示更多。
系统会显示代码库的现有标记,包括继承的标记。
点击
修改标记图标。
在直接标记部分中,点击选择范围。
选择您的代码库项目。
在键字段中,输入内容以过滤标记列表,然后选择标记键。
在值字段中,输入内容以过滤标记列表,然后选择标记值。
点击保存。
点击确认。
该标记已附加到您的代码库。
gcloud CLI
从管理员处获取要附加的标记值。
您可以附加具有以下标识符类型的标记值:
- 命名空间名称,例如
123456789012/env/dev
- 永久 ID,例如
tagValues/567890123456
- 命名空间名称,例如
使用以下命令附加标记值:
gcloud resource-manager tags bindings create \ --tag-value=TAG_VALUE \ --parent=REPOSITORY_ID \ --location=LOCATION
替换以下值:
TAG_VALUE
是要关联的标记值的永久 ID 或命名空间名称。REPOSITORY_ID
是代码库的完整 ID,包括用于标识资源类型的 API 域名 (//artifactregistry.googleapis.com/
)。例如,//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo
LOCATION
是代码库的位置。
请参考以下示例:
- 标记值:
815471563813/env/dev
- 项目:
my-project
- 代码库:
my-repo
- 代码库位置:
us-east1
以下 gcloud CLI 命令会将标记附加到代码库:
gcloud resource-manager tags bindings create \ --tag-value=815471563813/env/dev \ --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \ --location=us-east1
列出附加到代码库的标记
您可以列出附加到您有权访问的资源的标记。
控制台
在 Google Cloud 控制台中打开代码库页面。
选择要查看的代码库。
在代码库详情部分,点击显示更多。
标记列表会显示所有代码库标记,包括直接标记和从资源层次结构中的较高位置继承的标记。
gcloud CLI
如需列出附加到代码库的标记,请运行以下命令:
gcloud resource-manager tags bindings list \
--parent=REPOSITORY_ID \
--location=LOCATION
该命令仅列出直接附加到指定资源的标记,因此不会返回从父项目或更高级别继承的标记。您可以使用 --parent
标志指定项目而非代码库,以列出从父项目继承的标记。
例如,以下命令会列出附加到项目 my-project
中位置 us-east1
的代码库 my-repo
的标记:
gcloud resource-manager tags bindings list \
--parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
--location=us-east1
此命令会列出附加到项目编号 7890123456
的标记:
gcloud resource-manager tags bindings list \
--parent=//cloudresourcemanager.googleapis.com/projects/7890123456 \
将标记与代码库分离
您可以分离直接附加到代码库的标记。如果您需要移除从父项目或资源层次结构的其他部分继承的标记,项目管理员必须先从附加该标记的资源中分离该标记。
如需移除附加到代码库的标记,请执行以下操作:
控制台
gcloud CLI
获取要移除的标记值。如果您不知道标记值,请列出附加到代码库的标记。
使用以下命令分离标记值:
gcloud resource-manager tags bindings delete \ --tag-value=TAG_VALUE \ --parent=REPOSITORY_ID \ --location=LOCATION
替换以下值:
要分离的
TAG_VALUE
标记值。REPOSITORY_ID
是代码库的完整 ID,包括用于标识资源类型的 API 域名 (//artifactregistry.googleapis.com/
)。例如,//artifactregistry.googleapis.com/projects/my-project/my-repo
LOCATION
是代码库的位置。
请参考以下示例:
- 标记值:
815471563813/env/dev
- 项目:
my-project
- 代码库:
my-repo
- 代码库位置:
us-east1
以下 gcloud CLI 命令会从代码库中分离标记:
gcloud resource-manager tags bindings delete \ --tag-value=815471563813/env/dev \ --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \ --location=us-east1
后续步骤
- 了解代码库标签。