标记代码库

使用标记对整个中的代码库和其他资源进行分组,以便在组织内进行报告、审核和访问权限控制。 Google Cloud Google Cloud

如需对 Artifact Registry 中的代码库进行分组以自动执行操作和结算,请使用 标签。标记和标签彼此独立工作,您可以同时将它们应用于同一个代码库。如需详细了解标记和标签之间的区别,请参阅 标记和标签

什么是标记?

标记是可应用于资源以实现精细访问权限控制的键值对。

项目管理员在组织级层为整个内的资源创建标记,并在 Resource Manager 中管理这些标记。 Google Cloud 将标记附加到 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) 针对标记值以及您要为其附加或移除标记值的资源

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

将标记附加到代码库

项目管理员创建标记后,您可以将标记附加到 代码库。每个标记都有一个键和一个值。您可以通过将值绑定到代码库来为代码库添加标记。

如需将标记附加到代码库,请执行以下操作:

控制台

  1. 从管理员处获取要附加的标记值。

    您可以使用以下任一类型的标识符附加标记值

    • 命名空间名称,例如 123456789012/env/dev
    • 永久 ID,例如 tagValues/567890123456
  2. 在 Google Cloud 控制台中打开代码库页面。

    打开“代码库”页面

  3. 选择要添加标记的代码库。

  4. 代码库详细信息 部分,点击展开

    系统会显示代码库的现有标记,包括继承的标记。

  5. 点击 修改 修改标记 图标。

  6. 直接标记 部分,点击选择范围

  7. 选择您的代码库项目。

  8. key 字段中,输入以过滤标记列表,然后选择标记键。

  9. Value 字段中,输入以过滤标记列表,然后选择标记值。

  10. 点击保存

  11. 点击确认

    标记已附加到您的代码库。

gcloud CLI

  1. 从管理员处获取要附加的标记值。

    您可以使用以下任一类型的标识符附加标记值

    • 命名空间名称,例如 123456789012/env/dev
    • 永久 ID,例如 tagValues/567890123456
  2. 使用以下命令附加标记值:

    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
    

列出附加到代码库的标记

您可以列出附加到您有权访问的资源的标记。

控制台

  1. 在 Google Cloud 控制台中打开代码库页面。

    打开“代码库”页面

  2. 选择要查看的代码库。

  3. 代码库详细信息 部分,点击展开

    标记 列表会显示所有代码库标记,包括直接标记以及从资源层次结构中的较高位置继承的标记。

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 \

从代码库分离标记

您可以分离直接附加到代码库的标记。如果您需要移除从父项目或资源层次结构的 其他部分继承的标记,则项目管理员必须从附加该标记的资源中分离该标记。

如需移除附加到代码库的标记,请执行以下操作:

控制台

  1. 获取要移除的标记值。如果您不知道标记值, 请列出附加到代码库的标记。

  2. 在 Google Cloud 控制台中打开代码库页面。

    打开“代码库”页面

  3. 选择代码库。

  4. 代码库详细信息 部分,点击展开

    系统会显示代码库的现有标记,包括继承的标记。

  5. 点击 修改 修改标记 图标。

  6. 直接标记 部分,找到要移除的标记。

  7. 点击要移除的标记旁边的删除图标 delete

  8. 点击保存

  9. 点击确认

    标记已从您的代码库中移除。

gcloud CLI

  1. 获取要移除的标记值。如果您不知道标记值, 请列出附加到代码库的标记。

  2. 使用以下命令分离标记值:

    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
    

后续步骤