配置Storage Insights数据集

本文档介绍了如何配置存储空间分析数据集

准备工作

在配置数据集之前,请完成以下步骤。

获取所需的角色

如需获得配置数据集所需的权限,请让管理员向您授予源项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

这些预定义角色包含配置数据集所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

您必须拥有以下权限才能配置数据集:

  • 配置数据集:
    • 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页面。

    前往 Storage Insights

  2. 点击配置数据集

  3. 为数据集命名部分中,输入数据集的名称。 (可选)输入数据集的说明。名称用于标识数据集配置,且不可更改。名称最多可包含 128 个字符,包括字母、数字和下划线,并且必须以字母开头。

  4. 定义数据集范围部分,执行以下操作:

    • 从下列选项中选择一项:

      • 如需获取当前组织中所有项目的存储空间元数据,请选择包含组织

      • 如需获取所选文件夹中所有项目的存储空间元数据,请选择包含文件夹(子组织/部门)。如需了解如何获取文件夹 ID,请参阅查看或列出文件夹和项目。 如需添加文件夹,请执行以下操作:

        1. 文件夹 1 字段中,输入文件夹 ID。
        2. (可选)如需添加多个文件夹 ID,请点击+ 添加其他文件夹
      • 如需获取所选项目的存储元数据,请选择通过提供项目编号来添加项目。如需了解如何查找项目编号,请参阅查找项目名称、编号和 ID。如需添加项目,请执行以下操作:

        1. 项目 1 字段中,输入项目编号。
        2. (可选)如需添加多个项目编号,请点击 + 添加其他项目
      • 如需批量添加项目或文件夹,请选择通过 CSV 文件上传项目/文件夹列表。CSV 文件必须包含要纳入数据集的项目编号或文件夹 ID。您可以在一个数据集配置中指定最多 10,000 个项目或文件夹。

    • 指定是否要自动包含所选资源中未来创建的存储分区。

    • (可选)如需根据区域和存储分区前缀指定存储分区过滤条件,请展开过滤条件(可选)部分。过滤条件以累加方式应用于存储桶。

      您可以包含或排除特定区域中的存储桶。例如,您可以排除位于 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:使数据集能够从组织中的所有存储桶收集分析洞见。
      • --source-folders=[SOURCE_FOLDER_NUMBERS,...]:指定要包含在数据集中的文件夹编号的列表。如需了解如何查找文件夹编号,请参阅列出层次结构中的所有项目和文件夹
      • --source-folders-file=FILE_PATH:通过将 CSV 文件上传到存储桶来指定多个文件夹编号。
      • --source-projects=[SOURCE_PROJECT_NUMBERS,...]:指定要包含在数据集中的项目编号的列表。例如 464036093014。如需查找项目编号,请参阅查找项目名称、编号和 ID
      • --source-projects-file=FILE_PATH:通过将 CSV 文件上传到存储桶来指定多个项目编号。

    您可以选择使用以下其他标志来配置数据集:

    • 使用 --include-buckets=BUCKET_NAMES_OR_REGEX 按名称或正则表达式包含特定存储桶。您不能将此标志与 --exclude-buckets 搭配使用。

    • 使用 --exclude-buckets=BUCKET_NAMES_OR_REGEX 可按名称或正则表达式排除特定存储桶。您不能将此标志与 --include-buckets 搭配使用。

    • 使用 --project=DESTINATION_PROJECT_ID 指定用于存储数据集配置和生成的数据集的项目。如果您不使用此标志,则目标项目是您的有效项目。如需详细了解项目 ID,请参阅创建和管理项目

    • 使用 --auto-add-new-buckets 可自动包含将来添加到源项目中的任何存储分区。

    • 使用 --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 替换为您要包含在数据集中的项目的编号。您可以指定一个项目或多个项目。项目必须指定为字符串列表。

      或者,您也可以添加组织,或添加包含要更新元数据的存储分区和对象的一个或多个文件夹。如需添加文件夹或组织,请使用 sourceFoldersorganizationScope 字段。 如需了解详情,请参阅 DatasetConfig 参考文档。

    • RETENTION_PERIOD_DAYS 替换为要在数据集快照中捕获的数据天数。例如 90

    • ACTIVITY_DATA_RETENTION_PERIOD_DAYS,其中包含要在数据集快照中捕获的活动数据的天数。默认情况下,活动数据包含在数据集中,并沿用数据集的保留期限。如需替换数据集保留期限,请指定活动数据的保留天数。如需排除活动数据,请将 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 替换为数据集和数据集配置将驻留的位置。例如 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 Cloud 控制台的 IAM 页面上(如果您选择包括 Google 提供的角色授权复选框)。您还可以使用 JSON API 查看 DatasetConfig 资源来查找服务代理的名称。

如需允许存储空间分析生成和写入数据集,请让您的管理员向服务代理授予包含源项目的组织的 Storage Insights Collector Service 角色 (roles/storage.insightsCollectorService)。您必须向为每个数据集配置创建的每个配置范围的服务代理授予此角色,才能从相应的数据集配置中获取数据。如果您使用项目范围的服务代理,则只需向该服务代理授予一次此角色,即可读取和写入项目中的所有数据集配置的数据集。

如需了解如何授予项目的角色,请参阅管理访问权限

如需将数据集关联到 BigQuery,请完成以下步骤:

  1. 在 Google Cloud 控制台中,前往 Cloud Storage Storage Insights页面。

    前往 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 替换为数据集和数据集配置的位置。例如 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 替换为数据集和数据集配置所在的位置。例如 us-central1

    • DATASET_CONFIG_ID 替换为生成要关联的数据集的数据集配置的名称。

    • SERVICE_ACCOUNT 替换为服务账号。例如 test-service-account@test-project.iam.gserviceaccount.com

后续步骤