建立及管理虛擬私有雲資源的標記

虛擬私有雲網路使用下列支援 Resource Manager 標記的資源:

Resource Manager 標記網路標記不同。本文中的「標記」一詞是指 Resource Manager 標記。

如需支援代碼的所有服務清單,請參閱「支援代碼的服務」。

如要瞭解如何在防火牆政策規則中使用標記,請參閱「防火牆標記」。

關於代碼

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

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

如要將虛擬私有雲中的 VPC 資源分組,以利自動化和計費,請使用標籤。標記和標籤各自獨立運作,您可以同時將兩者套用至資源。

所需權限

您需要的權限取決於要執行的動作。

如要取得這些權限,請要求管理員在資源階層的適當層級授予建議的角色。

查看代碼

如要查看標記定義和附加至資源的標記,您需要「標記檢視者」角色 (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

如要將標記附加至虛擬私有雲資源,您需要 Compute 網路管理員角色 (roles/compute.networkAdmin)。

建立標記鍵和值

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

在建立資源時新增標記

您可以在建立網路、子網路、路徑或 VPC 防火牆規則時新增標記。在建立資源時新增標記,可立即提供資源的重要中繼資料,並協助您妥善整理資源、追蹤費用,以及自動套用政策。

gcloud

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

gcloud compute networks create NETWORK_NAME \
    --resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID

更改下列內容:

  • NETWORK_NAME:網路名稱
  • TAGKEY_ID:標記鍵編號數值 ID
  • TAGVALUE_ID:附加的代碼值永久數字 ID,例如:4567890123

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

API

向下列網址傳送 POST 要求:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT/global/networks

在要求內文中提供下列 JSON:

      
    {
      "name": "NETWORK_NAME",
      "params": {
        "resourceManagerTags": {
          "tagKeys/TAGKEY_ID": "tagValues/TAGVALUE_ID",
        },
      }
      // Other fields omitted
    }

更改下列內容:

  • NETWORK_NAME:網路名稱
  • TAGKEY_ID:標記鍵編號數值 ID
  • TAGVALUE_ID:附加的代碼值永久數字 ID,例如:4567890123

為現有資源新增標記

如要為現有 VPC 資源新增標記,請按照下列步驟操作:

gcloud

如要將標記附加至虛擬私有雲資源,請使用 gcloud resource-manager tags bindings create 指令建立標記繫結資源:

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

更改下列內容:

  • TAGVALUE_NAME:附加標記值的永久 ID 或命名空間名稱,例如 tagValues/567890123456
  • RESOURCE_ID 是資源的完整 ID,包括用於識別資源類型的 API 網域名稱 (//compute.googleapis.com/)。您必須使用資源的數字 ID,而非名稱。舉例來說,子網路 ID 的格式類似於://compute.googleapis.com/projects/123/regions/us-central1/subnetworks/456。網路 ID 的格式類似於: //compute.googleapis.com/projects/123/global/networks/789
  • LOCATION:資源位置。如要將標記附加至全域資源 (例如資料夾或專案),請省略這個旗標。如要將標記附加至區域或地區資源,請務必指定位置,例如 us-central1 (區域) 或 us-central1-a (地區)。

列出附加至資源的標記

您可以查看直接附加至 VPC 資源或由該資源繼承的標記繫結清單。

gcloud

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

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

更改下列內容:

  • RESOURCE_ID 是資源的完整 ID,包括用於識別資源類型的 API 網域名稱 (//compute.googleapis.com/)。您必須使用資源的數字 ID,而非名稱。舉例來說,子網路 ID 的格式類似於://compute.googleapis.com/projects/123/regions/us-central1/subnetworks/456。網路 ID 的格式類似於: //compute.googleapis.com/projects/123/global/networks/789
  • LOCATION:資源位置。如果您要查看附加至資料夾或專案等全域資源的標記,請省略這個標記。如果查看附加至區域或地區資源的標記,則必須指定位置,例如 us-central1 (區域) 或 us-central1-a (地區)。

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

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
          tagValue: tagValues/567890123456
          resource: //compute.googleapis.com/projects/7890123456/subnetworks/subnetwork-ID
      

從資源卸離標記

您可以將直接附加至 VPC 資源的標記分離。如要覆寫繼承的標記,請附加具有相同鍵和不同值的標記,但無法卸離。

gcloud

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

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

更改下列內容:

  • TAGVALUE_NAME:附加標記值的永久 ID 或命名空間名稱,例如 tagValues/567890123456
  • RESOURCE_ID 是資源的完整 ID,包括用於識別資源類型的 API 網域名稱 (//compute.googleapis.com/)。您必須使用資源的數字 ID,而非名稱。舉例來說,子網路 ID 的格式類似於://compute.googleapis.com/projects/123/regions/us-central1/subnetworks/456。網路 ID 的格式類似於: //compute.googleapis.com/projects/123/global/networks/789
  • LOCATION:資源位置。如要將標記附加至全域資源 (例如資料夾或專案),請省略這個旗標。如要將標記附加至區域或地區資源,請務必指定位置,例如 us-central1 (區域) 或 us-central1-a (地區)。

刪除標籤鍵和值

移除標籤鍵或值定義時,請確保標籤已從 VPC 資源中分離。您必須先刪除現有代碼附件 (稱為代碼繫結),才能刪除代碼定義本身。如要刪除標記鍵和標記值,請參閱刪除標記

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

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

後續步驟