Configurare controlli di accesso granulari per app e datastore

Questa pagina spiega come un amministratore di Gemini Enterprise può configurare autorizzazioni IAM granulari a livello di risorsa per limitare l'accesso a specifici data store e app Gemini Enterprise utilizzando la consoleGoogle Cloud , Google Cloud CLI o l'API REST.

Se devi solo limitare l'accesso degli utenti finali a livello di app senza configurare le autorizzazioni del datastore o i ruoli personalizzati a livello di progetto, consulta Configurare i controlli dell'accesso per le app.

Panoramica

Per impostazione predefinita, le autorizzazioni IAM concesse a livello di progetto Google Cloudsi applicano a tutte le app e a tutti i datastore Gemini Enterprise nel progetto. Se la tua organizzazione deve limitare gli utenti a specifiche app o data store all'interno di un singolo progetto, puoi utilizzare i controlli dell'accesso a livello di risorsa.

I controlli dell'accesso a livello di risorsa consentono agli amministratori di:

  • Concedi agli utenti l'accesso ad app specifiche e ad archivi di dati collegati senza esporre altre app nello stesso progetto.
  • Delega l'amministrazione delle app o il monitoraggio di sola lettura per app specifiche senza concedere ampi diritti amministrativi a livello di progetto.
  • Applica in modo forzato i confini dei dati e le norme di conformità dell'organizzazione.

Come funzionano i controlli di accesso

Per concedere l'accesso a livello di risorsa, gli amministratori devono configurare due associazioni di ruoli per ogni utente o gruppo di destinazione. Le autorizzazioni vengono valutate in modo indipendente: per ricevere risposte da un datastore in un'app, a un utente devono essere concesse autorizzazioni sia per l'app di destinazione sia per il datastore di destinazione.

Livello di associazione del ruolo Tipo di ruolo Scopo, ambito ed esempi di ruoli
Livello di progetto Ruolo personalizzato

I ruoli personalizzati che crei in questa guida concedono le autorizzazioni necessarie all'utente per autenticarsi o caricare le pagine delle schede della console nel progetto senza esporre contenuti specifici di app o datastore.

Ruoli di esempio:

Livello risorsa Ruolo predefinito

I ruoli predefiniti che assegni alla risorsa app o datastore concedono autorizzazioni operative, come la chat, la configurazione delle impostazioni o la visualizzazione delle analisi, esclusivamente per quella risorsa.

Ruoli di esempio:

Scenario di esempio

Considera un progetto Google Cloud in Cymbal denominato cymbal-ai-project contenente due app e più datastore:

Scenario di esempio: limitazione dell'accesso a app e datastore
Contesto Un progetto Google Cloud in Cymbal denominato cymbal-ai-project contiene due app:
  • App finanziaria Cymbal, che è connessa a due datastore: il datastore General Finance e il datastore Confidential Payroll.
  • App Cymbal HR, che è connessa al datastore Cymbal HR.
Obiettivo Concedi ad Alex (alex@cymbal.com) l'accesso per utilizzare l'app Cymbal Finance ed eseguire query solo nell'archivio dati General Finance, negando l'accesso all'archivio dati Confidential Payroll e all'app Cymbal HR.
Configurazioni richieste Segui questi passaggi per configurare i controlli dell'accesso:
  1. A livello di progetto: attiva il controllo dell'accesso all'app e al datastore su cymbal-ai-project e concedi ad Alex il ruolo customRestrictedEndUser nel progetto in modo che il browser possa autenticarsi con il servizio.
  2. Livello di risorsa: assegna ad Alex il ruolo Utente Gemini Enterprise (roles/discoveryengine.agentspaceUser) solo per l'app Cymbal Finance e il datastore General Finance.
Risultato Quando Alex accede, può aprire l'app Cymbal Finance ed eseguire query nel datastore General Finance. Anche se l'datastore Paga riservata è collegato alla stessa app, Alex non può visualizzarlo o interrogarlo. Anche i tentativi di accedere all'app Cymbal HR o di eseguire query sul datastore Cymbal HR vengono negati.

Il seguente diagramma illustra il funzionamento combinato delle impostazioni a livello di progetto e delle autorizzazioni IAM indipendenti a livello di risorsa in questo scenario:

Diagramma della configurazione granulare dei criteri IAM in app e datastore.

Prima di iniziare

Abilitare il controllo dell'accesso alle app e ai datastore

