このドキュメントでは、Storage Insights データセットを構成する方法について説明します。
始める前に
データセットを構成する前に、次の手順を完了します。
必要なロールを取得する
データセットの構成に必要な権限を取得するには、ソース プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
データセットを構成する: Storage Insights 管理者 (
roles/storageinsights.admin) -
データセットをリンクする:
- Storage Insights アナリスト(
roles/storageinsights.analyst) -
BigQuery 管理者(
roles/bigquery.admin)
- Storage Insights アナリスト(
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、データセットの構成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
データセットを構成するには、次の権限が必要です。
-
データセットを構成する:
-
storageinsights.datasetConfigs.create -
storage.buckets.getObjectInsights
-
-
BigQuery データセットへのリンク:
storageinsights.datasetConfigs.linkDataset
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Storage Insights API を有効にする
コンソール
コマンドライン
現在のプロジェクトで Storage Insights API を有効にするには、gcloud services enable コマンドを実行します。
gcloud services enable storageinsights.googleapis.com
Google Cloud プロジェクトのサービスを有効にする方法について詳しくは、サービスの有効化と無効化をご覧ください。
Storage Intelligence の構成
データセットで分析するプロジェクト、フォルダ、または組織で、Storage Intelligence が構成されていることを確認します。
データセット構成を作成する
データセット構成を作成する手順は次のとおりです。データセット構成で指定できるフィールドの詳細については、データセット構成プロパティをご覧ください。
コンソール
- Google Cloud コンソールで、Cloud Storage の [Storage Insights] ページに移動します。
[データセットの構成] をクリックします。
[データセット名の設定] セクションに、データセットの名前を入力します。必要に応じて、データセットの説明を入力します。名前はデータセット構成を識別し、不変です。名前には、英数字とアンダースコアを使用して最大 128 文字まで使用できます。また、先頭は英字にする必要があります。
[データセット スコープの定義] セクションで、次の操作を行います。
次のオプションのいずれかを選択します。
現在の組織内のすべてのプロジェクトのストレージ メタデータを取得するには、[組織を含める] を選択します。
選択したフォルダ内のすべてのプロジェクトのストレージ メタデータを取得するには、[フォルダを含める(サブ組織/部門)] を選択します。フォルダ ID の取得については、フォルダとプロジェクトを表示または一覧表示するをご覧ください。フォルダを追加するには:
- [フォルダ 1] フィールドにフォルダ ID を入力します。
- 複数のフォルダ ID を追加するには、[+ 別のフォルダを追加] をクリックします。
選択したプロジェクトのストレージ メタデータを取得するには、[プロジェクト番号を指定してプロジェクトを含める] を選択します。プロジェクト番号を確認する方法については、プロジェクト名、番号、ID を確認するをご覧ください。プロジェクトを追加する手順は次のとおりです。
- [プロジェクト 1] フィールドにプロジェクト番号を入力します。
- 複数のプロジェクト番号を追加するには、[+ 別のプロジェクトを追加] をクリックします。
プロジェクトまたはフォルダを一括で追加するには、[CSV ファイルを使用してプロジェクト/フォルダのリストをアップロードする] を選択します。CSV ファイルには、データセットに含めるプロジェクト番号またはフォルダ ID を含める必要があります。1 つのデータセット構成で最大 10,000 個のプロジェクトまたはフォルダを指定できます。
選択したリソースに今後作成されるバケットを自動的に含めるかどうかを指定します。
リージョンとバケットの接頭辞に基づいてバケットにフィルタを指定するには、[フィルタ(省略可)] セクションを開きます。フィルタはバケットに付加的に適用されます。
特定のリージョンのバケットを追加または除外できます。たとえば、
me-central1リージョンとme-central2リージョンにあるバケットを除外できます。接頭辞でバケットを追加または除外することもできます。たとえば、my-bucketで始まるバケットを除外する場合は、my-bucket*接頭辞を入力します。
[続行] をクリックします。
[保持期間の選択] セクションで、データセット内のデータの保持期間を選択します。
アクティビティ データはデフォルトでデータセットに含まれ、データセットの保持期間を継承します。データセットの保持期間をオーバーライドするには、[アクティビティ データの保持期間を指定する] を選択し、アクティビティ データを保持する日数を指定します。アクティビティ データを無効にするには、保持期間を
0日に設定します。[構成したデータセットを保存するロケーションの選択] セクションで、データセットを保存するロケーションを選択します。例:
us-central1[サービス アカウントの種類の選択] セクションで、データセットのサービス エージェントのタイプを選択します。データセットの構成スコープまたはプロジェクト スコープのサービス エージェントを選択します。
[構成] をクリックします。
コマンドライン
データセット構成を作成するには、必要なフラグを指定して
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-central1SOURCE_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_CONFIGかIDENTITY_TYPE_PER_PROJECTです。指定しない場合は、デフォルトのIDENTITY_TYPE_PER_CONFIGが使用されます。詳細については、サービス エージェントのタイプをご覧ください。--description=DESCRIPTIONを使用して、データセット構成の説明を追加します。--activity-data-retention-period-days=ACTIVITY_RETENTION_PERIOD_DAYSを使用して、データセット内のアクティビティ データの保持期間を指定します。デフォルトでは、アクティビティ データはデータセットに含まれ、データセットの保持期間を継承します。データセットの保持期間をオーバーライドするには、アクティビティ データを保持する日数を指定します。アクティビティ データを除外するには、ACTIVITY_RETENTION_PERIOD_DAYS を0に設定します。
次の例では、ID が
123456789の組織に対して、us-central1リージョンにmy-datasetという名前のデータセット構成を作成します。保持期間は30日で、スコープはプロジェクト987654321と123123123に限定されます。gcloud storage insights dataset-configs create my-dataset \ --location=us-central1 \ --organization=123456789 \ --retention-period-days=30 \ --source-projects=987654321,123123123
JSON API
gcloud CLI をインストールして初期化します。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。次の情報が含まれる 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は、データセット スナップショットでキャプチャするデータの日数に置き換えます。例:90ACTIVITY_DATA_RETENTION_PERIOD_DAYSは、データセット スナップショットでキャプチャするアクティビティ データの日数に置き換えます。デフォルトでは、アクティビティ データはデータセットに含まれ、データセットの保持期間を継承します。データセットの保持期間をオーバーライドするには、アクティビティ データを保持する日数を指定します。アクティビティ データを除外するには、ACTIVITY_RETENTION_PERIOD_DAYS を0に設定します。IDENTITY_TYPEは、データセット構成とともに作成されるサービス アカウントの種類に置き換えます。値はIDENTITY_TYPE_PER_CONFIGかIDENTITY_TYPE_PER_PROJECTです。詳細については、サービス エージェントのタイプをご覧ください。
データセット構成を作成するには、
cURLを使用して、CreateDatasetConfig リクエストで 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-central1DATASET_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 にリンクするには、次の操作を行います。
コンソール
- Google Cloud コンソールで、Cloud Storage の [Storage Insights] ページに移動します。
リンクするデータセットを生成したデータセット構成の名前をクリックします。
[BigQuery とリンクされたデータセット] セクションで、[データセットをリンク] をクリックしてデータセットをリンクします。
コマンドライン
データセットを 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
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。cURLを使用して、linkDatasetDatasetConfig リクエストで 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-central1DATASET_CONFIG_IDは、リンクするデータセットを生成したデータセット構成の名前に置き換えます。SERVICE_ACCOUNT: サービス アカウント。例:test-service-account@test-project.iam.gserviceaccount.com
次のステップ
- リンクされたデータセットを表示する
- リンクされたデータセットをクエリする。
- Gemini Cloud Assist を使用して保存されているデータを分析する。
- データセット構成の更新、表示、一覧表示、削除など、データセット構成を管理します。