設定儲存空間分析資料集

本文說明如何設定儲存空間洞察資料集

事前準備

設定資料集前,請先完成下列步驟。

取得必要角色

如要取得設定資料集所需的權限,請要求管理員在來源專案中授予下列 IAM 角色:

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

這些預先定義的角色具備設定資料集所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要設定資料集,您必須具備下列權限:

  • 設定資料集:
    • storageinsights.datasetConfigs.create
    • storage.buckets.getObjectInsights
  • 連結至 BigQuery 資料集: storageinsights.datasetConfigs.linkDataset

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

啟用 Storage Insights API

控制台

啟用 storageinsights.googleapis.com API

指令列

如要在目前的專案中啟用 Storage Insights API,請執行 gcloud services enable 指令:

gcloud services enable storageinsights.googleapis.com

如要進一步瞭解如何為 Google Cloud 專案啟用服務,請參閱啟用及停用服務

設定 Storage Intelligence

請確認已為要透過資料集分析的專案、資料夾或機構設定 Storage Intelligence

建立資料集設定

如要建立資料集設定,請按照下列步驟操作。如要進一步瞭解可為資料集設定指定的欄位,請參閱資料集設定屬性

控制台

  1. 前往 Google Cloud 控制台的 Cloud Storage「Storage Insights」頁面。

    前往「儲存空間分析」

  2. 按一下「設定資料集」

  3. 在「為資料集命名」部分,輸入資料集的名稱。 視需要輸入資料集說明。名稱用於識別資料集設定,且無法變更。名稱最多可包含 128 個字元,包括字母、數字和底線,且開頭必須是字母。

  4. 在「定義資料集範圍」部分,執行下列操作:

    • 選取下列選項之一:

      • 如要取得目前機構中所有專案的儲存空間中繼資料,請選取「加入組織」

      • 如要取得所選資料夾中所有專案的儲存空間中繼資料,請選取「Include folders (Sub-organization/departments)」(加入資料夾 (子組織/部門))。 如要瞭解如何取得資料夾 ID,請參閱「查看或列出資料夾和專案」。如要新增資料夾,請按照下列步驟操作:

        1. 在「Folder 1」(資料夾 1) 欄位中,輸入資料夾 ID。
        2. 如要新增多個資料夾 ID,請按一下「+ 新增其他資料夾」
      • 如要取得所選專案的儲存空間中繼資料,請選取「提供專案編號來加入專案」。如要瞭解如何找出專案編號,請參閱「找出專案名稱、編號和 ID」。如要新增專案,請按照下列步驟操作:

        1. 在「Project 1」欄位中,輸入專案編號。
        2. 如要新增多個專案編號,請點選「+ 新增其他專案」
      • 如要大量新增專案或資料夾,請選取「透過 CSV 檔案上傳專案/資料夾清單」。CSV 檔案必須包含要納入資料集的專案編號或資料夾 ID。一個資料集設定最多可指定 10,000 個專案或資料夾。

    • 指定是否要自動將所選資源日後建立的 bucket 納入。

    • 如要依據區域和 bucket 前置字串指定 bucket 篩選器,請展開「Filters (optional)」部分。篩選器會以累加方式套用至儲存區。

      您可以納入或排除特定區域中的值區。舉例來說,您可以排除 me-central1me-central2 地區中的值區。您也可以根據前置字串納入或排除值區。 舉例來說,如要排除開頭為 my-bucket 的值區,請輸入 my-bucket* 前置字串。

  5. 按一下「繼續」

  6. 在「選取保留期限」部分,選取資料集的保留期限

  7. 資料集預設會納入活動資料,並沿用資料集的保留期限。如要覆寫資料集保留期限,請選取「指定活動資料的保留期限」,然後選取活動資料的保留天數。如要停用活動資料,請將保留期限設為 0 天。

  8. 在「選取儲存設定資料集的位置」部分,選取儲存資料集的位置。例如:us-central1

  9. 在「選取服務帳戶類型」部分,為資料集選取服務代理程式類型。為資料集選擇特定設定或特定專案的服務代理

  10. 按一下 [設定]

