Configure grounding for Gemini Cloud Assist

This document describes how to configure grounding for Gemini Cloud Assist by using the Google Cloud console or an API.

Available grounding types include:

  • Grounding with Google Search (Recommended): Instructs Gemini Cloud Assist to use Google Search for the most comprehensive and up-to-date responses. Note that certain offerings like Data Residency, Access Transparency, and Customer-Managed Encryption Keys (CMEK) are not supported with this option. For more details, see Grounding with Google Search.

  • Web Grounding for Enterprise: Leverages a restricted subset of web content. While this may lead to lower quality responses compared to Grounding with Google Search, it is the preferred option for highly-regulated industries (such as Finance, Healthcare, and the Public sector) that require strict Data Residency compliance. For more details, see Web Grounding for Enterprise.

By default, Gemini Cloud Assist uses Grounding with Google Search provided by Vertex AI search grounding to improve the quality of its responses to your prompts. The use of Grounding with Google Search involves special data handling for your prompts and responses, as described in the Google Cloud Service terms.

Before you begin

  • Verify your Google Cloud project is attached to a billing account.

Verify IAM permissions

To get the permissions that you need to configure grounding for Gemini Cloud Assist, ask your administrator to grant you the Gemini for Google Cloud Settings Admin (roles/cloudaicompanion.settingsAdmin) IAM role on your project. This predefined role contains the permissions required to manage all Gemini for Google Cloud administrator settings.

Alternatively,update any custom IAM roles with specific Identity and Access Management (IAM) permissions, which are detailed in the following sections.

Configure grounding for Gemini Cloud Assist

Select one of the following options:

Console

  1. Verify that you have the following Identity and Access Management (IAM) permissions on the project that owns the subscription:

    • instance.queryEffectiveSetting
    • instance.queryEffectiveSettingBindings
    • geminiGcpEnablementSettings.create
    • geminiGcpEnablementSettings.get
    • geminiGcpEnablementSettings.update
    • settingBindings.geminiGcpEnablementSettingsGet
    • settingBindings.geminiGcpEnablementSettingsUpdate
    • settingBindings.geminiGcpEnablementSettingsCreate
    • settingBindings.geminiGcpEnablementSettingsUse
  2. In the Google Cloud console, go to Gemini Cloud Assist, and then click Settings.

    Go to Settings

  3. Select the grounding option that you want to use.

  4. Click Save.

API

To configure grounding for Gemini Cloud Assist using the API, you first create a geminiGcpEnablementSettings resource to define the grounding type. Then, you create a settingBindings resource, which is a child of the setting you created, to bind the setting to a project.

  1. Verify that you have the following Identity and Access Management (IAM) permissions:

    • instance.queryEffectiveSetting
    • instance.queryEffectiveSettingBindings
    • geminiGcpEnablementSettings.create
    • geminiGcpEnablementSettings.get
    • geminiGcpEnablementSettings.update
    • settingBindings.geminiGcpEnablementSettingsGet
    • settingBindings.geminiGcpEnablementSettingsUpdate
    • settingBindings.geminiGcpEnablementSettingsCreate
    • settingBindings.geminiGcpEnablementSettingsUse
  2. Create the setting and a setting-specific value:

    1. Obtain an authentication token:

      TOKEN=$(gcloud auth print-access-token)
      

      For more information on authentication, see Authenticate for using REST.

    2. Run the following command to create the setting:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "webGroundingType": GROUNDING_TYPE
          }' \
        "https://cloudaicompanion.googleapis.com/v1/projects/PROJECT/locations/global/geminiGcpEnablementSettings?geminiGcpEnablementSettingId=GROUNDING_SETTING_ID"
      

      Replace the following:

      • PROJECT: the project ID.
      • GROUNDING_TYPE: the grounding type, which is either GROUNDING_WITH_GOOGLE_SEARCH or WEB_GROUNDING_FOR_ENTERPRISE.
      • GROUNDING_SETTING_ID: a unique setting name, such as gt1 for Grounding type.

      If the command succeeds, it returns a response body that shows the webGroundingType set to your selection:

      {
        "name": "projects/PROJECT/locations/global/geminiGcpEnablementSettings/GROUNDING_SETTING_ID",
        "createTime": "2025-01-23T15:22:49.717166932Z",
        "updateTime": "2025-01-23T15:22:49.717166932Z",
        "webGroundingType": GROUNDING_TYPE
      }
      
  3. Create the setting binding:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "target": "projects/PROJECT",
          "product": "GEMINI_CLOUD_ASSIST"
          }' \
        "https://cloudaicompanion.googleapis.com/v1/projects/PROJECT/locations/global/geminiGcpEnablementSettings/GROUNDING_SETTING_ID/settingBindings?settingBindingId=GROUNDING_BINDING_ID"
    

    Replace the following:

    • PROJECT: the project ID to which the setting should be applied.
    • GROUNDING_SETTING_ID: the GROUNDING_SETTING_ID that you specified when you created the setting.
    • GROUNDING_BINDING_ID: a unique ID for the setting binding resource, such as b1.

    If the command succeeds, it returns the operation metadata in the following format:

    {
      "name": "projects/<var>PROJECT</var>/locations/global/operations/operation-1737646069712-62c6140bb04bb-49261230-43701daf",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.cloudaicompanion.v1.OperationMetadata",
        "createTime": "2025-01-23T15:27:50.076075570Z",
        "target": "projects/<var>PROJECT</var>/locations/global/geminiGcpEnablementSettings/<var>GROUNDING_SETTING_ID</var>/settingBindings/<var>GROUNDING_BINDING_ID</var>",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

What's next