Gestire l'accesso a un'istanza di Vertex AI Workbench

Questa guida descrive come concedere l'accesso a un'istanza di Vertex AI Workbench specifica. Per gestire l'accesso alle risorse di Gemini Enterprise Agent Platform, consulta la pagina di Agent Platform sul controllo dell'accesso.

Puoi concedere l'accesso a un'istanza di Vertex AI Workbench impostando una policy IAM (Identity and Access Management) sull'istanza. La policy vincola una o più entità, ad esempio un utente o un account di serviziot, a uno o più ruoli. Ogni ruolo contiene un elenco di autorizzazioni che consentono all'entità di interagire con l'istanza.

Puoi concedere l'accesso a un'istanza anziché a una risorsa padre come un progetto, una cartella o un'organizzazione, per applicare il principio del privilegio minimo.

Se concedi l'accesso a una risorsa principale (ad esempio a un progetto), concedi implicitamente l'accesso a tutte le sue risorse secondarie (ad esempio a tutte le istanze del progetto). Per limitare l'accesso alle risorse, imposta le policy IAM sulle risorse di livello inferiore, se possibile, anziché a livello di progetto o superiore.

Per informazioni generali su come concedere, modificare e revocare l'accesso alle risorse non correlate a Vertex AI Workbench, ad esempio per concedere l'accesso a un progetto Google Cloud , consulta la documentazione IAM relativa a Gestire l'accesso a progetti, cartelle e organizzazioni.

Limitazioni di accesso

L'accesso a un'istanza può includere un'ampia gamma di funzionalità, a seconda del ruolo che assegni all'entità. Ad esempio, puoi concedere a un'entità la possibilità di avviare, arrestare, eseguire l'upgrade e monitorare lo stato di integrità di un'istanza. Per l'elenco completo delle autorizzazioni IAM disponibili, consulta Ruoli IAM predefiniti di Vertex AI Workbench.

Tuttavia, anche se concedi a un'entità l'accesso completo a un'istanza di Vertex AI Workbench, non le concedi la possibilità di utilizzare l'interfaccia JupyterLab dell'istanza. Per concedere l'accesso all'interfaccia JupyterLab, vedi Gestire l'accesso all'interfaccia JupyterLab di un'istanza.

Concedere l'accesso alle istanze Vertex AI Workbench

Per concedere agli utenti l'autorizzazione di accesso a un'istanza di Vertex AI Workbench specifica, imposta una policy IAM sull'istanza.

gcloud

Per concedere un ruolo a un'entità in un'istanza di Vertex AI Workbench, utilizza il comando get-iam-policy per recuperare la policy attuale, modifica l'accesso della policy attuale e poi utilizza il comando set-iam-policy per aggiornare la policy nell'istanza.

Recupera la norma attuale

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • INSTANCE_NAME: il nome dell'istanza
  • PROJECT_ID: il tuo Google Cloud ID progetto
  • LOCATION: la zona in cui si trova l'istanza

Esegui questo comando:

Linux, macOS o Cloud Shell

gcloud workbench instances get-iam-policy INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION

Windows (PowerShell)

gcloud workbench instances get-iam-policy INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION

Windows (cmd.exe)

gcloud workbench instances get-iam-policy INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION
La risposta è il testo della policy IAM della tua istanza. Vedi di seguito un esempio.
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Modifica la policy

  1. Modifica la policy con un editor di testo per aggiungere o rimuovere le entità e i relativi ruoli associati. Ad esempio, per concedere il ruolo notebooks.admin a eve@example.com, aggiungi la seguente nuova associazione alla policy nella sezione "bindings":

    {
      "role": "roles/notebooks.admin",
      "members": [
        "user:eve@example.com"
      ]
    }
    

    Dopo aver aggiunto la nuova associazione, il criterio potrebbe essere simile al seguente:

    {
      "bindings": [
        {
          "role": "roles/notebooks.viewer",
          "members": [
            "user:email@example.com"
          ]
        },
        {
          "role": "roles/notebooks.admin",
          "members": [
            "user:eve@example.com"
          ]
        }
      ],
      "etag": "BwWWja0YfJA=",
      "version": 3
    }
    
  2. Salva il criterio aggiornato in un file denominato request.json.

