標記存放區

使用標記將各個存放區和其他資源分組, Google Cloud 以便在機構內進行報表、稽核和存取權控管。 Google Cloud

如要將 Artifact Registry 中的存放區分組,以便進行自動化和計費作業,請使用標籤。標記和標籤各自獨立運作,您可以將兩者套用至同一個存放區。如要進一步瞭解標記和標籤的差異,請參閱「標記和標籤」。

什麼是代碼?

標記是可以套用至資源的鍵/值組合,用於精細的存取控管機制。

專案管理員會在 Google Cloud 機構層級建立資源標記,並在 Resource Manager 中管理這些標記。將標記附加至 Artifact Registry 存放區時,您可以使用標記搭配 IAM 條件,授予存放區有條件式存取權。您無法將標記附加至個別構件。

請注意下列限制:

  • 機構政策可依條件參照從父專案和更高層級繼承的標記,但不支援直接附加至存放區的標記。

  • 系統不會針對在存放區中附加標記和查看標記繫結產生 Cloud 稽核記錄

如要進一步瞭解標記和標記的條件式存取權控管功能,請參閱「標記和存取權控管」一文。

所需權限

您需要的權限取決於您要執行的動作。

如要取得這些權限,請要求管理員在資源階層的適當層級授予建議的角色。

查看代碼

如要查看標記定義和附加至資源的標記,您必須具備「標記檢視者」角色 (roles/resourcemanager.tagViewer),或是具備下列權限的其他角色:

所需權限

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • listTagBindings 的資源類型。例如,compute.instances.listTagBindings 可用於查看附加至 Compute Engine 執行個體的標記。
  • listEffectiveTags
  • 適用於適當的資源類型。例如,compute.instances.listEffectiveTags 可用於查看 Compute Engine 執行個體附加或繼承的所有標記。

如要在機構層級查看標記,您必須在機構資源上具備「機構檢視者」角色 (roles/resourcemanager.organizationViewer)。

管理代碼

如要建立、更新及刪除代碼定義,您必須具備代碼管理員角色 (roles/resourcemanager.tagAdmin),或是具備下列權限的其他角色:

所需權限

  • resourcemanager.tagKeys.create
  • resourcemanager.tagKeys.update
  • resourcemanager.tagKeys.delete
  • resourcemanager.tagKeys.list
  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.getIamPolicy
  • resourcemanager.tagKeys.setIamPolicy
  • resourcemanager.tagValues.create
  • resourcemanager.tagValues.update
  • resourcemanager.tagValues.delete
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • resourcemanager.tagValues.getIamPolicy
  • resourcemanager.tagValues.setIamPolicy

如要在機構層級管理標記,您需要具備機構資源的機構檢視者角色 (roles/resourcemanager.organizationViewer)。

管理資源的標記

如要新增及移除附加至資源的標記,您必須在標記值要附加標記值的資源上,具備標記使用者角色 (roles/resourcemanager.tagUser) 或其他具備等同權限的角色。「標記使用者」角色具備下列權限:

所需權限

  • 您要附加標記值的資源所需的權限
    • 資源專屬的 createTagBinding 權限,例如 Compute Engine 執行個體的 compute.instances.createTagBinding
    • 資源專屬的 deleteTagBinding 權限,例如 Compute Engine 執行個體的 compute.instances.deleteTagBinding
  • 標記值所需的權限:
    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete
  • 可讓您查看專案和標記定義的權限:
    • resourcemanager.tagValues.get
    • resourcemanager.tagValues.list
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.projects.get

將標記附加至存放區

專案管理員建立標記後,您就可以將標記附加至存放區。每個標記都有一個鍵和一個值。您可以將值繫結至存放區,藉此標記存放區。

如何為存放區附加標記:

主控台

  1. 向管理員取得要附加的代碼值。

    您可以使用下列任一類型的 ID,附加標記值:

    • 命名空間名稱,例如 123456789012/env/dev
    • 永久 ID,例如 tagValues/567890123456
  2. 在 Google Cloud 控制台中開啟「Repositories」頁面。

    開啟「存放區」頁面

  3. 選取要標記的存放區。

  4. 在「存放區詳細資料」部分,按一下「顯示更多」

    畫面上會顯示存放區的現有標記,包括繼承的標記。

  5. 按一下「編輯標記」圖示 編輯

  6. 在「直接代碼」部分,按一下「選取範圍」

  7. 選取存放區專案。

  8. 在「key」欄位中輸入篩選條件,然後選取標記鍵。

  9. 在「值」欄位中輸入內容,篩選標記清單,然後選取標記值。

  10. 按一下 [儲存]

  11. 按一下「確認」。

    標記已附加至您的存放區。

gcloud CLI

  1. 向管理員取得要附加的代碼值。

    您可以使用下列任一類型的 ID,附加標記值:

    • 命名空間名稱,例如 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,包括用於識別資源類型 (//artifactregistry.googleapis.com/) 的 API 網域名稱。例如 //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 控制台中開啟「Repositories」頁面。

    開啟「存放區」頁面

  2. 選取要查看的存放區。

  3. 在「存放區詳細資料」部分,按一下「顯示更多」

    「Tags」清單會顯示所有存放區標記,包括直接標記和資源階層中更高層級的繼承標記。

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 控制台中開啟「Repositories」頁面。

    開啟「存放區」頁面

  3. 選取存放區。

  4. 在「存放區詳細資料」部分,按一下「顯示更多」

    畫面上會顯示存放區的現有標記,包括繼承的標記。

  5. 按一下「編輯標記」圖示 編輯

  6. 在「直接標記」部分中,找出要移除的標記。

  7. 找出要移除的標記,然後按一下旁邊的 刪除圖示。

  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,包括用於識別資源類型 (//artifactregistry.googleapis.com/) 的 API 網域名稱。例如 //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
    

後續步驟