建立及管理標記

關於代碼

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

您可以建立標記繫結資源,將值連結至 Google Cloud 資源,藉此將標記附加至資源。

如要將 Transcoder API 中的作業或工作範本分組,以便進行自動化和計費作業,請使用標籤。 標記和標籤各自獨立運作,您可以將兩者套用至資源。

所需權限

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

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

查看代碼

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

如要將標記附加至 Transcoder API 工作或工作範本,您必須具備 Transcoder API 管理員角色 (roles/transcoder.admin)。

建立標記鍵和值

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

將標記新增至現有資源

如要為現有工作或工作範本新增標記,請按照下列步驟操作:

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,包括用於識別資源類型 (//transcoder.googleapis.com/) 的 API 網域名稱。舉例來說,如要在 us-central1 區域的 projects/7890123456 中,為工作 myJob 附加標記,完整 ID 為 //transcoder.googleapis.com/projects/7890123456/locations/us-central1/jobs/myJob
  • LOCATION:資源的位置。如果您要將標記附加至全域資源 (例如資料夾或專案),請省略這個標記。如果要將標記附加至地區或區域資源,您必須指定位置,例如 us-central1 (地區) 或 us-central1-a (區域)。

列出資源附加的標記

您可以查看工作或工作範本直接附加或繼承的標記繫結清單。

gcloud

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

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

更改下列內容:

  • RESOURCE_ID 是資源的完整 ID,包括用於識別資源類型 (//transcoder.googleapis.com/) 的 API 網域名稱。舉例來說,如要在 us-central1 區域的 projects/7890123456 中,為工作 myJob 附加標記,完整 ID 為 //transcoder.googleapis.com/projects/7890123456/locations/us-central1/jobs/myJob
  • LOCATION:資源的位置。如果您查看的是附加至全域資源 (例如資料夾或專案) 的標記,請省略這個標記。如果您查看的是附加至地區或區域資源的代碼,則必須指定位置,例如 us-central1 (地區) 或 us-central1-a (區域)。

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

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
          tagValue: tagValues/567890123456
          resource: //transcoder.googleapis.com/projects/PROJECT_ID/locations/REGION/JOB_ID
      

從資源中卸離標記

您可以分離直接附加至工作或工作範本的標記。您可以附加具有相同鍵和不同值的標記,藉此覆寫繼承的標記,但無法將標記分離。

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,包括用於識別資源類型 (//transcoder.googleapis.com/) 的 API 網域名稱。舉例來說,如要在 us-central1 區域的 projects/7890123456 中,為工作 myJob 附加標記,完整 ID 為 //transcoder.googleapis.com/projects/7890123456/locations/us-central1/jobs/myJob
  • LOCATION:資源的位置。如果您要將標記附加至全域資源 (例如資料夾或專案),請省略這個標記。如果要將標記附加至地區或區域資源,您必須指定位置,例如 us-central1 (地區) 或 us-central1-a (區域)。

刪除標籤鍵和值

移除標記鍵或值定義時,請確認標記已從工作或工作範本中分離。您必須先刪除現有的代碼附件 (稱為代碼繫結),才能刪除代碼定義本身。如要刪除標記鍵和標記值,請參閱「刪除標記」。

Identity and Access Management 條件和標記

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

後續步驟