使用標記將各個存放區和其他資源分組, 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
將標記附加至存放區
專案管理員建立標記後,您就可以將標記附加至存放區。每個標記都有一個鍵和一個值。您可以將值繫結至存放區,藉此標記存放區。
如何為存放區附加標記:
主控台
向管理員取得要附加的代碼值。
您可以使用下列任一類型的 ID,附加標記值:
- 命名空間名稱,例如
123456789012/env/dev
- 永久 ID,例如
tagValues/567890123456
- 命名空間名稱,例如
在 Google Cloud 控制台中開啟「Repositories」頁面。
選取要標記的存放區。
在「存放區詳細資料」部分,按一下「顯示更多」。
畫面上會顯示存放區的現有標記,包括繼承的標記。
按一下「編輯標記」圖示
。
在「直接代碼」部分,按一下「選取範圍」。
選取存放區專案。
在「key」欄位中輸入篩選條件,然後選取標記鍵。
在「值」欄位中輸入內容,篩選標記清單,然後選取標記值。
按一下 [儲存]。
按一下「確認」。
標記已附加至您的存放區。
gcloud CLI
向管理員取得要附加的代碼值。
您可以使用下列任一類型的 ID,附加標記值:
- 命名空間名稱,例如
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,包括用於識別資源類型 (//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
列出附加至存放區的標記
您可以列出已附加至您有權存取的資源的標記。
主控台
在 Google Cloud 控制台中開啟「Repositories」頁面。
選取要查看的存放區。
在「存放區詳細資料」部分,按一下「顯示更多」。
「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 \
從存放區中分離標記
您可以分離直接附加至存放區的標記。如果您需要移除從父項專案或資源階層的其他部分繼承的代碼,專案管理員必須從已附加代碼的資源中分離該代碼。
如要移除已附加至存放區的標記,請按照下列步驟操作:
主控台
gcloud CLI
取得要移除的標記值。如果不知道標記值,請列出已附加至存放區的標記。
使用下列指令分離標記值:
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
後續步驟
- 瞭解存放區標籤。