Puoi controllare l'accesso alle risorse Vertex AI Feature Store (legacy) l'impostazione dei criteri IAM a diversi livelli gerarchia delle risorse. Ad esempio:
Un criterio IAM a livello di progetto si applica a tutte le risorse di un progetto. Puoi impostare un criterio a livello di progetto per concedere le autorizzazioni agli utenti per leggere tutti gli archivi di caratteristiche nel tuo progetto.
Un criterio IAM a livello di risorsa consente di specificare quali utenti possono accedere a risorse specifiche. Per un sottoinsieme di utenti, puoi impostare un criterio a livello di risorsa per concedere autorizzazioni di scrittura a specifici feature store nel tuo progetto.
Puoi impostare criteri IAM (Identity and Access Management) a livello di risorsa sulle seguenti risorse Vertex AI Feature Store (legacy):
Feature store: quando imposti un criterio di Identity and Access Management in un feature store, il criterio si applica al feature store e a tutti i tipi di entità creati al suo interno.
Tipo di entità: quando imposti un criterio di Identity and Access Management su un tipo di entità, il criterio si applica solo al tipo di entità e all'archivio di caratteristiche in cui il tipo di entità viene creato.
Un criterio IAM include una o più associazioni di ruoli che e definire quali ruoli IAM sono associati a quali entità. Un ruolo è una raccolta di autorizzazioni che concedi a un'entità. Vertex AI offre ruoli predefiniti che puoi utilizzare nelle tue norme. In alternativa, puoi creare ruoli personalizzati.
Considerazioni
Non puoi impostare criteri condizionali delle risorse. Ad esempio, non puoi creare un
criterio che concede l'accesso a qualsiasi risorsa che ha o avrà un nome che inizia
con una stringa particolare come testing
.
Caso d'uso di esempio
Ad esempio, immagina che la tua organizzazione abbia due insiemi di utenti. Un set gestisce la tua infrastruttura di base in un ruolo di amministratore DevOps. Un altro set gestisce tipi di entità e le relative funzionalità specifici, ad esempio un data engineer.
Un amministratore DevOps gestisce i featurestore e i tipi di entità a livello di progetto. Quando i data engineer richiedono un nuovo tipo di entità, un amministratore DevOps può creare e delegare la proprietà di quel tipo di entità ai data engineer. I data engineer possono gestire liberamente le funzionalità nei tipi di entità di loro proprietà, ma non possono operare sul Feature Store o su altri tipi di entità. Questo controllo, ad esempio, consente agli amministratori DevOps di limitare l'accesso ai tipi di entità che contengono informazioni sensibili.
In questo scenario, l'amministratore DevOps ha il ruolo aiplatform.featurestoreAdmin
a livello di progetto. Quando un data engineer richiede un nuovo tipo di entità, l'amministratore crea un nuovo tipo di entità e assegna il ruolo aiplatform.entityTypeOwner
al data engineer a livello di tipo di entità (come criterio a livello di risorsa).
Recupero del criterio IAM
Puoi visualizzare il criterio IAM corrente in un tipo di entità o feature store utilizzando la console o l'API Google Cloud.
UI web
- Nella sezione Vertex AI della console Google Cloud, vai a
alla pagina Funzionalità.
Vai alla pagina Funzionalità
- Seleziona una regione dall'elenco a discesa Regione.
- Nella tabella delle funzionalità, seleziona un archivio di caratteristiche o un tipo di entità dalla colonna Archivio di caratteristiche o Tipo di entità.
- Fai clic su Autorizzazioni.
- Per visualizzare le autorizzazioni a livello di risorsa, disattiva Mostra autorizzazioni ereditate.
Le entità che hanno accesso alla risorsa selezionata sono raggruppate per ruolo.
- Espandi un ruolo per visualizzare le entità a cui è assegnato.
REST
Per recuperare il criterio IAM da una risorsa, invia una richiesta POST che utilizzi il metodo getIamPolicy
. L'esempio seguente recupera un
criterio relativo al tipo di entità.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui si trova l'archivio di caratteristiche, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATURESTORE_ID: ID dell'archivio di funzionalità.
- ENTITY_TYPE_ID: ID del tipo di entità.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:getIamPolicy
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:getIamPolicy"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:getIamPolicy" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "version": 1, "etag": "BwXTmICm7mI", "bindings": [ { "role": "roles/aiplatform.entityTypeOwner", "members": [ "user:example@example.com" ] } ] }
Imposta un criterio IAM
Puoi impostare un criterio IAM su un archivio di caratteristiche o un'entità di testo.
UI web
- Nella sezione Vertex AI della console Google Cloud, vai alla pagina Funzionalità.
Vai alla pagina Funzionalità
- Seleziona una regione dall'elenco a discesa Regione.
- Nella tabella delle funzionalità, seleziona un archivio di caratteristiche o un tipo di entità dalla colonna Archivio di caratteristiche o Tipo di entità.
- Fai clic su Autorizzazioni.
- Fai clic su Aggiungi entità.
- Specifica un'entità e uno o più ruoli da associare al principale.
- Fai clic su Salva.
REST
Per impostare il criterio IAM su una risorsa, invia una richiesta POST che
utilizza il metodo setIamPolicy
. L'esempio seguente imposta un'impostazione su un tipo di entità.
L'impostazione di un criterio IAM sostituisce qualsiasi criterio esistente (le modifiche vengono
non aggiunto). Se vuoi modificare il criterio esistente di una risorsa, utilizza la
getIamPolicy
per recuperare il criterio esistente e poi renderlo
modifiche. Includi il criterio modificato insieme a etag
nella richiesta setIamPolicy
.
Se ricevi un codice di errore 409
, significa che era presente una richiesta SetIamPolicy
in contemporanea
che ha aggiornato le norme. Crea un GetIamPolicy
per ottenere l'etag aggiornato del criterio,
e riprova a eseguire la richiesta SetIamPolicy
includendo il nuovo etag.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui si trova l'archivio di caratteristiche, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATURESTORE_ID: ID dell'archivio di caratteristiche.
- ENTITY_TYPE_ID: ID del tipo di entità.
- ROLE: un ruolo IAM che include le autorizzazioni.
concedere, ad esempio
roles/aiplatform.featurestoreDataViewer
. - PRINCIPAL: l'entità a cui sono concesse le autorizzazioni del ruolo, ad esempio
user:myuser@example.com
. - ETAG: un valore di stringa utilizzato per impedire che gli aggiornamenti simultanei di un criterio si sovrascrivano a vicenda. Questo valore viene restituito come
parte della risposta
getIamPolicy
.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:setIamPolicy
Corpo JSON della richiesta:
{ "policy": { "bindings": [ { "role": "ROLE", "members": [ "PRINCIPAL" ] }, ... ], "etag": "ETAG" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:setIamPolicy"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:setIamPolicy" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "version": 1, "etag": "BwXTmICm7mI", "bindings": [ { "role": "roles/aiplatform.entityTypeOwner", "members": [ "user:user1@example.com" ] }, { "role": "roles/aiplatform.featurestoreDataViewer", "members": [ "user:user2@example.com", "user:user3@example.com" ] }, { "role": "roles/aiplatform.featurestoreDataWriter", "members": [ "user:user4@example.com", ] } ] }
Verifica le autorizzazioni IAM per una risorsa
Puoi verificare se l'utente attualmente autenticato dispone di autorizzazioni IAM specifiche per un tipo di entità o un data warehouse.
REST
Per verificare se un utente ha autorizzazioni IAM specifiche per una risorsa,
invia una richiesta POST che utilizza il metodo testIamPermissions
.
L'esempio seguente consente di verificare se l'utente attualmente autenticato dispone di un insieme di autorizzazioni IAM per un tipo di entità.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui si trova l'archivio di caratteristiche, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATURESTORE_ID: ID dell'archivio di caratteristiche.
- ENTITY_TYPE_ID: ID del tipo di entità.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:testIamPermissions -d
Corpo JSON della richiesta:
{ "permissions": [ "aiplatform.googleapis.com/entityTypes.get", "aiplatform.googleapis.com/entityTypes.readFeatureValues", "aiplatform.googleapis.com/entityTypes.writeFeatureValues" ] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:testIamPermissions -d"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:testIamPermissions -d" | Select-Object -Expand Content
{ "permissions": [ "aiplatform.googleapis.com/entityTypes.get", "aiplatform.googleapis.com/entityTypes.readFeatureValues", "aiplatform.googleapis.com/entityTypes.writeFeatureValues" ] }