Faça a gestão do acesso a uma instância

Este guia descreve como pode conceder acesso a uma instância específica do Vertex AI Workbench. Para gerir o acesso aos recursos do Vertex AI, consulte a página do Vertex AI sobre o controlo de acesso.

Concede acesso a uma instância do Vertex AI Workbench definindo uma política de gestão de identidade e de acesso (IAM) na instância. A política associa um ou mais responsáveis, como um utilizador ou uma conta de serviço, a uma ou mais funções. Cada função contém uma lista de autorizações que permitem ao principal interagir com a instância.

Pode conceder acesso a uma instância, em vez de a um recurso principal, como um projeto, uma pasta ou uma organização, para exercer o princípio do privilégio mínimo.

Se conceder acesso a um recurso principal (por exemplo, a um projeto), concede implicitamente acesso a todos os respetivos recursos secundários (por exemplo, a todas as instâncias nesse projeto). Para limitar o acesso aos recursos, defina políticas IAM em recursos de nível inferior sempre que possível, em vez de ao nível do projeto ou superior.

Para obter informações gerais sobre como conceder, alterar e revogar o acesso a recursos não relacionados com o Vertex AI Workbench, por exemplo, para conceder acesso a um projeto, consulte a documentação do IAM para gerir o acesso a projetos, pastas e organizações. Google Cloud

Limitações de acesso

O acesso a uma instância pode incluir uma vasta gama de capacidades, consoante a função que atribui ao principal. Por exemplo, pode conceder a um principal a capacidade de iniciar, parar, atualizar e monitorizar o estado de funcionamento de uma instância. Para ver a lista completa das autorizações da IAM disponíveis, consulte os papéis da IAM do Vertex AI Workbench predefinidos.

No entanto, mesmo que conceda a um principal acesso total a uma instância do Vertex AI Workbench, não lhe concede a capacidade de usar a interface JupyterLab da instância. Para conceder acesso à interface do JupyterLab, consulte o artigo Gerir o acesso à interface do JupyterLab de uma instância.

Conceda acesso a instâncias do Vertex AI Workbench

Para conceder aos utilizadores autorização para aceder a uma instância específica do Vertex AI Workbench, defina uma Política IAM na instância.

gcloud

Para conceder uma função a um principal numa instância do Vertex AI Workbench, use o comando get-iam-policy para obter a política atual, edite o acesso da política atual e, em seguida, use o comando set-iam-policy para atualizar a política na instância.

Obtenha a política atual

Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

  • INSTANCE_NAME: o nome da sua instância
  • PROJECT_ID: o ID do seu Google Cloud projeto
  • LOCATION: a zona onde a sua instância está localizada

Execute o seguinte comando:

Linux, macOS ou 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
A resposta é o texto da política de IAM da sua instância. Veja o seguinte exemplo.
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Edite a política

  1. Edite a política com um editor de texto para adicionar ou remover responsáveis e as respetivas funções associadas. Por exemplo, para conceder a função notebooks.admin a eve@example.com, adicione a seguinte nova associação à política na secção "bindings":

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

    Depois de adicionar a nova associação, a política pode ter o seguinte aspeto:

    {
      "bindings": [
        {
          "role": "roles/notebooks.viewer",
          "members": [
            "user:email@example.com"
          ]
        },
        {
          "role": "roles/notebooks.admin",
          "members": [
            "user:eve@example.com"
          ]
        }
      ],
      "etag": "BwWWja0YfJA=",
      "version": 3
    }
    
  2. Guarde a política atualizada num ficheiro com o nome request.json.

Atualize a política na instância

No corpo do pedido, faculte a política de IAM atualizada do passo anterior, aninhada numa secção "policy".

Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

  • INSTANCE_NAME: o nome da sua instância
  • PROJECT_ID: o ID do seu Google Cloud projeto
  • LOCATION: a zona onde a sua instância está localizada

Guarde o seguinte conteúdo num ficheiro denominado 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
  }
}

Execute o seguinte comando:

Linux, macOS ou 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

Conceda acesso à interface do JupyterLab

A concessão de acesso a um principal a uma instância do Vertex AI Workbench não concede a capacidade de usar a interface do JupyterLab da instância. Para conceder acesso à interface do JupyterLab, consulte o artigo Faça a gestão do acesso à interface do JupyterLab de uma instância do Vertex AI Workbench.

API

Para conceder uma função a um principal numa instância do Vertex AI Workbench, use o método getIamPolicy para obter a política atual, edite o acesso da política atual e, em seguida, use o método setIamPolicy para atualizar a política na instância.

Obtenha a política atual

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do seu Google Cloud projeto
  • LOCATION: a zona onde a sua instância está localizada
  • INSTANCE_NAME: o nome da sua instância

Método HTTP e URL:

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

Para enviar o seu pedido, escolha uma destas opções:

curl

Execute o seguinte 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

Execute o seguinte 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
A resposta é o texto da política de IAM da sua instância. Veja o seguinte exemplo.
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Edite a política

Edite a política com um editor de texto para adicionar ou remover responsáveis e as respetivas funções associadas. Por exemplo, para conceder a função notebooks.admin a eve@example.com, adicione a seguinte nova vinculação à política na secção "bindings":

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

Depois de adicionar a nova associação, a política pode ter o seguinte aspeto:

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

Atualize a política na instância

No corpo do pedido, faculte a política de IAM atualizada do passo anterior, aninhada numa secção "policy".

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do seu Google Cloud projeto
  • LOCATION: a zona onde a sua instância está localizada
  • INSTANCE_NAME: o nome da sua instância

Método HTTP e URL:

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

Corpo JSON do pedido:

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

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:setIamPolicy" | Select-Object -Expand Content

Deve receber um código de estado de êxito (2xx) e uma resposta vazia.

Conceda acesso à interface do JupyterLab

A concessão de acesso a um principal a uma instância do Vertex AI Workbench não concede a capacidade de usar a interface do JupyterLab da instância. Para conceder acesso à interface do JupyterLab, consulte o artigo Gerir o acesso à interface do JupyterLab de uma instância.

O que se segue?