指令列

  1. 如要建立資料集設定,請執行 gcloud storage insights dataset-configs create 指令,並加上必要旗標:

    gcloud storage insights dataset-configs create DATASET_CONFIG_ID \
      --location=LOCATION \
      --organization=SOURCE_ORG_NUMBER \
      --retention-period-days=DATASET_RETENTION_PERIOD_DAYS \
      (SCOPE_FLAG)
    

    取代:

    • DATASET_CONFIG_ID 替換為資料集設定的名稱。名稱用於識別資料集設定,且無法變更。名稱最多可包含 128 個字元,包括字母、數字和底線,且開頭必須是字母。

    • LOCATION,並指定要儲存資料集的位置。例如:us-central1

    • SOURCE_ORG_NUMBER 替換為來源專案所屬的機構 ID。如要找出機構 ID,請參閱「取得機構資源 ID」。

    • DATASET_RETENTION_PERIOD_DAYS,並設定資料集中資料的保留期限。

    • SCOPE_FLAG,並搭配使用下列任一標記,定義要收集的資料範圍:

      • --enable-organization-scope:允許資料集從機構內的所有 bucket 收集洞察資訊。
      • --source-folders=[SOURCE_FOLDER_NUMBERS,...]: 指定要納入資料集的資料夾編號清單。 如要瞭解如何找出資料夾編號,請參閱「列出階層中的所有專案和資料夾」。
      • --source-folders-file=FILE_PATH: 將 CSV 檔案上傳至 bucket,即可指定多個資料夾編號。
      • --source-projects=[SOURCE_PROJECT_NUMBERS,...]: 指定要納入資料集的專案編號清單。 例如,464036093014。如要找出專案編號,請參閱「找出專案名稱、編號和 ID」。
      • --source-projects-file=FILE_PATH: 將 CSV 檔案上傳至 bucket,即可指定多個專案編號。

    或者,您也可以使用下列其他標記來設定資料集:

    • 使用 --include-buckets=BUCKET_NAMES_OR_REGEX 依名稱或規則運算式加入特定 bucket。您無法將此標記與 --exclude-buckets 組合在一起。

    • 使用 --exclude-buckets=BUCKET_NAMES_OR_REGEX 依名稱或規則運算式排除特定 bucket。您無法將此標記與 --include-buckets 組合在一起。

    • 使用 --project=DESTINATION_PROJECT_ID 指定專案,儲存資料集設定和產生的資料集。如果未使用這個標記,目的地專案就是您的現用專案。如要進一步瞭解專案 ID,請參閱「建立及管理專案」。

    • 使用 --auto-add-new-buckets,自動納入日後新增至來源專案的任何 bucket。

    • 使用 --skip-verification 略過驗證程序中的檢查和失敗情形,包括檢查必要的 IAM 權限。使用這個旗標時,資料集可能會排除部分或所有值區。

    • 使用 --identity=IDENTITY_TYPE 指定透過資料集設定建立的服務代理範圍。值為 IDENTITY_TYPE_PER_CONFIGIDENTITY_TYPE_PER_PROJECT。如未指定,則預設值為 IDENTITY_TYPE_PER_CONFIG。詳情請參閱「服務代理程式類型」。

    • 使用 --description=DESCRIPTION 為資料集設定新增說明。

    • 使用 --activity-data-retention-period-days=ACTIVITY_RETENTION_PERIOD_DAYS 指定資料集中活動資料的保留期限。活動資料預設會納入資料集,並沿用資料集的保留期限。如要覆寫資料集保留期限,請指定活動資料的保留天數。如要排除活動資料,請將 ACTIVITY_RETENTION_PERIOD_DAYS 設為 0

    以下範例會在 us-central1 區域中,為 ID 為 123456789 的機構建立名為 my-dataset 的資料集設定,保留期限為 30 天,且範圍僅限於專案 987654321123123123

    gcloud storage insights dataset-configs create my-dataset \
    --location=us-central1 \
    --organization=123456789 \
    --retention-period-days=30 \
    --source-projects=987654321,123123123
    

