使用標記管理記錄檔叢集的存取權

本文說明如何使用標記來管理 Cloud Logging 記錄值區。標記是在機構或專案層級建立,可用於為資源加上註解。您也可以根據資源是否具備特定標記,依條件授予 Identity and Access Management (IAM) 角色依條件拒絕 IAM 權限。如要瞭解標記,請參閱「標記總覽」。

舉例來說,如果您使用 BigQuery 分析 Cloud Billing 資料,可以將 project:production 標記附加至儲存正式版資源記錄資料的記錄資料夾,也可以將 project:development 標記附加至儲存開發版資源記錄資料的記錄資料夾。接著,您可以使用標記查詢 Cloud Billing 資料,並查看開發和發布階段的費用明細。

標記可明確附加至記錄桶,或從其父項機構、資料夾和專案繼承。

事前準備

如要開始使用標記管理記錄值區,請按照下列步驟操作:

  1. 請確認您已建立代碼並設定其值。您可以使用 Resource Manager 管理代碼定義。如要進一步瞭解如何建立及管理標籤,請參閱「建立及管理標籤」一文。
  2. 如要取得使用標記管理記錄資料集所需的權限,請要求管理員授予您專案或機構的下列 IAM 角色:

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

    這些預先定義的角色包含使用標記管理記錄資料集所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

    所需權限

    如要使用標記管理記錄值區,您必須具備下列權限:

    • 新增或移除記錄檔 bucket 的標記:
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • resourcemanager.projects.get
      • logging.buckets.createTagbinding
      • logging.buckets.deleteTagBinding
    • 查看附加至記錄值區的標記:
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • logging.buckets.listTagBindings
      • logging.buckets.listEffectiveTags

    您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

  3. 如要取得管理記錄資料集所需的權限,請要求管理員為您授予專案的 記錄資料設定寫入者 (roles/logging.configWriter) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

    這個預先定義的角色包含 logging.buckets.list 權限,這是管理記錄資料集所需的權限。

    您或許還可透過自訂角色或其他預先定義的角色取得此權限。

將標記附加至記錄值區

如要為記錄值區附加標記,請按照下列步驟操作:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往「Logs Storage」(記錄檔儲存空間) 頁面:

    前往「Logs Storage」(記錄檔儲存空間)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 找出要附加標記的記錄檔值區。

  3. 在記錄值區中,按一下「更多」,然後點選「編輯標記」

  4. 在對話方塊的「直接代碼」部分中,選取建立代碼的資源,即可找出代碼。舉例來說,如要使用在專案層級建立的標記,請選擇「選取目前專案」做為範圍。

    您也可以選取「手動輸入」選項,手動搜尋專案、機構或標記 ID。

  5. 選取適當的鍵/值組合,然後按一下「儲存」

  6. 系統會顯示確認變更的對話方塊。按一下「確認」,即可完成變更。

gcloud

如要將標記附加至記錄資料集,請執行 gcloud resource-manager tags bindings create 指令來建立標記繫結:

gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

在上述指令中,進行以下取代:

  • TAG_VALUE_ID:標記值的永久 ID 或命名空間名稱。例如,tagValues/4567890123。如要進一步瞭解標記 ID,請參閱「標記定義和 ID」。

  • BUCKET_NAME:記錄值區的名稱。例如://logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID

  • LOCATION:記錄值區的位置。

API

如要為記錄區塊附加標記,請使用 tagBindings.create 方法。

查看附加至記錄值區的標記

如要查看記錄值區附加的標記,請執行下列操作:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往「Logs Storage」(記錄檔儲存空間) 頁面:

    前往「Logs Storage」(記錄檔儲存空間)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 找出要查看標記的記錄值區。

    在「標記」欄中,系統會列出與記錄值區相關聯的標記。如要查看與記錄資料集相關聯的所有標記,請按一下 「更多」按鈕,展開標記清單。

gcloud

執行 gcloud resource-manager tags bindings list 指令:

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

在上述指令中,進行以下取代:

  • BUCKET_NAME:記錄值區的名稱。例如://logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID

  • LOCATION:記錄值區的位置。

選用:如要查看記錄分層繼承的標記,請新增 --effective 標記。新增此標記會傳回類似以下的回應:

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

如果所有標記都明確附加至記錄值區,且沒有標記繼承,則 inherited 欄位為 false,並會省略。

API

如要取得指定分桶的標記繫結清單,請使用 tagBindings.list 方法。

移除記錄值區的標記

如要移除附加至記錄資料集的標記,您必須刪除附加至記錄資料集的標記繫結。如要刪除標記,您必須從所有已附加的資源中移除標記。

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往「Logs Storage」(記錄檔儲存空間) 頁面:

    前往「Logs Storage」(記錄檔儲存空間)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 找出要移除標記的記錄值區。

  3. 在記錄值區中,按一下「更多」,然後點選「編輯標記」

  4. 在對話方塊中,將游標移至要移除的標記,然後按一下 「Delete item」。按一下「儲存」即可儲存變更。

  5. 系統會顯示確認變更的對話方塊。按一下「確認」,即可完成變更。

gcloud

執行 gcloud resource-manager tags bindings delete 指令:

gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

在上述指令中,進行以下取代:

  • TAG_VALUE_ID:標記值的永久 ID 或命名空間名稱。例如,tagValues/4567890123。如要進一步瞭解標記 ID,請參閱「標記定義和 ID」。

  • BUCKET_NAME:記錄值區的名稱。例如://logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID

  • LOCATION:記錄值區的位置。

API

如要移除記錄區塊上的標記,請使用 tagBindings.delete 方法。

限制

  • 您無法使用 IAM 角色授權,控管主體在 Google Cloud 專案中列出記錄值區時,可看到哪些記錄值區。管理員會看到完整清單或空白清單。不過,您可以使用 IAM 角色授權搭配 IAM 條件,限制主體可對記錄值區採取的動作。舉例來說,您可以限制主體是否可以刪除特定記錄值區。

  • 如果您使用 BigQuery 匯出 Cloud Billing 資料,標記可能需要最多一小時才能在匯出作業中使用。如果標記在 1 小時內新增或移除,或是記錄值區存在時間不到 1 小時,則可能不會顯示在匯出檔案中。

使用身分與存取權管理條件的自訂角色和角色授予

如果您打算使用自訂 IAM 角色,並且打算將 IAM 條件附加至角色授予權限,可能就需要建立多個自訂角色。將 IAM 條件附加至角色授予權限時,部分 IAM 權限會失效。

針對 Cloud Logging,當角色授予權限包含 IAM 限制條件時,下列 IAM 權限會失效:

  • logging.buckets.list
  • logging.buckets.create

因此,您可能需要建立一個具有 listcreate 權限的角色,以及另一個包含其他桶具體權限的角色。舉例來說,您可以建立包含 logging.buckets.deletelogging.buckets.update 權限的角色。

授予包含 listcreate 權限的角色時,請勿為角色授予權限時附加 IAM 限制條件。授予含有 deleteupdate 權限的角色後,您可以新增 IAM 限制條件,將授予權限的資源限制為特定代碼。

後續步驟