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

Este guia descreve como pode conceder acesso a uma instância específica dos blocos de notas geridos 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 de blocos de notas geridos 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 saber como conceder, alterar e revogar o acesso a recursos. 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 de IAM disponíveis, consulte os papéis de IAM geridos predefinidos.

No entanto, mesmo que conceda a um principal acesso total a uma instância de blocos de notas gerida, não lhe 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 de blocos de notas gerida.

Conceda acesso a instâncias de blocos de notas geridos

Para conceder aos utilizadores autorização para aceder a uma instância de blocos de notas geridos específica, defina uma Política IAM na instância.

Para conceder uma função a um principal numa instância de blocos de notas geridos, 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:

  • INSTANCE_NAME: o nome da sua instância de notebooks geridos

Método HTTP e URL:

GET https://notebooks.googleapis.com/v1/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/v1/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/v1/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:

  • INSTANCE_NAME: o nome da sua instância de notebooks geridos

Método HTTP e URL:

POST https://notebooks.googleapis.com/v1/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/v1/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/v1/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 de um principal a uma instância de blocos de notas gerida 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 de blocos de notas gerida.

O que se segue?