Prima di poter configurare autorizzazioni granulari per app e datastore o visualizzare la scheda Autorizzazioni utente nella console Google Cloud , abilita il controllo dell'accesso ad app e datastore nel tuo progetto utilizzando la console Google Cloud o l'API REST:

Console

Per abilitare controllo dell'accesso alle app e ai datastore nella console Google Cloud , segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Gemini Enterprise > Impostazioni.

    Vai alle impostazioni

  2. Seleziona la scheda Controllo dell'accesso alle risorse.

  3. Attiva il pulsante di attivazione/disattivazione Controllo dell'accesso alle risorse.

  4. Fai clic su Salva.

  5. Nella finestra di dialogo Attivare controllo dell'accesso alle risorse?, fai clic su Attiva.

REST

Per abilitare controllo dell'accesso all'app e al datastore utilizzando l'API REST, chiama il metodo projects.patch:

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "x-goog-user-project: PROJECT_ID" \
  "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID?updateMask=customer_provided_config.resource_access_control_config.data_store_access_control_enabled" \
  -d '{
    "customer_provided_config": {
      "resource_access_control_config": {
        "data_store_access_control_enabled": true
      }
    }
  }'

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
    • us per la multi-regione Stati Uniti
    • eu per la multiregione EU
    • global per la località Globale
    Per saperne di più, consulta Specifica una multi-regione per il datastore.

Creare ruoli personalizzati a livello di progetto

I ruoli personalizzati a livello di progetto concedono autorizzazioni senza esporre tutte le risorse del progetto. Devi creare ogni ruolo personalizzato una sola volta per Google Cloud progetto.

Creare un ruolo utente finale con accesso limitato personalizzato

Il ruolo customRestrictedEndUser concede le autorizzazioni a livello di progetto necessarie agli utenti finali per caricare l'endpoint di autorizzazione Gemini Enterprise e la configurazione degli strumenti per sviluppatori (discoveryengine.locations.buildAuthorizationUrl e discoveryengine.devToolsConfigs.get). Non concede l'accesso per ispezionare o interrogare app o datastore specifici.

Console

Per creare il ruolo personalizzato nella console Google Cloud :

  1. Nella console Google Cloud , vai alla pagina Ruoli.

    Vai a Ruoli.

  2. Selezionare il tuo progetto Google Cloud .

  3. Fai clic su + Crea ruolo personalizzato.

  4. Inserisci i dettagli del ruolo:

    • Titolo: Custom Gemini Enterprise Restricted End User
    • Descrizione: Base project-level permissions to access Gemini Enterprise apps
    • ID ruolo: customRestrictedEndUser
    • Fase di lancio del ruolo: seleziona Disponibilità generale.
  5. Fai clic su + Aggiungi autorizzazioni.

  6. Filtra e seleziona le seguenti autorizzazioni:

    • discoveryengine.devToolsConfigs.get
    • discoveryengine.locations.buildAuthorizationUrl
  7. Fai clic su Aggiungi.

  8. Fai clic su Crea.

gcloud

Per creare il ruolo personalizzato utilizzando Google Cloud CLI, segui questi passaggi:

  1. Esegui gcloud iam roles describe per verificare se il ruolo esiste nel tuo progetto:

    gcloud iam roles describe customRestrictedEndUser --project=PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

  2. Esegui gcloud iam roles create per creare il ruolo:

    gcloud iam roles create customRestrictedEndUser \
      --project=PROJECT_ID \
      --title="Custom Gemini Enterprise Restricted End User" \
      --description="Base project-level permissions to access Gemini Enterprise apps." \
      --stage=GA \
      --permissions=discoveryengine.devToolsConfigs.get,discoveryengine.locations.buildAuthorizationUrl
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

REST

Per creare il ruolo personalizzato utilizzando l'API REST, chiama il metodo roles.create:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "roleId": "customRestrictedEndUser",
    "role": {
      "title": "Custom Gemini Enterprise Restricted End User",
      "description": "Base project-level permissions to access Gemini Enterprise apps.",
      "stage": "GA",
      "includedPermissions": [
        "discoveryengine.devToolsConfigs.get",
        "discoveryengine.locations.buildAuthorizationUrl"
      ]
    }
  }' \
  "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles"

Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.

Creare un ruolo amministratore con limitazioni personalizzato

