Gerenciar o acesso a uma instância

Neste guia, descrevemos como conceder acesso a uma instância específica do Vertex AI Workbench. Confira como gerenciar o acesso aos recursos da Vertex AI na página da Vertex AI sobre controle de acesso.

Para conceder acesso a uma instância do Vertex AI Workbench, defina uma política de gerenciamento de identidade e acesso (IAM) na instância. A política vincula um ou mais principais, como um usuário ou uma conta de serviço, a um ou mais papéis. Cada papel contém uma lista de permissões que autoriza o principal a interagir com a instância.

Você pode conceder acesso a uma instância, e não a um recurso pai como um projeto, uma pasta ou uma organização, para aplicar o princípio do privilégio mínimo.

Ao conceder acesso a um recurso pai, como um projeto, você concede acesso implicitamente a todos os recursos filhos (por exemplo, todas as instâncias desse projeto). Para limitar o acesso aos recursos, defina políticas do IAM em recursos de nível inferior, quando possível, em vez de no nível do projeto ou acima.

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

Limitações de acesso

O acesso a uma instância pode incluir várias capacidades, dependendo do papel atribuído ao principal. Por exemplo, é possível conceder a um principal a capacidade de iniciar, interromper, fazer upgrade e monitorar o status de integridade de uma instância. Para ver a lista completa das permissões do IAM disponíveis, consulte Papéis predefinidos do IAM do Vertex AI Workbench.

No entanto, mesmo conceder um acesso total ao principal para uma instância do Vertex AI Workbench não permite usar a interface JupyterLab da instância. Para conceder acesso à interface do JupyterLab, consulte Gerenciar o acesso à interface do JupyterLab de uma instância.

Conceder acesso a instâncias do Vertex AI Workbench

Para conceder aos usuários permissão para acessar uma instância específica do Vertex AI Workbench, defina uma política do IAM na instância.

gcloud

Para conceder um papel a um principal em uma instância de notebooks gerenciados pelo usuário, use o comando get-iam-policy para recuperar a política atual, edite o acesso a ela e use o comando set-iam-policy para atualizar a política na instância.

Recuperar a política atual

Antes de usar os dados do comando abaixo, faça estas substituições:

  • INSTANCE_NAME: o nome da instância
  • PROJECT_ID: é o ID do projeto do Google Cloud.
  • ZONE: a zona em que a 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=ZONE

Windows (PowerShell)

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

Windows (cmd.exe)

gcloud workbench instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE
A resposta é o texto da política do IAM da instância. Confira o exemplo a seguir.
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Editar a política

  1. Edite a política com um editor de texto para incluir ou remover principais e os respectivos papéis. Por exemplo, para conceder o papel notebooks.admin a eve@example.com, adicione a nova vinculação a seguir à política na seção "bindings":

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

    Depois de adicionar a nova vinculação, a política tem a seguinte aparência:

    {
      "bindings": [
        {
          "role": "roles/notebooks.viewer",
          "members": [
            "user:email@example.com"
          ]
        },
        {
          "role": "roles/notebooks.admin",
          "members": [
            "user:eve@example.com"
          ]
        }
      ],
      "etag": "BwWWja0YfJA=",
      "version": 3
    }
    
  2. Salve a política atualizada em um arquivo chamado request.json.

Atualizar a política na instância

No corpo da solicitação, forneça a política de IAM atualizada da etapa anterior, aninhada em uma seção "policy".

Antes de usar os dados do comando abaixo, faça estas substituições:

  • INSTANCE_NAME: o nome da instância
  • PROJECT_ID: é o ID do projeto do Google Cloud.
  • ZONE: a zona em que a instância está localizada.

Salve o conteúdo a seguir em um arquivo chamado 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=ZONE request.json --format=json

Windows (PowerShell)

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

Windows (cmd.exe)

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

Conceder acesso à interface JupyterLab

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

API

Para conceder um papel a um principal em uma instância de notebooks gerenciados pelo usuário, use o método getIamPolicy para recuperar a política atual, edite o acesso a ela e use o método setIamPolicy para atualizar a política na instância.

Recuperar a política atual

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • INSTANCE_NAME: o nome da instância

Método HTTP e URL:

GET https://notebooks.googleapis.com/v2/INSTANCE_NAME:getIamPolicy

Para enviar a solicitação, 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/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/INSTANCE_NAME:getIamPolicy" | Select-Object -Expand Content
A resposta é o texto da política do IAM da instância. Confira o exemplo a seguir.
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Editar a política

Edite a política com um editor de texto para incluir ou remover principais e os respectivos papéis. Por exemplo, para conceder o papel notebooks.admin a eve@example.com, adicione a nova vinculação a seguir à política na seção "bindings":

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

Depois de adicionar a nova vinculação, a política tem a seguinte aparência:

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

Atualizar a política na instância

No corpo da solicitação, forneça a política de IAM atualizada da etapa anterior, aninhada em uma seção "policy".

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • INSTANCE_NAME: o nome da instância

Método HTTP e URL:

POST https://notebooks.googleapis.com/v2/INSTANCE_NAME:setIamPolicy

Corpo JSON da solicitação:

{
  "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 a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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/INSTANCE_NAME:setIamPolicy"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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/INSTANCE_NAME:setIamPolicy" | Select-Object -Expand Content

Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.

Conceder acesso à interface JupyterLab

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

A seguir