Questa pagina spiega come controllare l'accesso a un endpoint Vertex AI impostando un criterio IAM. Si presume che tu hanno già familiarità con concetti IAM come criteri, ruoli, autorizzazioni e entità, come descritto in Controllo dell'accesso a Vertex AI con IAM e Concetti relativi alla gestione degli accessi.
Un criterio IAM include una o più associazioni di ruoli che e definire quali ruoli IAM sono associati a quali entità. Un ruolo è un insieme di autorizzazioni che concedi a un principale. Vertex AI fornisce ruoli predefiniti che puoi utilizzare nei tuoi criteri. In alternativa, puoi creare ruoli personalizzati.
Recupero di un criterio IAM
Puoi visualizzare il criterio IAM corrente su un endpoint Vertex AI utilizzando l'API REST. Per farlo, devi disporre dell'autorizzazioneendpoints.getIamPolicy
per l'endpoint o il progetto.
Il ruolo Vertex AI Administrator (roles/aiplatform.admin
)
concede questa autorizzazione.
REST
Per ottenere il criterio IAM da una risorsa, invia una richiesta POST
che
utilizza il metodo getIamPolicy
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui si trova l'endpoint, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto Google Cloud.
- ENDPOINT_ID: l'ID dell'endpoint.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_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/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_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/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:getIamPolicy" | Select-Object -Expand Content
Dovresti ricevere una risposta in formato JSON con il criterio IAM attuale:
{ "version": 1, "etag": "BwXTmICm7mI", "bindings": [ { "role": "roles/aiplatform.user", "members": [ "user:example@example.com" ] } ] }
Imposta un criterio IAM
Puoi impostare un criterio IAM su un endpoint utilizzando l'API REST.
Per farlo, devi disporre dell'autorizzazione endpoints.setIamPolicy
per l'endpoint
o progetto.
Il ruolo Vertex AI Administrator (roles/aiplatform.admin
)
concede questa autorizzazione.
REST
Per impostare il criterio IAM su una risorsa, invia una richiesta POST
che
utilizza il metodo setIamPolicy
.
L'impostazione di un criterio IAM sostituisce qualsiasi criterio esistente; le modifiche sono
non aggiunto. Per modificare il criterio esistente di una risorsa, utilizza la classe
getIamPolicy
per recuperare il criterio esistente e poi renderlo
modifiche. Includi la norma modificata insieme al etag
in
la tua richiesta setIamPolicy
.
Se ricevi un codice di errore 409
, significa che una richiesta
setIamPolicy
richiesta ha già aggiornato le norme.
Utilizza il metodo getIamPolicy
per recuperare il etag
aggiornato delle norme, quindi riprova a inviare la richiesta setIamPolicy
con il nuovo etag
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui si trova l'endpoint, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto Google Cloud.
- ENDPOINT_ID: l'ID dell'endpoint.
- ROLE: un ruolo IAM che include le autorizzazioni.
concedere, ad esempio
roles/aiplatform.user
. - PRINCIPAL: l'entità a cui viene concesso il ruolo
autorizzazioni, come
user:myuser@example.com
. - ETAG: un valore di stringa utilizzato per impedire la simultanea
gli aggiornamenti di una norma
in modo che non si sovrascrivano a vicenda. Questo valore viene restituito come
parte della risposta
getIamPolicy
.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_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
.
ed esegui questo comando:
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/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:setIamPolicy"
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/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:setIamPolicy" | Select-Object -Expand Content
Dovresti ricevere una risposta in formato JSON con il criterio IAM attuale:
{ "version": 1, "etag": "BwXTmICm7mI", "bindings": [ { "role": "roles/aiplatform.user", "members": [ "user:example@example.com" ] } ] }
Verificare le autorizzazioni IAM di un utente per un endpoint
Puoi verificare se l'utente attualmente autenticato ha specifiche Autorizzazioni IAM per un endpoint.
REST
Per verificare se un utente ha autorizzazioni IAM specifiche per un
risorsa, invia una richiesta POST
che utilizza la risorsa
testIamPermissions
.
L'esempio seguente ti consente di verificare se l'utente attualmente autenticato
dispone di una serie di autorizzazioni IAM
per un endpoint.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui si trova l'endpoint, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto Google Cloud.
- ENDPOINT_ID: l'ID dell'endpoint.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:testIamPermissions -d
Corpo JSON della richiesta:
{ "permissions": [ "aiplatform.googleapis.com/aiplatform.endpoints.get", "aiplatform.googleapis.com/aiplatform.endpoints.predict" ] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
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/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_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/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:testIamPermissions -d" | Select-Object -Expand Content
{ "permissions": [ "aiplatform.googleapis.com/aiplatform.endpoints.get", "aiplatform.googleapis.com/aiplatform.endpoints.predict" ] }
Passaggi successivi
Per saperne di più su come configurare progetti con un controllo dell'accesso più sicuro delle per gli endpoint, consulta Configurare un progetto per un team.