JSON API

  1. 安裝並初始化gcloud CLI,以便為 Authorization 標頭產生存取權杖。

  2. 建立包含下列資訊的 JSON 檔案:

    {
      "sourceProjects": {
        "project_numbers": ["PROJECT_NUMBERS", ...]
      },
      "retentionPeriodDays": "RETENTION_PERIOD_DAYS",
      "activityDataRetentionPeriodDays": "ACTIVITY_DATA_RETENTION_PERIOD_DAYS",
      "identity": {
        "type": "IDENTITY_TYPE"
      }
    }

    取代:

    • PROJECT_NUMBERS 輸入要納入資料集的 專案編號。 您可以指定一或多個專案。專案必須指定為字串清單。

      或者,您也可以新增一或多個資料夾,其中包含要更新中繼資料的 bucket 和物件。如要納入資料夾或機構,請使用 sourceFoldersorganizationScope 欄位。詳情請參閱 DatasetConfig 參考資料。

    • RETENTION_PERIOD_DAYS,代表資料集中快照要擷取的資料天數。例如:90

    • ACTIVITY_DATA_RETENTION_PERIOD_DAYS,其中 activity data 是要擷取到資料集快照中的活動資料天數。根據預設,活動資料會納入資料集,並沿用資料集的保留期限。如要覆寫資料集保留期限,請指定活動資料的保留天數。如要排除活動資料,請將 ACTIVITY_RETENTION_PERIOD_DAYS 設為 0

    • IDENTITY_TYPE,並指定與資料集設定一併建立的服務帳戶類型。值為 IDENTITY_TYPE_PER_CONFIGIDENTITY_TYPE_PER_PROJECT。詳情請參閱「服務代理程式類型」。

  3. 如要建立資料集設定,請使用 cURL 透過 Create DatasetConfig 要求呼叫 JSON API

    curl -X POST --data-binary @JSON_FILE_NAME \
    "https://storageinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasetConfigs?datasetConfigId=DATASET_CONFIG_ID" \
      --header "Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json"

    取代:

    • JSON_FILE_NAME 改成您在上一個步驟中建立的 JSON 檔案路徑。或者,您也可以在要求主體中傳遞 DatasetConfig 的例項。

    • PROJECT_ID,其中包含資料集設定和資料集所屬的專案 ID

    • LOCATION,並將 location 替換為資料集和資料集設定的所在位置。例如:us-central1

    • DATASET_CONFIG_ID,並替換成資料集設定的名稱。名稱用於識別資料集設定,且無法變更。名稱最多可包含 128 個字元,包括字母、數字和底線,且開頭必須為字母。

    • SERVICE_ACCOUNT 與服務帳戶。例如:test-service-account@test-project.iam.gserviceaccount.com

如要排解 error_attributes_view 中記錄的快照處理錯誤,請參閱「Storage Insights 資料集錯誤」。

將必要權限授予服務代理

建立資料集設定時,Google Cloud 會建立特定設定或特定專案的服務代理。服務代理人的命名格式為 service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com,且當您選取「包含 Google 提供的角色授權」核取方塊時,該代理人會顯示在 Google Cloud 控制台的「IAM」頁面中。您也可以使用 JSON API 查看 DatasetConfig 資源,找出服務代理程式的名稱。

如要讓 Storage Insights 產生及寫入資料集,請管理員在包含來源專案的機構中,授予服務代理程式 Storage Insights 收集器服務角色 (roles/storage.insightsCollectorService)。您必須將這個角色授予為每個資料集設定建立的設定範圍服務代理,才能從中取得資料。如果您使用專案範圍的服務代理程式,則只需授予服務代理程式一次這個角色,即可讀取及寫入專案中所有資料集設定的資料集。

如需授予專案角色的操作說明,請參閱「管理存取權」。

如要將資料集連結至 BigQuery,請完成下列步驟:

  1. 前往 Google Cloud 控制台的 Cloud Storage「Storage Insights」頁面。

    前往「儲存空間分析」

  2. 按一下產生要連結資料集的資料集設定名稱。

  3. 在「BigQuery 連結的資料集」部分,按一下「連結資料集」來連結資料集。

  1. 如要將資料集連結至 BigQuery,請執行 gcloud storage insights dataset-configs create-link 指令:

    gcloud storage insights dataset-configs create-link DATASET_CONFIG_ID --location=LOCATION

    取代:

    • DATASET_CONFIG_ID,其中包含產生要連結資料集的資料集設定名稱。

    • LOCATION 換成資料集的位置。例如:us-central1

    您也可以指定完整資料集設定路徑。例如:

    gcloud storage insights dataset-configs create-link projects/DESTINATION_PROJECT_ID/locations/LOCATION/datasetConfigs/DATASET_CONFIG_ID

    取代:

    • DESTINATION_PROJECT_ID,並將其替換為包含資料集設定的專案 ID。如要進一步瞭解專案 ID,請參閱「建立及管理專案」。

    • DATASET_CONFIG_ID,其中包含產生要連結資料集的資料集設定名稱。

    • LOCATION,並將 location 替換為資料集和資料集設定的位置。例如:us-central1

  1. 安裝並初始化gcloud CLI,以便為 Authorization 標頭產生存取權杖。

  2. 使用 cURL 透過 linkDataset DatasetConfig 要求呼叫 JSON API

    curl -X POST \
      "https://storageinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasetConfigsDATASET_CONFIG_ID:linkDataset?" \
        --header "Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)" \
        --header "Accept: application/json" \
        --header "Content-Type: application/json"
    

    取代:

    • JSON_FILE_NAME,並替換為您建立的 JSON 檔案路徑。

    • PROJECT_ID,並將資料集設定所屬的專案 ID 填入其中。

    • LOCATION,其中 location 是資料集和資料集設定所在的位置。例如:us-central1

    • DATASET_CONFIG_ID,其中包含產生要連結資料集的資料集設定名稱。

    • SERVICE_ACCOUNT 與服務帳戶。例如:test-service-account@test-project.iam.gserviceaccount.com

後續步驟