管理資源的標記


本指南說明如何建立及管理 Compute Engine 資源的標記。標記是可附加至資源的鍵/值組合。Google Cloud 標籤的用途包括:

  • 根據資源是否具備特定標記,有條件地允許或拒絕政策。
  • 在全域網路防火牆政策和區域網路防火牆政策中定義來源和目標。
  • 以邏輯方式整理資源。

建立標記並授予標記和資源適當的存取權後,即可將標記附加為鍵/值組合。針對特定鍵,您只能為資源附加一個值。舉例來說,如果您附加 environment: development 標記,就無法附加 environment: productionenvironment: test 標記。每個資源最多可附加 50 個鍵/值組合。

如要將標記附加至資源,您必須建立 TagBinding 資源,將標記值連結至 Google Cloud 資源。如要進一步瞭解代碼及其運作方式,請參閱「代碼總覽」文件。

事前準備

  • 請參閱 Resource Manager 說明文件中的標記總覽
  • 請參閱 Resource Manager 說明文件中的「建立及管理標記」。
  • 如果尚未設定驗證,請先完成設定。 「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. REST

        如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。

權限

如要管理 Compute Engine 資源的標記,請授予使用者和服務帳戶 tagUser 角色。如要進一步瞭解 tagUser 角色,請參閱必要權限

支援的資源

Compute Engine 支援為下列資源加上標記:

  • 僅限資源建立後

    • 代管執行個體群組 (MIG)
    • 圖片
    • 快照
    • 大多數網路資源,例如網路、子網路、防火牆和健康狀態檢查資源。
  • 資源建立期間和之後:虛擬機器 (VM) 執行個體和磁碟

為資源新增標記

您可以將現有標記附加至特定資源。建立資源後,請按照下列操作說明為該資源附加標記。

主控台

視資源類型而定,實際步驟可能有所不同。舉例來說,下列步驟會將標記附加至 VM:

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 選取您的專案並點選 [繼續]

  3. 在「Name」(名稱) 欄中,按一下要新增標記的 VM 名稱。

  4. 在「VM 執行個體詳細資料」頁面上,完成下列步驟:

    1. 按一下 [編輯]
    2. 在「基本資訊」部分中,按一下「管理標記」,然後為執行個體新增所需標記。
    3. 按一下 [儲存]

gcloud

如要瞭解如何使用這些標記,請參閱 Resource Manager 說明文件中的「將標記附加至資源」。

舉例來說,下列指令會將標記附加至 VM:

gcloud resource-manager tags bindings create \
    --location LOCATION_NAME \
    --tag-value=tagValues/TAGVALUE_ID \
    --parent=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

更改下列內容:

  • LOCATION_NAME:包含目標資源的區域;在本例中,是 VM 執行個體的區域
  • TAGVALUE_ID:標記值的數值 ID
  • PROJECT_NUMBER:包含目標資源的專案數字 ID
  • ZONE:包含目標資源的可用區;在本範例中,這是指 VM 執行個體的可用區
  • VM_IDVM 執行個體 ID

REST

如要將標記附加至資源,您必須先建立標記繫結的 JSON 表示法,其中包含標記值的永久 ID 或命名空間名稱,以及資源的永久 ID。如要進一步瞭解標記繫結的格式,請參閱tagBindings 參考資料

如要將標記附加至區域資源 (例如 VM 執行個體),請使用 tagBindings.create 方法,並搭配資源所在的區域端點。例如:

POST https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings

要求主體可以是下列其中一個選項:

{
  "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID",
  "tagValue": "tagValue/TAGVALUE_ID"
}
{
  "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID",
  "tagValueNamespacedName": TAGVALUE_NAMESPACED_NAME
}

更改下列內容:

  • LOCATION_NAME:包含目標資源的區域;在本例中,為 VM 執行個體的區域
  • PROJECT_NUMBER:包含目標資源的專案數字 ID
  • ZONE:包含目標資源的可用區;在本例中,這是 VM 執行個體的可用區
  • VM_IDVM 執行個體 ID
  • TAGVALUE_ID:附加的標記值永久 ID,例如:4567890123
  • TAGVALUE_NAMESPACED_NAME:附加標記的值的命名空間名稱,格式為: parentNamespace/tagKeyShortName/tagValueShortName

在建立資源時為資源新增標記

在某些情況下,您可能想在建立資源時標記資源,而不是在資源建立後標記。

主控台

視資源類型而定,確切步驟可能會有所不同。以下步驟適用於 VM:

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 選取您的專案並點選 [繼續]

  3. 按一下「Create instance」(建立執行個體)。「建立執行個體」頁面隨即顯示,並顯示「機器設定」窗格。

  4. 在導覽選單中,按一下「進階」。在隨即顯示的「進階」窗格中,執行下列操作:

    1. 展開「管理標記和標籤」部分。
    2. 按一下「新增標記」
    3. 在隨即開啟的「標記」窗格中,按照操作說明將標記新增至執行個體。
    4. 按一下 [儲存]
  5. 指定執行個體的其他設定選項。詳情請參閱「建立執行個體時的設定選項」。

  6. 如要建立並啟動 VM,請按一下 [Create] (建立)