Il ruolo customRestrictedAdmin concede le autorizzazioni a livello di progetto necessarie per consentire ad amministratori e visualizzatori delegati di visualizzare gli elenchi di risorse e le barre laterali nella console Google Cloud senza concedere l'accesso per visualizzare o modificare contenuti specifici di app o datastore. Per delegare il controllo amministrativo su un'app o un datastore specifico, assegna questo ruolo personalizzato a livello di progetto, quindi assegna Amministratore Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) direttamente alla risorsa di destinazione.

Console

Per creare il ruolo personalizzato nella console Google Cloud :

  1. Nella console Google Cloud , vai alla pagina Ruoli.

    Vai a Ruoli.

  2. Selezionare il tuo progetto Google Cloud .

  3. Fai clic su + Crea ruolo.

  4. Inserisci i dettagli del ruolo:

    • Titolo: Custom Gemini Enterprise Restricted Admin
    • Descrizione: Base project-level permissions to list and view Gemini Enterprise configuration pages
    • ID ruolo: customRestrictedAdmin
    • Fase di lancio del ruolo: seleziona Disponibilità generale.
  5. Fai clic su + Aggiungi autorizzazioni.

  6. Filtra e seleziona le seguenti autorizzazioni:

    • discoveryengine.aclConfigs.get
    • discoveryengine.collections.list
    • discoveryengine.dataStores.list
    • discoveryengine.devToolsConfigs.get
    • discoveryengine.engines.list
    • discoveryengine.licenseConfigs.list
    • discoveryengine.locations.buildAuthorizationUrl
    • discoveryengine.locations.getConnectorSource
    • discoveryengine.locations.listConnectorSources
    • discoveryengine.projects.get
    • discoveryengine.userStores.listUserLicenses
    • resourcemanager.projects.get
  7. Fai clic su Aggiungi.

  8. Fai clic su Crea.

gcloud

Per creare il ruolo personalizzato utilizzando Google Cloud CLI, segui questi passaggi:

  1. Esegui gcloud iam roles describe per verificare se il ruolo esiste nel tuo progetto:

    gcloud iam roles describe customRestrictedAdmin --project=PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

  2. Esegui gcloud iam roles create per creare il ruolo:

    gcloud iam roles create customRestrictedAdmin \
      --project=PROJECT_ID \
      --title="Custom Gemini Enterprise Restricted Admin" \
      --description="Base project-level permissions to list and view Gemini Enterprise configuration pages." \
      --stage=GA \
      --permissions=discoveryengine.aclConfigs.get,discoveryengine.collections.list,discoveryengine.dataStores.list,discoveryengine.devToolsConfigs.get,discoveryengine.engines.list,discoveryengine.licenseConfigs.list,discoveryengine.locations.buildAuthorizationUrl,discoveryengine.locations.getConnectorSource,discoveryengine.locations.listConnectorSources,discoveryengine.projects.get,discoveryengine.userStores.listUserLicenses,resourcemanager.projects.get
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

REST

Per creare il ruolo personalizzato utilizzando l'API REST, chiama il metodo roles.create:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "roleId": "customRestrictedAdmin",
    "role": {
      "title": "Custom Gemini Enterprise Restricted Admin",
      "description": "Base project-level permissions to list and view Gemini Enterprise configuration pages.",
      "stage": "GA",
      "includedPermissions": [
        "discoveryengine.aclConfigs.get",
        "discoveryengine.collections.list",
        "discoveryengine.dataStores.list",
        "discoveryengine.devToolsConfigs.get",
        "discoveryengine.engines.list",
        "discoveryengine.licenseConfigs.list",
        "discoveryengine.locations.buildAuthorizationUrl",
        "discoveryengine.locations.getConnectorSource",
        "discoveryengine.locations.listConnectorSources",
        "discoveryengine.projects.get",
        "discoveryengine.userStores.listUserLicenses",
        "resourcemanager.projects.get"
      ]
    }
  }' \
  "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles"

Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.

Aggiornare un ruolo personalizzato esistente

Se nel tuo progetto esiste già un ruolo personalizzato e devi aggiungere autorizzazioni mancanti, aggiorna il ruolo:

Console

