標記總覽

Google Cloud 資源階層可將資源整理成樹狀結構。這個階層架構可協助您大規模管理資源,但只能模擬少數業務維度,包括機構架構、區域、工作負載類型和成本中心。階層結構缺乏彈性,無法將多個業務維度分層組合。

標記可用於建立資源的註解,在某些情況下,還可將資源是否具備特定標記設為條件,並按照這項條件允許或拒絕政策。只要使用標記並依據條件強制執行政策,即可精細控管資源階層結構。

標記和標籤

標籤是建立資源註解的另一種方式。 下表列出標記和標籤的一些差異:

標記 標籤
資源結構 標記鍵、標記值和標記繫結都是個別資源 本身不是資源,而是資源的中繼資料
定義 在機構或專案層級定義 由各個資源定義
存取控管 管理及附加標記需要 Identity and Access Management (IAM) 角色 附加標籤需要 IAM 角色,這會因服務資源而異
附件的必要條件 必須先定義標記鍵和標記值,才能將標記附加至資源 附件沒有先決條件
是否沿用設定 資源的子項會繼承 Google Cloud 階層中的標記繫結 資源的子項不會繼承這項設定
刪除規定 如要刪除標記,必須先移除該標記的所有繫結 隨時可從資源中移除
命名規定 代碼值和代碼鍵的規定 標籤規定
鍵/值名稱長度 最多可輸入 256 個半形字元 最多 63 個半形字元
支援允許和拒絕政策 標記可供允許政策條件和拒絕政策條件參照 不支援允許和拒絕政策
組織政策支援 機構政策條件限制可參照部分資源的標記 不支援機構政策
Cloud Billing 整合 執行退款、稽核和其他費用分配分析,將 Cloud Billing 費用資料匯出至 BigQuery 在 Cloud Billing 中依標籤篩選資源,將 Cloud Billing 資料匯出至 BigQuery

如要進一步瞭解標籤,請參閱「建立及管理標籤」。

語意標記

語意標記是鍵/值組合,可為資源提供有意義的中繼資料,並採用 OpenTelemetry (OTel) 慣例支援的強大標準化語意。

您可以在 App Hub 資源中使用語意標記。在 App Hub 中為服務和工作負載設定屬性時,App Hub 會自動將這些屬性複製為直接基礎資源上的唯讀系統語意標記。

系統語意標記為唯讀,您無法直接使用 Tags API 或 Google Cloud 控制台編輯或移除這些系統標記。標記管理作業會在 App Hub 中進行。

App Hub 複製的語意標記

如果您使用 App Hub,系統會自動將服務或工作負載上設定的「環境」和「重要性」屬性,複製為專用命名空間 google:AppHub 下的唯讀系統語意標記。

支援的系統標記包括:

  • google:AppHub/environment:從應用程式中心取得的值,例如 PRODUCTION 或 STAGING。
  • google:AppHub/criticality:從應用程式中心取得的值,例如 MISSION_CRITICAL 或 HIGH。

將 App Hub 內容顯示為系統標記,可確保下游服務 (例如 Google Cloud 控制台) 使用權威中繼資料來強制執行控管和安全政策,避免手動設定相關風險。

如要進一步瞭解如何管理語意標記,請參閱「查看及管理語意標記」。

語意目錄

語意目錄會列出可用的語意,以及這些語意對應的 OpenTelemetry (OTel) 支援屬性。您可以在 Google Cloud 控制台中瀏覽這個目錄,或使用 API 查看詳細資料。

如要進一步瞭解如何存取目錄,請參閱「查看語意目錄」。

元件資訊鍵 OTel 屬性鍵 語意值 OTel 屬性值
ENVIRONMENT deployment.environment.name PRODUCTION production
STAGING staging
TEST test
DEVELOPMENT development
CRITICALITY service.criticality MISSION_CRITICAL critical
HIGH high
MEDIUM medium
LOW low

語意標記的限制

語意標記有下列限制:

  • 自訂繫結:您無法透過 Tags API,直接將 ENVIRONMENT 或 CRITICALITY 語意標記繫結至資源或 Resource Manager 節點 (專案、資料夾或機構)。
  • 使用者定義的語意:系統不支援將現有標記升級為語意標記。
  • 僅限直接資源:同步處理僅適用於在應用程式中心註冊的直接資源。不會傳播至服務或工作負載中的巢狀或間接資源 (例如 MIG 中的個別 VM)。

建立代碼

標記的結構為鍵/值組合。您可以在機構或專案資源下建立標記鍵資源,而標記值是附加至鍵的資源,例如標記鍵 environment 具有 production 和 development 值。

標記管理

管理員可以限制哪些使用者可建立、更新、刪除及將標記附加至資源,藉此控管標記的使用情形。他們可以選取個別標記進行編輯,例如新增或移除值,以及更新說明。這樣一來,您就能精細控管代碼。

代碼可選擇性提供說明,在擷取代碼相關資訊時顯示。說明可協助將代碼附加至資源的使用者瞭解代碼的用途。

在父項專案或機構中,每個標籤鍵不得重複。這可確保每個標籤值繫結至資源時,都會與標籤鍵建立不重複的配對。

