本文說明如何管理現有的標籤鍵/值組合,以便在 Google Distributed Cloud (GDC) Air-gapped 中整理專案。管理員可使用 Identity and Access Management (IAM) 權限查看標記。您可以為標記鍵/值組合設定權限,強制規定哪些使用者在標記繫結至專案時可以查看。您也可以查看現有代碼屬性,追蹤貴機構中代碼的套用方式,例如:
如要進一步瞭解標記,請參閱「標記總覽」。
本文適用於平台管理員群組中的 IT 管理員,負責在 GDC 領域中整理及管理專案。詳情請參閱 GDC 氣隙環境適用的目標對象說明文件。
事前準備
如要取得授予其他使用者標記權限或檢查標記鍵/值組合命名空間所需的權限,請要求機構組織 IAM 管理員授予您「標記管理員」角色 (
tag-admin)。如要取得列出含標記專案所需的權限,請要求組織 IAM 管理員授予您專案檢視者角色 (
project-viewer)。
將權限套用至代碼鍵/值組合
使用者必須具備特定角色繫結,才能存取及管理每個標記鍵和標記值。
為標記鍵和值設定適當的角色,以套用權限。
找出您要使用的角色名稱和必要命名空間,以便套用該角色。詳情請參閱「標記用量」。
為每個已定義的命名空間套用
RoleBinding資源,授予標記的角色權限:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: BINDING_NAME namespace: NAMESPACE subjects: - kind: GROUP_SUBJECT name: GROUP_NAME apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: TAG_ROLE_NAME apiGroup: rbac.authorization.k8s.io EOF更改下列內容:
BINDING_NAME:角色綁定的自訂名稱。GROUP_SUBJECT:要套用角色權限的主體類型。這個值可以是User、Group或ServiceAccount。詳情請參閱 Kubernetes 說明文件的「參照主體」。GROUP_NAME:自訂群組名稱。TAG_ROLE_NAME:要套用的標記角色名稱,例如tag-admin或tag-KEY_NAME-admin。
舉例來說,如要將
tag-admin角色權限授予使用者,以存取標記鍵/值組合,請將下列RoleBinding自訂資源部署至platform命名空間、標記鍵的managementNamespace,以及標記值的policyNamespace:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tag-admin-binding namespace: platform subjects: - kind: User name: user-1 apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: tag-admin apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tag-admin-mgmt-binding namespace: g-t-tag-key-1 subjects: - kind: User name: user-1 apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: tag-admin apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tag-admin-policy-binding namespace: g-t-tag-value-1 subjects: - kind: User name: user-1 apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: tag-admin apiGroup: rbac.authorization.k8s.io EOF
尋找管理命名空間
管理命名空間是系統為標記鍵建立的命名空間。
找出特定標記鍵的管理命名空間:
kubectl get tagkey TAG_KEY_NAME --namespace platform \ -o jsonpath='{.status.managementNamespace}'將
TAG_KEY_NAME替換為標記鍵的名稱。
找出政策命名空間
政策命名空間是系統為標記值建立的命名空間。
找出特定標記值的政策命名空間:
kubectl get tagvalue TAG_VALUE_NAME --namespace MANAGEMENT_NAMESPACE \ -o jsonpath='{.status.policyNamespace}'更改下列內容:
TAG_VALUE_NAME:標記值的名稱。MANAGEMENT_NAMESPACE:標記值對應標記鍵的管理命名空間名稱。詳情請參閱「尋找管理命名空間」。
列出含有標記的專案
如要列出與特定鍵/值組合繫結的所有專案,請完成下列步驟:
列出所有符合標記鍵/值組合的專案:
kubectl get project --namespace platform --label tag.resourcemanager.gdc.goog/TAG_KEY_NAME=TAG_VALUE_NAME更改下列內容:
TAG_KEY_NAME:標記鍵的名稱。TAG_VALUE_NAME:標記值的名稱。
輸出結果會與下列內容相似:
NAME AGE project-1 17d project-2 10d project-3 4d