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
{ "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
aeve@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 }
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
{ "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
Para saber mais sobre o Identity and Access Management (IAM) e como os papéis do IAM podem ajudar a conceder e restringir o acesso, consulte a documentação do IAM.
Saiba mais sobre os papéis do IAM disponíveis para o Vertex AI Workbench.
Saiba como criar e gerenciar papéis personalizados.
Para saber como conceder acesso a outros recursos do Google, consulte Gerenciar o acesso a outros recursos.