建立及管理標記

本頁說明 Google Cloud 標記,以及如何搭配 Pub/Sub 使用標記。標記可套用至 Pub/Sub 主題、訂閱項目和快照。我們預計支援將標記套用至 Pub/Sub 結構定義。

關於代碼

標記是可附加至Google Cloud內資源的鍵/值組合。您可以將資源是否具備特定標記設為條件,並按照這項條件允許或拒絕政策。舉例來說,您可以根據資源是否具備特定標記,有條件地授予 Identity and Access Management (IAM) 角色。如要進一步瞭解標記,請參閱「標記總覽」。

如要將標記附加至資源,請建立標記繫結資源,將值連結至 Google Cloud 資源。

所需權限

如要取得管理標記所需的權限,請要求管理員授予下列 IAM 角色:

  • 標記檢視者 (roles/resourcemanager.tagViewer) 標記附加的資源
  • 在機構層級查看及管理標記: 機構檢視者 (roles/resourcemanager.organizationViewer) 機構
  • 建立、更新及刪除代碼定義: 代碼管理員 (roles/resourcemanager.tagAdmin) 適用於您要建立、更新或刪除代碼的資源
  • 在資源中附加及移除標記: 標記使用者 (roles/resourcemanager.tagUser) 在標記值和要附加/移除標記值的資源上

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

如要將標記附加至 Pub/Sub 主題、訂閱項目或快照,您需要「Pub/Sub 編輯者」角色 (roles/pubsub.editor)。

建立標記鍵和值

您必須先建立標記並設定其值,才能附加標記。 如要建立標記鍵和標記值,請參閱「建立標記」和「新增標記值」。

在建立資源時新增標籤

您可以在建立主題、訂閱項目或快照時新增標籤。在建立資源時新增標記,可立即提供資源的重要中繼資料,並協助您妥善整理資源、追蹤費用及自動套用政策。

控制台

  1. 前往 Google Cloud 控制台的「Pub/Sub」頁面。
  2. 前往「Pub/Sub」頁面

  3. 選取建立新主題、訂閱項目或快照的選項。
  4. 按一下「管理代碼」
  5. 如果「管理代碼」面板中未顯示貴機構,請按一下「選取代碼範圍」。選擇要新增在機構或專案層級定義的標記,然後輸入相同標記的 ID。
  6. 按一下「新增代碼」
  7. 從清單中選取要附加的代碼鍵。輸入關鍵字即可篩選清單。
  8. 從清單中選取要附加的標記值。輸入關鍵字即可篩選清單。
  9. 按一下 [儲存]。「標記」部分會更新標記資訊。
  10. 建立主題、訂閱項目或快照。系統會使用提供的標記建立新主題、訂閱項目或快照。

gcloud

如要在主題、訂閱項目或快照建立期間新增標記,請執行下列指令:

       gcloud pubsub topics create TOPIC_ID --tags=TAG_KEY=TAG_VALUE
     

更改下列內容:

  • TOPIC_ID:主題 ID
  • TAG_KEY:附加標記鍵的永久 ID 或命名空間名稱,例如 tagKeys/567890123456
  • :附加的標記值永久 ID 或命名空間名稱,例如 tagValues/567890123456TAG_VALUE

如要指定多個標記,請以半形逗號分隔,例如 TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2

API

對下列網址傳送 POST 要求:

      https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID

在要求主體中提供下列 JSON:

      
{
  "name": "projects/PROJECT_ID/topics/TOPIC_ID"
  "tags": {
    "TAGKEY_NAME": "TAGVALUE_NAME"
  }
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • TOPIC_ID:主題 ID
  • TAGKEY_NAME:附加標記鍵的永久 ID 或命名空間名稱,例如 tagKeys/567890123456
  • :附加的標記值永久 ID 或命名空間名稱,例如 tagValues/567890123456TAGVALUE_NAME

強制使用必要標記

您可以對資源強制執行標記,確保建立資源時會出現特定標記 (例如成本中心標記),以維持組織政策的合規性。您可以透過機構政策和自訂限制來達成這個目標。系統會在建立資源時強制執行這項政策,防止佈建沒有必要標記的資源。詳情請參閱「使用組織政策強制執行必要標記」。

設定自訂限制來強制執行標記

控制台

  1. 前往 Google Cloud 控制台的「Organization policies」(機構政策) 頁面。

    前往組織政策

  2. 選取頁面頂端的專案挑選器。

  3. 在專案選擇工具中,選取要強制執行自訂限制的機構。

  4. 設定自訂限制,並使用下列參數:

    • 強制執行方式Govern tags
    • 資源類型:要強制執行必要標記的 Google CloudREST 資源完整名稱,例如 file.googleapis.com/Instance
    • 條件:一般運算語言 (CEL) 條件,用於指定要在資源上強制執行的標記鍵,例如 resource.hasDirectTagKey("1234567890/owner"),用於強制執行標記鍵 1234567890/owner 的標記繫結。resource.hasDirectTagKey CEL 函式只會比對直接套用至資源的標記,不會考量從資源階層中上層資源繼承的標記。
    • 動作AllowDeny
      • 允許:如果符合指定條件,系統會允許建立或更新資源的動作。
      • 拒絕:如果符合指定條件,系統會封鎖建立或更新資源的動作。
  5. 按一下「建立限制」

gcloud

建立自訂限制的 YAML 檔案:

name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- GOVERN_TAGS
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION

更改下列內容:

  • ORGANIZATION_ID:組織 ID,例如 1234567890

  • CONSTRAINT_NAME:新自訂限制的名稱。自訂限制必須以 custom. 開頭,且只能包含大/小寫英文字母或數字,例如 custom.enforceMandatoryTags

  • RESOURCE_NAME:您要強制執行必要標記的Google Cloud REST 資源完整名稱,例如 file.googleapis.com/Instance

  • CONDITION:一般運算語言 (CEL) 條件,指定要在資源上強制執行的標記鍵,例如 resource.hasDirectTagKey("1234567890/owner"),強制執行標記鍵 1234567890/owner 的標記繫結。

  • ACTION:符合 condition 時採取動作。可以是 ALLOWDENY

    如果符合指定條件,系統就會封鎖建立或更新資源的操作。

    允許動作是指如果符合指定條件,系統就會允許建立或更新資源的作業。這也表示除了條件中明確列出的情況外,其他情況都會遭到封鎖。

  • DISPLAY_NAME:限制的易記名稱。這個欄位的長度上限為 200 個字元。

  • DESCRIPTION:違反政策時,要以錯誤訊息形式顯示的易於理解限制說明。這個欄位的長度上限為 2,000 個字元。

設定自訂限制,以便用於貴機構的組織政策。

定義自訂限制後,您可以測試及分析組織政策變更,並強制執行限制

為現有資源新增標記

如要為現有主題、訂閱項目或快照新增標記,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Pub/Sub」頁面。
  2. 前往「Pub/Sub」頁面

  3. 選取要附加標記的資源頁面。 舉例來說,如要將標記附加至主題,請前往「主題」頁面。
  4. 按一下「代碼」
  5. 如果「標記」面板中未顯示貴機構,請按一下「選取範圍」。選取機構,然後按一下「開啟」
  6. 按一下「新增代碼」
  7. 從清單中選取要附加的代碼鍵。輸入關鍵字即可篩選清單。
  8. 從清單中選取要附加的標記值。輸入關鍵字即可篩選清單。
  9. 按一下 [儲存]
  10. 在「確認」對話方塊中,按一下「確認」即可附加代碼。
  11. 系統會發送通知,確認代碼已更新。

gcloud

如要將標記附加至主題、訂閱項目或快照,請使用 gcloud resource-manager tags bindings create 指令建立標記繫結資源:

      gcloud resource-manager tags bindings create \
          --tag-value=TAGVALUE_NAME \
          --parent=RESOURCE_ID
      

更改下列內容:

  • TAGVALUE_NAME:附加標記值的永久 ID 或命名空間名稱,例如 tagValues/567890123456
  • RESOURCE_ID 是資源的完整 ID,包括 API 網域名稱,用於識別資源類型 (//pubsub.googleapis.com/)。舉例來說,如要將標記附加至 /projects/PROJECT_ID/topics/TOPIC_ID,完整 ID 為 //pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID

列出附加至資源的標記

您可以查看直接附加至主題、訂閱項目或快照,或由這些項目沿用的標記繫結清單。

控制台

  1. 前往 Google Cloud 控制台的「Pub/Sub」頁面。
  2. 前往「Pub/Sub」頁面

  3. 選取要查看標記的資源頁面。 舉例來說,如要查看主題的標記,請前往「主題」頁面。

    標記會顯示在控制台主題頁面的「標記」專區。

gcloud

如要取得附加至資源的標記繫結清單,請使用 gcloud resource-manager tags bindings list 指令:

      gcloud resource-manager tags bindings list \
          --parent=RESOURCE_ID
      

更改下列內容:

  • RESOURCE_ID 是資源的完整 ID,包括 API 網域名稱,用於識別資源類型 (//pubsub.googleapis.com/)。舉例來說,如要將標記附加至 /projects/PROJECT_ID/topics/TOPIC_ID,完整 ID 為 //pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID

您應該會得到類似以下的回覆:

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
          tagValue: tagValues/567890123456
          resource: //pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
      

從資源卸離標記

您可以將直接附加至主題、訂閱項目或快照的標記分離。如要覆寫繼承的標記,請附加具有相同鍵和不同值的標記,但無法卸離。

控制台

  1. 前往 Google Cloud 控制台的「Pub/Sub」頁面。
  2. 前往「Pub/Sub」頁面

  3. 選取要移除代碼的資源頁面。 舉例來說,如要移除主題的標記,請前往「主題」頁面。
  4. 按一下「代碼」
  5. 在「標記」面板中,找出要取消連結的標記,然後按一下旁邊的「刪除項目」
  6. 按一下 [儲存]
  7. 在「確認」對話方塊中,按一下「確認」即可取消連結標記。

系統會發送通知,確認代碼已更新。

gcloud

如要刪除標記繫結,請使用 gcloud resource-manager tags bindings delete 指令:

      gcloud resource-manager tags bindings delete \
          --tag-value=TAGVALUE_NAME \
          --parent=RESOURCE_ID
      

更改下列內容:

  • TAGVALUE_NAME:附加標記值的永久 ID 或命名空間名稱,例如 tagValues/567890123456
  • RESOURCE_ID 是資源的完整 ID,包括 API 網域名稱,用於識別資源類型 (//pubsub.googleapis.com/)。舉例來說,如要將標記附加至 /projects/PROJECT_ID/topics/TOPIC_ID,完整 ID 為 //pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID

刪除標籤鍵和值

移除標籤鍵或值定義時,請務必將標籤從主題、訂閱項目或快照中分離。您必須先刪除現有代碼附件 (稱為代碼繫結),才能刪除代碼定義本身。如要刪除標記鍵和標記值,請參閱刪除標記

身分與存取權管理條件和標記

您可以使用標記和 IAM 條件,有條件地將角色繫結授予階層中的使用者。如果已套用具有條件角色繫結的 IAM 政策,變更或刪除附加至資源的標記,可能會移除使用者對該資源的存取權。詳情請參閱「身分與存取權管理條件和標記」。

後續步驟