Per aggiornare un ruolo personalizzato nella console Google Cloud :

  1. Nella console Google Cloud , vai alla pagina Ruoli.

    Vai a Ruoli.

  2. Seleziona il progetto Google Cloud in cui hai creato il ruolo personalizzato.

  3. Seleziona la scheda Personalizzato o filtra l'elenco per individuare il tuo ruolo personalizzato (customRestrictedEndUser o customRestrictedAdmin).

  4. Fai clic sul nome del ruolo personalizzato.

  5. Fai clic su Modifica ruolo.

  6. Fai clic su + Aggiungi autorizzazioni.

  7. Cerca e seleziona le autorizzazioni da aggiungere, quindi fai clic su Aggiungi.

  8. Fai clic su Salva.

gcloud

Per aggiornare un ruolo personalizzato esistente utilizzando Google Cloud CLI, esegui gcloud iam roles update:

  • Per il ruolo utente finale con limitazioni, esegui questo comando:

    gcloud iam roles update customRestrictedEndUser \
      --project=PROJECT_ID \
      --add-permissions=discoveryengine.devToolsConfigs.get,discoveryengine.locations.buildAuthorizationUrl
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

  • Per il ruolo di amministratore con limitazioni, esegui questo comando:

    gcloud iam roles update customRestrictedAdmin \
      --project=PROJECT_ID \
      --add-permissions=discoveryengine.locations.buildAuthorizationUrl,discoveryengine.locations.listConnectorSources
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

REST

Per aggiornare un ruolo personalizzato utilizzando l'API REST, chiama il metodo roles.patch. Tieni presente che roles.patch sostituisce l'elenco includedPermissions. Specifica tutte le autorizzazioni che vuoi includere nel ruolo:

  • Per il ruolo utente finale con limitazioni, esegui questo comando:

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "includedPermissions": [
          "discoveryengine.devToolsConfigs.get",
          "discoveryengine.locations.buildAuthorizationUrl"
        ]
      }' \
      "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles/customRestrictedEndUser?updateMask=includedPermissions"
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

  • Per il ruolo di amministratore con limitazioni, esegui questo comando:

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "includedPermissions": [
          "discoveryengine.aclConfigs.get",
          "discoveryengine.collections.list",
          "discoveryengine.dataStores.list",
          "discoveryengine.devToolsConfigs.get",
          "discoveryengine.engines.list",
          "discoveryengine.licenseConfigs.list",
          "discoveryengine.locations.buildAuthorizationUrl",
          "discoveryengine.locations.getConnectorSource",
          "discoveryengine.locations.listConnectorSources",
          "discoveryengine.projects.get",
          "discoveryengine.userStores.listUserLicenses",
          "resourcemanager.projects.get"
        ]
      }' \
      "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles/customRestrictedAdmin?updateMask=includedPermissions"
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

Assegnare un ruolo personalizzato a livello di progetto

Assegna i ruoli di progetto personalizzati a un utente o un gruppo di destinazione.

Console

Per assegnare il ruolo personalizzato utilizzando la console Google Cloud , segui questi passaggi:

  1. Nella console Google Cloud vai alla pagina IAM.

    Vai a IAM

  2. Seleziona il progetto Google Cloud in cui hai creato il ruolo personalizzato.

  3. Fai clic su Concedi l'accesso per aggiungere una nuova entità o modificarne una esistente.

  4. In Nuove entità, inserisci l'indirizzo email dell'utente o dell'email di gruppo.

  5. Seleziona il ruolo personalizzato creato per la tua persona, ad esempio uno dei seguenti:

    • Custom Gemini Enterprise Restricted End User
    • Amministratore Gemini Enterprise Restricted personalizzato
  6. Fai clic su Salva.

gcloud

Per assegnare il ruolo personalizzato utilizzando Google Cloud CLI, esegui questo comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="projects/PROJECT_ID/roles/CUSTOM_ROLE_ID"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • CUSTOM_ROLE_ID: l'ID del ruolo personalizzato che vuoi assegnare: customRestrictedEndUser o customRestrictedAdmin.
  • USER_EMAIL: l'indirizzo email dell'utente o del gruppo.

REST