政策和標記

您可以同時使用標記和 IAM 條件,達到下列目的:

建立標記值後,即可將標記值繫結至資源。接著,您可以建立含有條件的 IAM 政策,根據標記鍵是否已繫結至資源來識別資源。如要瞭解如何使用標記和 IAM 條件,請參閱「標記和條件式存取權」一文。

標記異動的影響

如果您使用標記有條件地授予或拒絕存取權,或是設定機構單位政策的範圍,則將標記繫結至資源或從資源取消繫結,可能會改變這些政策的影響。

舉例來說,假設您有一群開發人員需要管理 Compute Engine 執行個體,但僅限於用於開發的執行個體:

  1. 標記定義:您有一個標記鍵 123456789012/env,值為 dev 和 prod。
  2. 條件式存取權:將 Compute 執行個體管理員角色 (roles/compute.instanceAdmin) 授予開發人員群組。在角色繫結中新增條件,只有當資源具有 env: dev 標記時,才允許存取。
  3. 變更的影響:
    • 繫結標記:將 env: dev 標記附加至執行個體。 條件式角色繫結現在可授予開發人員管理執行個體的權限。
    • 取消繫結標記:稍後,同一個執行個體會升級為正式環境。你取消繫結 env: dev 標記,並繫結 env: prod 標記。條件式角色繫結不再授予開發人員管理這個執行個體的存取權。

一般來說,代碼變更會在 2 分鐘內生效,不過,變更最多可能需要 7 分鐘,系統才會全面套用變更。這項傳播延遲時間適用於授予或撤銷存取權的速度,或是標記繫結或取消繫結後,機構政策生效的速度。

使用機構政策強制執行必要標記

您可以使用自訂機構政策,強制在資源上使用標記。強制執行必要標記後,您只能建立符合機構標記政策的資源,也就是資源會繫結至政策中指定必要標記鍵的標記值。詳情請參閱「設定自訂限制來強制執行標記」。

強制執行標記功能適用於下列資源類型:

  • Resource Manager 專案和資料夾
  • Filestore 執行個體
  • AlloyDB for PostgreSQL 叢集和備份資源
  • 工作流程
  • Compute Engine 資源:
    • 執行個體
    • 磁碟
    • 外部 VPN 閘道
    • VPN 閘道
    • 目標 VPN 閘道
    • VPN 通道
    • 互連網路
    • 互連網路連結
    • 後端服務
    • 區域後端服務
    • 後端值區
  • 虛擬私有雲資源:
    • 網路
    • 子網路
    • 防火牆規則
    • 路由

標記繼承

將標記值附加至資源後,資源的所有子系預設都會繼承相同的標記值。您可以在後代資源中覆寫繼承的標記值。如要覆寫沿用的標記值,請將不同的標記值繫結至子項資源。不同標記值必須使用與沿用標記值相同的標記鍵。

舉例來說,假設您將 environment: development 標記套用至資料夾,而該資料夾有兩個名為 team-a 和 team-b 的子資料夾。您也可以將其他標記 environment: test 套用至 team-b 資料夾。因此,team-a 資料夾中的專案和其他資源會繼承 environment: development 標記,而 team-b 資料夾中的專案和其他資源則會繼承 environment: test 標記:

資源階層與標籤

資源階層與標籤

如果從 team-b 資料夾中移除 environment: test 標記,該資料夾及其資源就會沿用 environment: development 標記。

附加至資源並由資源繼承的所有標記,統稱為「有效標記」。資源的有效標記是直接附加至資源的標記,以及附加至整個階層中所有資源上層項目的標記。

使用含有 IAM 條件的標記時,建議您為 IAM 條件使用的每個標記鍵建立安全預設標記值。將安全預設標記值繫結至機構,讓機構內的所有資源都可沿用該標記值,藉此套用安全預設標記值。如要變更標記值,請明確覆寫相關資源的繼承繫結。

舉例來說,假設您有 IAM 條件,該條件取決於 enforcement 標記鍵的 on 標記值,而該標記鍵也有 off 標記值。將標記值 enforcement: off 繫結至機構,建立安全預設值,供機構內的所有資源沿用。只將標記值 enforcement: on 繫結至組織內選取的資源。

接著,您可以編寫政策來處理 enforcement 標記鍵,並根據資源是否為 enforcement: on 或 enforcement: off,以及是否為 enforcement: default,設定影響資源的條件。如果從資源中移除 enforcement 標記鍵,資源就會從父項資源繼承 enforcement 的標記值。如果沒有父項資源具有 enforcement 標記鍵,資源就會從機構資源繼承 enforcement: default。

使用安全預設標記有助於避免非預期行為,但建議您先檢查標記和政策是否設有條件,再移動資源或移除標記。

刪除標籤鍵和值

如要刪除標記值,請先刪除使用該標記值的所有資源繫結。

防止刪除標記值

您可以將代碼保留附加至代碼值,為代碼值建立額外保護層。標記保留與標記繫結類似,可防止使用者刪除標記值。

部分資源會自動為附加至資源的每個標籤值建立標籤保留。必須先移除這項標記保留,才能刪除標記值。

後續步驟