gcloud

如要在建立資源時附加標記,請使用相應的 create 指令新增 --resource-manager-tags 旗標。舉例來說,如要將標記附加至 VM,請使用下列指令:

  gcloud compute instances create INSTANCE_NAME \
      --zone=ZONE \
      --resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID

更改下列內容:

  • INSTANCE_NAME:VM 執行個體的名稱
  • ZONE:包含 VM 執行個體的可用區
  • TAGKEY_ID:標記鍵編號數值 ID
  • TAGVALUE_ID:附加標記值的永久數字 ID,例如:4567890123

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

REST

請對以下網址提出 POST 要求:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances

加入下列 JSON 要求內文:

{
  "name": INSTANCE_NAME,
  "params": {
    "resourceManagerTags": {
      "tagKeys/TAGKEY_ID": "tagValues/TAGVALUE_ID",
    },
  }
  // other fields omitted
}

更改下列內容:

  • INSTANCE_NAME:VM 執行個體的名稱
  • TAGKEY_ID:標記鍵編號數值 ID
  • TAGVALUE_ID:附加標記值的永久數字 ID,例如:4567890123

從資源中卸離標記

如要從資源卸離標籤,請刪除標籤繫結資源。

如要查看如何分離標記的操作說明,請參閱資源管理員文件中的「從資源分離標記」。

主控台

視資源類型而定,確切步驟可能略有不同。舉例來說,下列步驟會從 VM 中分離標記:

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 選取您的專案並點選 [繼續]

  3. 在「Name」(名稱) 欄中,按一下要新增標記的 VM 名稱。

  4. 在「VM 執行個體詳細資料」頁面上,完成下列步驟:

    1. 按一下 [編輯]
    2. 在「基本」部分,按一下「管理標記」,然後移除執行個體所需的標記。
    3. 按一下 [儲存]

gcloud

以下範例使用 gcloud CLI 從 VM 分離標記:

gcloud resource-manager tags bindings delete \
    --location LOCATION_NAME \
    --tag-value=tagValues/TAGVALUE_ID \
    --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

更改下列內容:

  • LOCATION_NAME:目標資源的可用區,例如 us-central1-a
  • TAGVALUE_ID:標記鍵的數值 ID
  • PROJECT_NUMBER:包含目標資源的專案數字 ID
  • ZONE:可用區名稱,例如 us-central1-a
  • VM_ID:VM 執行個體的數值 ID

如要更新或將現有標記繫結替換為其他標記繫結,請先卸離舊的標記繫結,然後附加新的標記繫結。

REST

如要刪除附加至資源 (例如 VM) 的標記繫結,請使用 tagBindings.delete 方法,並搭配資源所在的區域端點。

DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/{name=TAGBINDINGS_NAME}

更改下列內容:

  • LOCATION:資源的區域端點,例如 us-central1
  • TAGBINDINGS_NAME:TagBinding 的永久 ID,例如: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F1234567890/tagValues/567890123456

查看附加至資源的標記

如要查看列出標記的詳細操作說明,請參閱資源管理員說明文件中的「列出附加至資源的所有標記」。

主控台

視資源類型而定,確切步驟可能略有不同。舉例來說,下列步驟說明如何查看 VM 的標記:

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 選取您的專案並點選 [繼續]

  3. 在「Name」(名稱) 欄中,按一下要查看標記的 VM 名稱。

  4. 在「VM instance」(VM 執行個體) 詳細資料頁面中,找出「Tags」(標記) 區段下的標記。

gcloud

如要取得直接附加至資源的標記繫結清單,請使用 gcloud resource-manager tags bindings list 指令。如果您新增 --effective 旗標,系統也會傳回這個資源繼承的標記清單。例如:

gcloud resource-manager tags bindings list \
    --location=LOCATION_NAME \
    --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

更改下列內容:

  • LOCATION_NAME:目標資源的可用區,例如 us-central1-a
  • PROJECT_NUMBER:包含目標資源的專案數值 ID
  • ZONE:可用區名稱,例如 us-central1-a
  • VM_ID:VM 執行個體的數值 ID

如果您在 tags bindings list 指令中加入 --effective 標記,也會傳回這個資源沿用的所有標記清單。

輸出結果會與下列內容相似:

namespacedTagKey: 961309089256/environment
namespacedTagValue: 961309089256/environment/production
tagKey: tagKeys/417628178507
tagValue: tagValues/247197504380
inherited: true

如果資源上評估的所有標記都是直接附加,則 inherited 欄位為 false,且會省略。

REST

如要列出附加至地區資源 (例如 Compute Engine 執行個體) 的標籤繫結,請搭配資源所在地區的端點使用 tagBindings.list 方法。例如:

GET https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings

{
    "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID"
}

更改下列內容:

  • LOCATION_NAME:目標資源的區域,例如 us-central1
  • PROJECT_NUMBER:包含目標資源的專案數值 ID
  • ZONE:可用區名稱,例如 us-central1-a
  • VM_ID:VM 執行個體的數值 ID

後續步驟