Per assegnare il ruolo personalizzato utilizzando l'API Cloud Resource Manager, completa i seguenti passaggi utilizzando un pattern di lettura-modifica-scrittura:

  1. Recupera la policy IAM corrente utilizzando il metodo getIamPolicy per recuperare la policy corrente e il relativo etag:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

  2. Imposta la policy IAM aggiornata utilizzando il metodo setIamPolicy con il payload della policy aggiornata:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "projects/PROJECT_ID/roles/CUSTOM_ROLE_ID",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    Sostituisci quanto segue:

    • ETAG: il valore etag ottenuto come risposta quando hai utilizzato il metodo getIamPolicy.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: i binding di ruoli ed entità esistenti restituiti dal metodo getIamPolicy che vuoi conservare.
    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • CUSTOM_ROLE_ID: l'ID del ruolo personalizzato a livello di progetto che vuoi assegnare. Specifica una delle seguenti opzioni:
      • customRestrictedEndUser: concede al progetto le autorizzazioni per consentire agli utenti finali di autenticarsi e accedere alle app.
      • customRestrictedAdmin: concede agli amministratori le autorizzazioni del progetto per visualizzare gli elenchi di risorse nella console Google Cloud .
    • USER_EMAIL: l'indirizzo email dell'utente o del gruppo.

Configurare le autorizzazioni app

Concedi autorizzazioni a livello di risorsa per la risorsa app di destinazione utilizzando la consoleGoogle Cloud o l'API REST.

Se vuoi assegnare un ruolo personalizzato anziché un ruolo predefinito nel criterio IAM a livello di app, assicurati che il ruolo personalizzato includa tutte le autorizzazioni del ruolo predefinito corrispondente, ad esempio Gemini Enterprise User (roles/discoveryengine.agentspaceUser) o Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin).

Console

Per configurare le autorizzazioni dell'app nella console Google Cloud , segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Gemini Enterprise > App.

    Vai ad App

  2. Seleziona l'app di destinazione.

  3. Fai clic su Autorizzazioni utente e poi su Aggiungi utente.

  4. Seleziona il ruolo per l'utente o il gruppo:

  5. Fai clic su Salva.

REST

Per configurare le autorizzazioni dell'app utilizzando l'API REST, completa i seguenti passaggi utilizzando un pattern di lettura-modifica-scrittura:

  1. Recupera la policy IAM corrente utilizzando il metodo getIamPolicy per recuperare la policy corrente e il relativo etag:

    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"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto.
    • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
      • us per la multi-regione Stati Uniti
      • eu per la multiregione EU
      • global per la località Globale
      Per saperne di più, consulta Specifica una multi-regione per il datastore.
    • LOCATION: la multiregione del datastore: global, us o eu.
    • APP_ID: l'ID dell'app che vuoi configurare.
  2. Imposta la policy IAM aggiornata utilizzando il metodo setIamPolicy con il payload della policy aggiornata:

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

    Sostituisci quanto segue:

    • ETAG: il valore etag ottenuto come risposta quando hai utilizzato il metodo getIamPolicy.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: i binding di ruoli ed entità esistenti restituiti dal metodo getIamPolicy che vuoi conservare.
    • USER_EMAIL: l'indirizzo email dell'utente o del gruppo (ad esempio alex@example.com).
      • Per concedere l'accesso, aggiungi le email degli utenti all'array members, ognuna con il prefisso user:. Evita spazi aggiuntivi prima o dopo l'indirizzo email.
      • Per revocare l'accesso, rimuovi l'indirizzo email dell'utente dall'array members.
    • PREDEFINED_ROLE: il ruolo predefinito che vuoi assegnare all'app. Ad esempio, Gemini Enterprise User (roles/discoveryengine.agentspaceUser) per gli utenti finali, Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin) per gli amministratori o Gemini Enterprise Viewer (roles/discoveryengine.agentspaceViewer) per i visualizzatori. Per ulteriori informazioni, vedi Ruoli predefiniti.
    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
      • us per la multi-regione Stati Uniti
      • eu per la multiregione EU
      • global per la località Globale
      Per saperne di più, consulta Specifica una multi-regione per il datastore.
    • LOCATION: la multiregione del datastore: global, us o eu.
    • APP_ID: l'ID dell'app che vuoi configurare.

Configura le autorizzazioni del datastore

Per configurare le autorizzazioni dei dati, concedi autorizzazioni a livello di risorsa nell&#39datastorei di destinazione utilizzando la console Google Cloud o l'API REST. Gli utenti finali possono connettersi ed eseguire query solo sui datastore a cui sono state concesse esplicitamente le autorizzazioni.

Se vuoi assegnare un ruolo personalizzato anziché un ruolo predefinito nel criterio IAM del datastore, assicurati che il ruolo personalizzato includa tutte le autorizzazioni del ruolo predefinito corrispondente, ad esempio Utente Gemini Enterprise (roles/discoveryengine.agentspaceUser) o Amministratore Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).

