アプリのアクセス制御を構成する

このページでは、Gemini Enterprise の管理者が API を使用して個々の Gemini Enterprise アプリのきめ細かいアクセス制御を管理する方法について説明します。

デフォルトでは、IAM 権限はプロジェクト レベルで管理されることがよくあります。アプリレベルの IAM を使用すると、よりきめ細かい制御が可能になり、管理者は次の操作を行うことができます。

  • 同じ Google Cloud プロジェクト内の特定のアプリへのユーザー アクセスを制限します。
  • Gemini Enterprise のデプロイで、組織のニーズとデータサイロに合わせて権限を調整します。

たとえば、人事アプリと全社アプリがある組織を考えてみましょう。プロジェクト レベルの権限を持つ人事チームのメンバーは、両方のアプリにアクセスできます。一方、アプリレベルの IAM ポリシーを使用すると、営業チームのメンバーに会社全体のアプリへのアクセス権のみを付与し、人事アプリへのアクセスを禁止できます。

アプリレベルの IAM ポリシーの例の図。

始める前に

アプリの IAM ポリシーを管理する

Gemini Enterprise アプリへのアクセスを管理するには、getIamPolicysetIamPolicy の API メソッドを使用します。

次の手順では、現在のポリシーを取得し、ユーザー アクセス権を付与または取り消すように更新する方法について説明します。

アプリの IAM ポリシーを取得する

getIamPolicy メソッドを使用して、アプリの現在の IAM ポリシーを取得します。現在の権限が上書きされないように、まず既存のポリシーを取得することをおすすめします。

REST

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:getIamPolicy"

次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクトの ID。
  • ENDPOINT_LOCATION: API リクエストのマルチリージョン。次のいずれかの値を指定します。
    • 米国のマルチリージョンの場合は us
    • EU のマルチリージョンの場合は eu
    • グローバル ロケーションの場合は global
    詳細については、データストアのマルチリージョンを指定するをご覧ください。
  • LOCATION: データストアのマルチリージョン(globaluseu
  • APP_ID: 構成するアプリの ID。

アプリの IAM ポリシーを更新する

アプリに対するユーザー アクセス権を付与または取り消すには、setIamPolicy メソッドを使用してアプリの IAM ポリシーを更新します。

IAM ポリシーは、Gemini Enterprise ユーザーroles/discoveryengine.agentspaceUser)ロールを使用して、ユーザーにアプリへの直接アクセス権を付与します。

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
      "policy": {
         "etag": "ETAG",
         "bindings": [
          {
            "role": "roles/discoveryengine.agentspaceUser",
            "members": [
              "user:USER_EMAIL_1",
              "user:USER_EMAIL_2"
            ]
          }
        ]
      }
    }' \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:setIamPolicy"

次のように置き換えます。

  • ETAG: getIamPolicy メソッドを使用したときにレスポンスとして取得した etag 値。

  • USER_EMAIL_1USER_EMAIL_2: 1 つ以上のユーザーのメールアドレス。

    • アクセス権を付与するには、members 配列にユーザーのメールアドレスを追加します。各メールアドレスの先頭には user を付けます。

    • アクセス権を取り消すには、members 配列からユーザーのメールアドレスを削除します。

  • PROJECT_ID: 実際のプロジェクトの ID。

  • ENDPOINT_LOCATION: API リクエストのマルチリージョン。次のいずれかの値を指定します。

    • 米国のマルチリージョンの場合は us
    • EU のマルチリージョンの場合は eu
    • グローバル ロケーションの場合は global
    詳細については、データストアのマルチリージョンを指定するをご覧ください。

  • LOCATION: データストアのマルチリージョン(globaluseu)。

  • APP_ID: 構成するアプリの ID。

次のステップ

IAM ポリシーを含むアプリを削除する場合は、アプリを削除する前にポリシーからユーザーを削除できます。詳細については、IAM ポリシーを含むアプリを削除するためのベスト プラクティスをご覧ください。