カスタム データソースのアクセス制御を構成する

このページでは、Cloud Storage または BigQuery を使用して作成した検索アプリにデータソースのアクセス制御(ACL とも呼ばれます)を適用する方法について説明します。

概要

Gemini Enterprise では、データソースへのアクセス制御を行うことによって、ユーザーが検索アプリの結果で見ることができるデータを制限しています。Google は ID プロバイダを使って、検索を実行しているエンドユーザーを特定し、結果として返されるドキュメントへのアクセス権があるかどうかを判断します。

たとえば、社員が検索アプリを使って BigQuery ドキュメントを検索したとしましょう。この場合、検索を実行したユーザーによるアクセスを許可されていないコンテンツがアプリを通じて表示されないようにする必要があります。組織の ID プロバイダ用に Google Cloud で Workforce プールを設定している場合は、Gemini Enterprise でその Workforce プールを指定することもできます。そうすれば、社員がアプリから検索したときに、BigQuery でその社員のアカウントからアクセス可能なドキュメントのみが検索結果に表示されるようになります。

アクセス制御を有効にするのは 1 回限りの手順です。BigQuery または Cloud Storage のデータソースにアクセス制御を適用するには、構造化データや非構造化データなどのデータ型に応じて、次の手順を行います。

Cloud Storage の非構造化データ

Cloud Storage の非構造化データ用のデータストアを設定する場合は、ACL メタデータをアップロードし、データストアをアクセス制御付きとして設定する必要があります。

  1. データを準備する際は、acl_info フィールドを使用して、メタデータに ACL 情報を含めます。例:

    {
       "id": "<your-id>",
       "jsonData": "<JSON string>",
       "content": {
         "mimeType": "<application/pdf or text/html>",
         "uri": "gs://<your-gcs-bucket>/directory/filename.pdf"
       },
       "acl_info": {
         "readers": [
           {
             "principals": [
               { "group_id": "group_1" },
               { "user_id": "user_1" }
             ]
           }
         ]
       }
     }
    

    メタデータを含む非構造化データの詳細については、取り込むデータを準備するの非構造化データのセクションをご覧ください。

  2. ファーストパーティ データストアを作成するで説明されているデータストアの作成手順を行う際に、コンソールまたは API を使用して次の操作を行うと、アクセス制御を有効にできます。

    • コンソール: データストアを作成するときに、データストアの作成時に [このデータストアはアクセス制御情報を含む] を選択します。
    • API: データストアを作成するときに、JSON ペイロードに "aclEnabled": "true" フィールドを含めます。
  3. ファーストパーティ データストアを作成するで説明されているデータ インポートの手順を行う際に、次の操作を行います。

    • 非構造化データと同じバケットから ACL 情報を含むメタデータをアップロードする
    • API を使用している場合は、GcsSource.dataSchemadocument に設定する

Cloud Storage の構造化データ

Cloud Storage の構造化データ用のデータストアを設定する場合は、ACL メタデータをアップロードし、データストアをアクセス制御付きとして設定する必要があります。

  1. データを準備する際は、acl_info フィールドを使用して、メタデータに ACL 情報を含めます。次に例を示します。

    {
       "id": "<your-id>",
       "jsonData": "<JSON string>",
       "acl_info": {
         "readers": [
           {
             "principals": [
               { "group_id": "group_1" },
               { "user_id": "user_1" }
             ]
           }
         ]
       }
     }
    
  2. ファーストパーティ データストアを作成するで説明されているデータストアの作成手順を行う際に、コンソールまたは API を使用して次の操作を行うと、アクセス制御を有効にできます。

    • コンソール: データストアを作成するときに、データストアの作成時に [このデータストアはアクセス制御情報を含む] を選択します。
    • API: データストアを作成するときに、JSON ペイロードに "aclEnabled": "true" フィールドを含めます。
  3. ファーストパーティ データストアを作成するで説明されているデータ インポートの手順を行う際に、次の操作を行います。

    • 構造化データと同じバケットから ACL 情報を含むメタデータをアップロードする
    • API を使用している場合は、GcsSource.dataSchemadocument に設定する

BigQuery の非構造化データ

BigQuery の非構造化データ用のデータストアを設定する場合は、データストアをアクセス制御付きとして設定し、Gemini Enterprise 用に事前定義されたスキーマを使用して ACL メタデータを指定する必要があります。

  1. データを準備するときに、次のスキーマを指定します。カスタム スキーマは使用しないでください。

    [
      {
        "name": "id",
        "mode": "REQUIRED",
        "type": "STRING",
        "fields": []
      },
      {
        "name": "jsonData",
        "mode": "NULLABLE",
        "type": "STRING",
        "fields": []
      },
      {
        "name": "content",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "mimeType",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "uri",
            "type": "STRING",
            "mode": "NULLABLE"
          }
        ]
      },
      {
        "name": "acl_info",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "readers",
            "type": "RECORD",
            "mode": "REPEATED",
            "fields": [
              {
                "name": "principals",
                "type": "RECORD",
                "mode": "REPEATED",
                "fields": [
                  {
                    "name": "user_id",
                    "type": "STRING",
                    "mode": "NULLABLE"
                  },
                  {
                    "name": "group_id",
                    "type": "STRING",
                    "mode": "NULLABLE"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
    
  2. ACL メタデータを BigQuery テーブルの列として含めます。

  3. ファーストパーティ データストアを作成するの手順を行う際に、コンソールまたは API を使用してアクセス制御を有効にします。

    • コンソール: データストアを作成するときに、データストアの作成時に [このデータストアはアクセス制御情報を含む] を選択します。
    • API: データストアを作成するときに、JSON ペイロードに "aclEnabled": "true" フィールドを含めます。
  4. ファーストパーティ データストアを作成するで説明されているデータ インポートの手順を行う際に、API を使用する場合は、BigQuerySource.dataSchemadocument に設定します。

BigQuery の構造化データ

BigQuery の構造化データ用のデータストアを設定する場合は、データストアをアクセス制御付きとして設定し、Gemini Enterprise 用に事前定義されたスキーマを使用して ACL メタデータを指定する必要があります。

  1. データを準備するときに、次のスキーマを指定します。カスタム スキーマは使用しないでください。

    [
      {
        "name": "id",
        "mode": "REQUIRED",
        "type": "STRING",
        "fields": []
      },
      {
        "name": "jsonData",
        "mode": "NULLABLE",
        "type": "STRING",
        "fields": []
      },
      {
        "name": "acl_info",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "readers",
            "type": "RECORD",
            "mode": "REPEATED",
            "fields": [
              {
                "name": "principals",
                "type": "RECORD",
                "mode": "REPEATED",
                "fields": [
                  {
                    "name": "user_id",
                    "type": "STRING",
                    "mode": "NULLABLE"
                  },
                  {
                    "name": "group_id",
                    "type": "STRING",
                    "mode": "NULLABLE"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
    
  2. ACL メタデータを BigQuery テーブルの列として含めます。

  3. ファーストパーティ データストアを作成するの手順を行う際に、コンソールまたは API を使用してアクセス制御を有効にします。

    • コンソール: データストアを作成するときに、データストアの作成時に [このデータストアはアクセス制御情報を含む] を選択します。
    • API: データストアを作成するときに、JSON ペイロードに "aclEnabled": "true" フィールドを含めます。
  4. ファーストパーティ データストアを作成するで説明されているデータ インポートの手順を行う際に、次の操作を行います。

    • コンソールを使用している場合は、アップロードするデータの種類を指定するときに、[メタデータを含む構造化データの JSONL] を選択します。
    • API を使用している場合は、BigQuerySource.dataSchemadocument に設定します。