Storage Insights データセットを構成する

このドキュメントでは、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 を含める必要があります。1 つのデータセット構成で最大 10,000 個のプロジェクトまたはフォルダを指定できます。

    • 選択したリソースに今後作成されるバケットを自動的に含めるかどうかを指定します。

    • リージョンとバケットの接頭辞に基づいてバケットにフィルタを指定するには、[フィルタ(省略可)] セクションを開きます。フィルタはバケットに付加的に適用されます。

      特定のリージョンのバケットを追加または除外できます。たとえば、me-central1 リージョンと me-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_DAYS0 に設定します。

    次の例では、ID が 123456789 の組織に対して、us-central1 リージョンに 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 は、データセットに含めるプロジェクトの数に置き換えます。1 つまたは複数のプロジェクトを指定できます。プロジェクトは文字列のリストとして指定する必要があります。

      メタデータを更新するバケットとオブジェクトを含む組織、または 1 つ以上のフォルダを追加することもできます。フォルダまたは組織を含めるには、sourceFolders フィールドまたは organizationScope フィールドを使用します。詳細については、DatasetConfig リファレンスをご覧ください。

    • RETENTION_PERIOD_DAYS は、データセット スナップショットでキャプチャするデータの日数に置き換えます。例: 90

    • ACTIVITY_DATA_RETENTION_PERIOD_DAYS は、データセット スナップショットでキャプチャするアクティビティ データの日数に置き換えます。デフォルトでは、アクティビティ データはデータセットに含まれ、データセットの保持期間を継承します。データセットの保持期間をオーバーライドするには、アクティビティ データを保持する日数を指定します。アクティビティ データを除外するには、ACTIVITY_RETENTION_PERIOD_DAYS0 に設定します。

    • 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 提供のロール付与を含める] チェックボックスが選択されているときに、 Google Cloud コンソールの [IAM] ページに表示されます。JSON API を使用して DatasetConfig リソースを表示することで、サービス エージェントの名前を確認することもできます。

Storage Insights でデータセットを生成して書き込むようにするには、ソース プロジェクトを含む組織に対する Storage Insights コレクタ サービスロール(roles/storage.insightsCollectorService)をサービス エージェントに付与するよう管理者に依頼してください。このロールは、データが必要なデータセット構成ごとに作成される構成スコープのサービス エージェントすべてに付与する必要があります。プロジェクト スコープのサービス エージェントを使用する場合は、このロールをサービス エージェントに 1 回だけ付与して、プロジェクト内のすべてのデータセット構成のデータセットを読み取り、書き込む必要があります。

プロジェクトにロールを付与する手順については、アクセスを管理するをご覧ください。

データセットを 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

次のステップ