Controlla l'accesso alle risorse di Vertex AI Feature Store (legacy)

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 in 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 ad archivi di caratteristiche specifici in del progetto.

Puoi impostare criteri IAM (Identity and Access Management) a livello di risorsa su quanto segue Risorse Vertex AI Feature Store (legacy):

  • Archivio di caratteristiche: quando imposti un criterio di Identity and Access Management su un archivio di caratteristiche, il criterio si applica all'archivio di caratteristiche e a tutti i tipi di entità creati in quel di caratteristiche.

  • 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à. R ruolo è un insieme di autorizzazioni concesse 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 una criterio che concede l'accesso a qualsiasi risorsa che ha o avrà un nome che inizia con una determinata stringa, 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 insieme gestisce una particolare entità di machine learning e le loro caratteristiche, come un data engineer.

Un amministratore DevOps gestisce gli archivi di caratteristiche e i tipi di entità a livello di progetto. Quando i data engineer richiedono un nuovo tipo di entità, un amministratore DevOps può creare delegano la proprietà di quel tipo di entità ai data engineer. Data engineer possono gestire liberamente le caratteristiche nei tipi di entità di loro proprietà, ma non possono operare sull'archivio di caratteristiche o su altri tipi di entità. Questo controllo, ad esempio, consente Gli amministratori DevOps limitano 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. Poi, quando un data engineer richiede un nuovo tipo di entità, L'amministratore crea un nuovo tipo di entità e poi assegna il ruolo aiplatform.entityTypeOwner al data engineer del tipo di entità (come criterio a livello di risorsa).

Recupero del criterio IAM

Puoi visualizzare il criterio IAM attuale in un archivio di caratteristiche o un'entità utilizzando la console o l'API Google Cloud.

UI web

  1. Nella sezione Vertex AI della console Google Cloud, vai a alla pagina Funzionalità.

    Vai alla sezione Pagina Funzionalità

  2. Seleziona una regione dall'elenco a discesa Regione.
  3. Nella tabella delle caratteristiche, seleziona un archivio di caratteristiche o un tipo di entità dal Colonna Featurestore o Tipo di entità.
  4. Fai clic su Autorizzazioni.
  5. Per mostrare le autorizzazioni a livello di risorsa, disattiva Mostra ereditate autorizzazioni.

    Le entità che hanno accesso alla risorsa selezionata vengono raggruppate per ruolo.

  6. Espandi un ruolo per vedere quali entità sono assegnate a quel ruolo.

REST

Per ottenere il criterio IAM da una risorsa, invia una richiesta POST che utilizza il metodo getIamPolicy. L'esempio seguente restituisce il criterio del 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: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

  1. Nella sezione Vertex AI della console Google Cloud, vai a alla pagina Funzionalità.

    Vai alla sezione Pagina Funzionalità

  2. Seleziona una regione dall'elenco a discesa Regione.
  3. Nella tabella delle caratteristiche, seleziona un archivio di caratteristiche o un tipo di entità dal Colonna Featurestore o Tipo di entità.
  4. Fai clic su Autorizzazioni.
  5. Fai clic su Aggiungi entità.
  6. Specifica un'entità e uno o più ruoli da associare al principale.
  7. 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 valore 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 la norma modificata insieme al etag in la tua 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 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 e 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/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. 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/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 archivio di caratteristiche o un'entità di testo.

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 IAM autorizzazioni 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. 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/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. 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:testIamPermissions -d" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente. La risposta include solo le autorizzazioni del corpo JSON della richiesta che sono disponibili l'utente attualmente autenticato.
{
  "permissions": [
    "aiplatform.googleapis.com/entityTypes.get",
    "aiplatform.googleapis.com/entityTypes.readFeatureValues",
    "aiplatform.googleapis.com/entityTypes.writeFeatureValues"
  ]
}