标记代码库

使用标记对整个中的代码库和其他资源进行分组,以便在组织内进行报告、审核和访问权限控制。 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
    

后续步骤