Questa pagina spiega come un amministratore di Gemini Enterprise può utilizzare l'API per gestire il controllo dell'accesso granulare per le singole app Gemini Enterprise.
Se devi configurare controlli dell'accesso granulari a livello di risorsa sia per le app sia per i datastore, consulta Configurare controlli dell'accesso granulari per app e datastore.
Per impostazione predefinita, le autorizzazioni IAM vengono spesso gestite a livello di progetto. IAM a livello di app consente un controllo più granulare, consentendo agli amministratori di:
- Limitare l'accesso degli utenti ad app specifiche all'interno dello stesso Google Cloud progetto.
- Allineare le autorizzazioni alle esigenze organizzative e ai silos di dati per le implementazioni di Gemini Enterprise.
Ad esempio, considera un'organizzazione con un'app RU e un'app a livello aziendale. Un membro del team RU con autorizzazioni a livello di progetto può accedere a entrambe le app. Al contrario, utilizzando una policy IAM a livello di app, puoi concedere a un membro del team di vendita l'accesso solo all'app a livello aziendale, impedendogli di accedere all'app RU.

Prima di iniziare
Verifica di avere il ruolo Gemini Enterprise Admin (
roles/discoveryengine.agentspaceAdmin).Verifica che tutti gli utenti di Gemini Enterprise abbiano una licenza valida e che sia stato concesso loro il ruolo Gemini Enterprise Restricted User (
roles/discoveryengine.agentspaceRestrictedUser) a livello di progetto. Per istruzioni, consulta Concedere autorizzazioni agli utenti.Questo ruolo non concede l'accesso a nessuna app. Fornisce l'accesso a livello di progetto di cui gli utenti hanno bisogno, quindi concedi l'accesso alle singole app. Se utilizzi un ruolo personalizzato a livello di progetto anziché il ruolo predefinito
roles/discoveryengine.agentspaceRestrictedUser, assicurati che il ruolo personalizzato includa le autorizzazionidiscoveryengine.locations.buildAuthorizationUrl,discoveryengine.dataStores.get,discoveryengine.collections.getediscoveryengine.devToolsConfigs.get. L'omissione didiscoveryengine.devToolsConfigs.getcausa un errore403 PERMISSION_DENIEDin Cloud Audit Logs quando l'app web controlladevToolsConfig.
Eseguire la transizione dall'accesso a livello di progetto all'accesso a livello di app
Per limitare gli utenti ad app specifiche, devi sostituire il loro ruolo utente aziendale Gemini Enterprise a livello di progetto con il ruolo Gemini Enterprise Restricted User e poi concedere il ruolo utente aziendale Gemini Enterprise a livello di singola app.
Per eseguire la transizione di un utente dall'accesso a livello di progetto all'accesso a livello di app: Utilizza la Google Cloud console per le modifiche a livello di progetto, e l'API per la concessione a livello di app, che la Google Cloud console non supporta.
- Nella Google Cloud console vai alla pagina IAM.
- Trova l'utente e rimuovi il ruolo Utente aziendale Gemini Enterprise (
roles/discoveryengine.agentspaceUser) dalle sue autorizzazioni a livello di progetto. - Se non l'hai ancora fatto, concedi all'utente il ruolo Gemini Enterprise Restricted User (
roles/discoveryengine.agentspaceRestrictedUser) a livello di progetto. - Utilizza il metodo
setIamPolicyper concedere all'utente il ruolo Gemini Enterprise User (roles/discoveryengine.agentspaceUser) per ogni app specifica a cui deve accedere. Per saperne di più, consulta Gestire le policy IAM per le app.
Gestire le policy IAM per le app
Per gestire l'accesso all'app Gemini Enterprise, puoi utilizzare i metodi API getIamPolicy e setIamPolicy.
I passaggi seguenti mostrano come recuperare la policy corrente e poi aggiornarla per concedere o revocare l'accesso degli utenti.
Recuperare la policy IAM dell'app
Recupera la policy IAM corrente dell'app utilizzando il
getIamPolicy
metodo. Ti consigliamo di recuperare prima la policy esistente per evitare di sovrascrivere le autorizzazioni correnti.
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"
Sostituisci quanto segue:
PROJECT_ID: l'ID progetto.ENDPOINT_LOCATION: la multi-regione per la richiesta API. Specifica uno dei seguenti valori:usper la multi-regione Stati Unitieuper la multi-regione Unione Europeaglobalper la località globale
LOCATION: la multi-regione del datastore:global,usoeuAPP_ID: l'ID dell'app che vuoi configurare.
Aggiornare la policy IAM dell'app
Per concedere o revocare l'accesso degli utenti all'app, aggiorna la policy IAM
dell'app utilizzando il
setIamPolicy
metodo.
La policy IAM utilizza il ruolo Gemini Enterprise
User
(roles/discoveryengine.agentspaceUser) per concedere agli utenti l'accesso diretto a
l'app.
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",
"group:GROUP_EMAIL",
"principal://iam.googleapis.com/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID",
"principalSet://iam.googleapis.com/locations/global/workloadIdentityPools/POOL_ID/attribute.NAME/VALUE"
]
}
]
}
}' \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:setIamPolicy"
Sostituisci quanto segue:
ETAG: il valoreetagche hai ricevuto come risposta quando hai utilizzato il metodogetIamPolicy.USER_EMAIL,GROUP_EMAIL: uno o più indirizzi email di utenti o gruppi. Oltre auseregroup,principaleprincipalSetsono tipi di membri validi per la federazione Workload Identity.Per concedere l'accesso, aggiungi le entità all'array
members. Ad esempio,"user:cloudysanfrancisco@gmail.com"o"group:mcymbalgroup@google.com".Per revocare l'accesso, rimuovi le entità dall'array
members.
POOL_ID: l'ID del pool di identità per i workload.SUBJECT_ID: l'identificatore del soggetto per un'identità specifica.NAME: il nome di un attributo.VALUE: il valore di un attributo.PROJECT_ID: l'ID progetto.ENDPOINT_LOCATION: la multi-regione per la richiesta API. Specifica uno dei seguenti valori:usper la multi-regione Stati Unitieuper la multi-regione Unione Europeaglobalper la località globale
LOCATION: la multi-regione del datastore:global,usoeu.APP_ID: l'ID dell'app che vuoi configurare.
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.