Per i connettori di terze parti che applicano le autorizzazioni dei documenti degli utenti finali, l'accesso degli utenti finali ai singoli documenti continua a essere regolato dagli elenchi di controllo dell'accesso dell'accesso (ACL) sincronizzati dal sistema di origine (la concessione dell'accesso IAM non aggira gli ACL di origine).

Per trovare datastore, raccolte e ID entità, vedi Recuperare i dettagli di datastore ed entità.

Console

Per configurare le autorizzazioni del datastore nella console Google Cloud , segui questi passaggi. Le autorizzazioni assegnate a un datastore nella console Google Cloud vengono propagate automaticamente a tutte le entità secondarie sottostanti:

  1. Nella console Google Cloud , vai alla pagina Gemini Enterprise > Data Stores.

    Vai alla pagina Datastore

  2. Fai clic sul nome del tuo datastore.

  3. Fai clic su Autorizzazioni utente > Aggiungi utente.

  4. Seleziona il ruolo per l'utente o il gruppo:

  5. Fai clic su Salva.

REST

Per configurare le autorizzazioni del datastore utilizzando l'API REST, espandi la sezione che corrisponde alla configurazione del datastore:

Datastore con entità

Utilizza questa opzione per i connettori di terze parti che contengono più tipi di entità, come Jira, Salesforce, Confluence o SharePoint Online. Quando utilizzi l'API REST, le autorizzazioni non vengono automaticamente trasferite dalla raccolta di connettori principale alle entità secondarie. Devi concedere le stesse autorizzazioni sia per la risorsa raccolta padre sia per tutti gli archivi di dati delle entità sottostanti (non configurare le autorizzazioni solo per un sottoinsieme di entità).

Segui questi passaggi per configurare le autorizzazioni per i datastore con entità:

  1. Ottieni la policy IAM attuale per la raccolta del connettore dati:

    Chiama getIamPolicy per recuperare la polizza attuale e il relativo etag:

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
      • us per la multi-regione Stati Uniti
      • eu per la multiregione EU
      • global per la località Globale
      Per saperne di più, consulta Specifica una multi-regione per il datastore.
    • LOCATION: la regione multipla del tuo datastore: global, us o eu.
    • COLLECTION_ID: l'ID raccolta del connettore dati. Per maggiori informazioni, consulta Visualizzare i dettagli di datastore ed entità.
  2. Imposta la policy IAM aggiornata sulla raccolta del connettore dati:

    Chiama setIamPolicy, inclusi etag e l'associazione di ruolo:

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

    Sostituisci quanto segue:

    • ETAG: il valore etag che hai ottenuto come risposta quando hai utilizzato il metodo getIamPolicy nel passaggio 1.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: le associazioni di ruolo ed entità esistenti restituite dal metodo getIamPolicy che vuoi conservare.
    • USER_EMAIL: l'indirizzo email dell'utente o del gruppo.
    • PREDEFINED_ROLE: il ruolo predefinito che vuoi assegnare alla raccolta. Ad esempio, Gemini Enterprise User (roles/discoveryengine.agentspaceUser) per gli utenti finali, Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin) per gli amministratori o Gemini Enterprise Viewer (roles/discoveryengine.agentspaceViewer) per i visualizzatori. Per saperne di più, consulta Ruoli predefiniti.
    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
      • us per la multi-regione Stati Uniti
      • eu per la multiregione EU
      • global per la località Globale
      Per saperne di più, consulta Specifica una multi-regione per il datastore.
    • LOCATION: la regione multipla del tuo datastore: global, us o eu.
    • COLLECTION_ID: l'ID raccolta del connettore dati.
  3. Ottieni il criterio IAM attuale per un datastore di entità:

    In Gemini Enterprise, i datastore delle entità secondarie si trovano in default_collection e hanno come prefisso l'ID della raccolta di connettori. Chiama getIamPolicy sul datastore delle entità in default_collection:

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
      • us per la multi-regione Stati Uniti
      • eu per la multiregione EU
      • global per la località Globale
      Per saperne di più, consulta Specifica una multi-regione per il datastore.
    • LOCATION: la regione multipla del tuo datastore: global, us o eu.
    • DATA_STORE_ENTITY_ID: l'ID del datastore delle entità (ad esempio, DataConnector3_entityA). Per maggiori informazioni, consulta Recuperare i dettagli del datastore e delle entità.
  4. Imposta la policy IAM aggiornata sul datastore dell'entità:

    Chiama setIamPolicy sul datastore delle entità, incluso etag:

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

    Sostituisci quanto segue:

    • ETAG: il valore etag ottenuto come risposta quando hai utilizzato il metodo getIamPolicy nel passaggio 3.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: le associazioni di ruolo ed entità esistenti restituite dal metodo getIamPolicy che vuoi conservare.
    • USER_EMAIL: l'indirizzo email dell'utente o del gruppo.
    • PREDEFINED_ROLE: il ruolo predefinito che vuoi assegnare al datastore di entità. Ad esempio, Gemini Enterprise User (roles/discoveryengine.agentspaceUser) per gli utenti finali, Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin) per gli amministratori o Gemini Enterprise Viewer (roles/discoveryengine.agentspaceViewer) per i visualizzatori. Per saperne di più, consulta Ruoli predefiniti.
    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
      • us per la multi-regione Stati Uniti
      • eu per la multiregione EU
      • global per la località Globale
      Per saperne di più, consulta Specifica una multi-regione per il datastore.
    • LOCATION: la regione multipla del tuo datastore: global, us o eu.
    • DATA_STORE_ENTITY_ID: l'ID del datastore dell'entità.