Aggiorna il criterio sull'istanza

Nel corpo della richiesta, fornisci la policy IAM aggiornata del passaggio precedente, nidificata all'interno di una sezione "policy".

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • INSTANCE_NAME: il nome dell'istanza
  • PROJECT_ID: il tuo Google Cloud ID progetto
  • LOCATION: la zona in cui si trova l'istanza

Salva i seguenti contenuti in un file denominato request.json:

{
  "policy": {
    "bindings": [
      {
        "role": "roles/notebooks.viewer",
        "members": [
          "user:email@example.com"
        ]
      },
      {
        "role": "roles/notebooks.admin",
        "members": [
          "user:eve@example.com"
        ]
      }
    ],
    "etag": "BwWWja0YfJA=",
    "version": 3
  }
}

Esegui questo comando:

Linux, macOS o Cloud Shell

gcloud workbench instances set-iam-policy INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    request.json --format=json

Windows (PowerShell)

gcloud workbench instances set-iam-policy INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION `
    request.json --format=json

Windows (cmd.exe)

gcloud workbench instances set-iam-policy INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION ^
    request.json --format=json

Concedere l'accesso all'interfaccia JupyterLab

La concessione dell'accesso di un'entità a un'istanza di Vertex AI Workbench non concede la possibilità di utilizzare l'interfaccia JupyterLab dell'istanza. Per concedere l'accesso all'interfaccia JupyterLab, vedi Gestire l'accesso all'interfaccia JupyterLab di un'istanza di Vertex AI Workbench.

API

Per concedere un ruolo a un'entità su un'istanza di Vertex AI Workbench, utilizza il metodo getIamPolicy per recuperare il criterio attuale, modifica l'accesso del criterio attuale e poi utilizza il metodo setIamPolicy per aggiornare il criterio sull'istanza.

Recupera la norma attuale

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il tuo Google Cloud ID progetto
  • LOCATION: la zona in cui si trova l'istanza
  • INSTANCE_NAME: il nome dell'istanza

Metodo HTTP e URL:

GET https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:getIamPolicy

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:getIamPolicy"

PowerShell

Esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:getIamPolicy" | Select-Object -Expand Content
La risposta è il testo del criterio IAM della tua istanza. Vedi l'esempio che segue.
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Modifica la policy

Modifica la policy con un editor di testo per aggiungere o rimuovere le entità e i relativi ruoli associati. Ad esempio, per concedere il ruolo notebooks.admin a eve@example.com, aggiungi la seguente nuova associazione alla policy nella sezione "bindings":

{
  "role": "roles/notebooks.admin",
  "members": [
    "user:eve@example.com"
  ]
}

Dopo aver aggiunto la nuova associazione, il criterio potrebbe essere simile al seguente:

{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    },
    {
      "role": "roles/notebooks.admin",
      "members": [
        "user:eve@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Aggiorna il criterio sull'istanza

Nel corpo della richiesta, fornisci la policy IAM aggiornata del passaggio precedente, nidificata all'interno di una sezione "policy".

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il tuo Google Cloud ID progetto
  • LOCATION: la zona in cui si trova l'istanza
  • INSTANCE_NAME: il nome dell'istanza

Metodo HTTP e URL:

POST https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:setIamPolicy

Corpo JSON della richiesta:

{
  "policy": {
    "bindings": [
      {
        "role": "roles/notebooks.viewer",
        "members": [
          "user:email@example.com"
        ]
      },
      {
        "role": "roles/notebooks.admin",
        "members": [
          "user:eve@example.com"
        ]
      }
    ],
    "etag": "BwWWja0YfJA=",
    "version": 3
  }
}

Per inviare la richiesta, scegli una di queste 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://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME: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://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:setIamPolicy" | Select-Object -Expand Content

Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.

Concedere l'accesso all'interfaccia JupyterLab

La concessione dell'accesso di un'entità a un'istanza di Vertex AI Workbench non concede la possibilità di utilizzare l'interfaccia JupyterLab dell'istanza. Per concedere l'accesso all'interfaccia JupyterLab, vedi Gestire l'accesso all'interfaccia JupyterLab di un'istanza.

Passaggi successivi