Ripeti i passaggi 3 e 4 per ogni datastore di entità nel connettore dati. Se in un secondo momento configuri il connettore per sincronizzare tipi di entità aggiuntivi, configura i criteri IAM su ogni datastore delle entità appena creato.

Datastore senza entità

Utilizza questa opzione per i datastore autonomi, come Cloud Storage, BigQuery o le origini dati che non contengono entità. Imposta le autorizzazioni direttamente sulla singola risorsa del datastore in default_collection.

Segui questi passaggi per configurare le autorizzazioni per i datastore senza entità:

  1. Recupera la policy IAM corrente per il datastore:

    Chiama getIamPolicy per recuperare la polizza attuale e il relativo etag:

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
      • us per la multi-regione Stati Uniti
      • eu per la multiregione EU
      • global per la località Globale
      Per saperne di più, consulta Specifica una multi-regione per il datastore.
    • LOCATION: la regione multipla del tuo datastore: global, us o eu.
    • DATA_STORE_ID: l'ID del datastore. Per maggiori informazioni, consulta Visualizzare i dettagli di datastore ed entità.
  2. Imposta la policy IAM aggiornata sul datastore:

    Chiama setIamPolicy, inclusi etag e l'associazione di ruolo:

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

    Sostituisci quanto segue:

    • ETAG: il valore etag che hai ottenuto come risposta quando hai utilizzato il metodo getIamPolicy nel passaggio 1.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: le associazioni di ruolo ed entità esistenti restituite dal metodo getIamPolicy che vuoi conservare.
    • USER_EMAIL: l'indirizzo email dell'utente o del gruppo.
    • PREDEFINED_ROLE: il ruolo predefinito che vuoi assegnare al datastore. Ad esempio, Gemini Enterprise User (roles/discoveryengine.agentspaceUser) per gli utenti finali, Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin) per gli amministratori o Gemini Enterprise Viewer (roles/discoveryengine.agentspaceViewer) per i visualizzatori. Per saperne di più, consulta Ruoli predefiniti.
    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
      • us per la multi-regione Stati Uniti
      • eu per la multiregione EU
      • global per la località Globale
      Per saperne di più, consulta Specifica una multi-regione per il datastore.
    • LOCATION: la regione multipla del tuo datastore: global, us o eu.
    • DATA_STORE_ID: l'ID del datastore.

Concedere l'accesso a Gemini Notebook Enterprise e alle funzionalità degli strumenti per sviluppatori di AI

Gli utenti con limitazioni a cui è assegnato customRestrictedEndUser a livello di progetto perdono l'accesso a funzionalità come gli strumenti per sviluppatori AI e Gemini Notebook Enterprise perché il loro ruolo di progetto contiene solo autorizzazioni di base.

La concessione del ruolo completo Utente Gemini Enterprise (roles/discoveryengine.agentspaceUser) a livello di progetto esegue l'override dell'isolamento ed espone tutte le app e tutti i datastore nel progetto. Gli amministratori possono invece concedere ruoli specifici per funzionalità a livello di progetto.

Concedere l'accesso a Gemini Notebook Enterprise

Concedi il ruolo Utente NotebookLM Cloud (roles/discoveryengine.notebookLmUser) per consentire agli utenti con limitazioni di creare e utilizzare notebook senza esporre app o datastore:

Console

Per concedere l'accesso utilizzando la console Google Cloud :

  1. Nella console Google Cloud vai alla pagina IAM.

    Vai a IAM

  2. Selezionare il tuo progetto Google Cloud .

  3. Individua l'utente o il gruppo nell'elenco delle autorizzazioni e fai clic su Modifica entità. In alternativa, fai clic su Concedi l'accesso per aggiungere un nuovo utente.

  4. Nella sezione Assegna ruoli, fai clic su Aggiungi un altro ruolo.

  5. Nel campo Seleziona un ruolo, cerca e seleziona Utente Cloud NotebookLM (roles/discoveryengine.notebookLmUser).

  6. Fai clic su Salva.

gcloud

Per concedere l'accesso utilizzando Google Cloud CLI, esegui questo comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/discoveryengine.notebookLmUser"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • USER_EMAIL: l'indirizzo email dell'utente o del gruppo.

REST

Per concedere l'accesso utilizzando l'API REST, aggiorna la policy IAM del progetto utilizzando il metodo setIamPolicy:

  1. Recupera la policy IAM corrente utilizzando il metodo getIamPolicy per recuperare la policy corrente e il relativo etag:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

  2. Imposta la policy IAM aggiornata utilizzando il metodo setIamPolicy con il ruolo roles/discoveryengine.notebookLmUser:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "roles/discoveryengine.notebookLmUser",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    Sostituisci quanto segue:

    • ETAG: il valore etag dalla risposta getIamPolicy.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: i binding di ruoli ed entità esistenti restituiti dal metodo getIamPolicy che vuoi conservare.
    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • USER_EMAIL: l'indirizzo email dell'utente o del gruppo.

Concedere l'accesso agli strumenti per sviluppatori AI

Concedi i ruoli Utente Gemini in Google Cloud (roles/cloudaicompanion.user) e Ruolo utente per l'API Business AI Code (roles/businessaicode.user) per attivare gli strumenti per sviluppatori AI senza esporre le app o gli archivi di dati di Gemini Enterprise:

Console

Per concedere l'accesso utilizzando la console Google Cloud :

  1. Nella console Google Cloud vai alla pagina IAM.

    Vai a IAM

  2. Selezionare il tuo progetto Google Cloud .

  3. Individua l'utente o il gruppo nell'elenco delle autorizzazioni e fai clic su Modifica entità. In alternativa, fai clic su Concedi l'accesso per aggiungere un nuovo utente.

  4. Nella sezione Assegna ruoli, assegna ciascuno dei seguenti ruoli:

    • Gemini for Google Cloud User (roles/cloudaicompanion.user)
    • Ruolo utente per l'API Business AI Code (roles/businessaicode.user)
  5. Fai clic su Salva.

gcloud

Per concedere l'accesso utilizzando Google Cloud CLI, esegui i seguenti comandi:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/cloudaicompanion.user"

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/businessaicode.user"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • USER_EMAIL: l'indirizzo email dell'utente o del gruppo.

REST

Per concedere l'accesso utilizzando l'API REST, aggiorna la policy IAM del progetto utilizzando il metodo setIamPolicy:

  1. Recupera la policy IAM corrente utilizzando il metodo getIamPolicy per recuperare la policy corrente e il relativo etag:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    Sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .

  2. Imposta la policy IAM aggiornata utilizzando il metodo setIamPolicy con i ruoli roles/cloudaicompanion.user e roles/businessaicode.user:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "roles/cloudaicompanion.user",
              "members": [
                "user:USER_EMAIL"
              ]
            },
            {
              "role": "roles/businessaicode.user",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    Sostituisci quanto segue:

    • ETAG: il valore etag dalla risposta getIamPolicy.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: i binding di ruoli ed entità esistenti restituiti dal metodo getIamPolicy che vuoi conservare.
    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • USER_EMAIL: l'indirizzo email dell'utente o del gruppo.

Passaggi successivi

Se vuoi eliminare un'app con una policy IAM, puoi rimuovere gli utenti dalla policy prima di eliminare l'app. Per saperne di più, consulta Best practice per l'eliminazione di un'app con una policy IAM.