Gerenciar o acesso a uma instância de notebooks gerenciados pelo usuário
Saiba neste guia como conceder acesso a uma instância específica de notebooks gerenciados pelo usuário 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 de notebooks gerenciados pelo usuário, defina uma política do Identity and Access Management (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. Confira a lista completa de permissões do IAM disponíveis em Papéis do IAM predefinidos de notebooks gerenciados pelo usuário.
No entanto, o acesso total de um principal a uma instância de notebooks gerenciados pelo usuário não inclui a capacidade de usar a interface JupyterLab da instância. Saiba como conceder acesso à interface JupyterLab em Gerenciar o acesso a uma interface JupyterLab de uma instância de notebooks gerenciados pelo usuário.
Conceder acesso a instâncias de notebooks gerenciados pelo usuário
Para conceder acesso a uma instância específica de notebooks gerenciados pelo usuário, 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 de notebooks gerenciados pelo usuário.
- PROJECT_ID: é o ID do projeto do Google Cloud.
- ZONE: a zona em que a instância está localizada.
Execute o este comando:
Linux, macOS ou Cloud Shell
gcloud notebooks instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE
Windows (PowerShell)
gcloud notebooks instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE
Windows (cmd.exe)
gcloud notebooks 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 de notebooks gerenciados pelo usuário.
- 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 este comando:
Linux, macOS ou Cloud Shell
gcloud notebooks instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json
Windows (PowerShell)
gcloud notebooks instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json
Windows (cmd.exe)
gcloud notebooks instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json
Conceder acesso à interface JupyterLab
O acesso de um principal a uma instância de notebooks gerenciados pelo usuário não inclui a capacidade de usar a interface JupyterLab da instância. Saiba como conceder acesso à interface JupyterLab em Gerenciar o acesso a uma interface JupyterLab de uma instância de notebooks gerenciados pelo usuário.
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 de notebooks gerenciados pelo usuário.
Método HTTP e URL:
GET https://notebooks.googleapis.com/v1/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/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
{ "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 de notebooks gerenciados pelo usuário.
Método HTTP e URL:
POST https://notebooks.googleapis.com/v1/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/v1/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/v1/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
O acesso de um principal a uma instância de notebooks gerenciados pelo usuário não inclui a capacidade de usar a interface JupyterLab da instância. Saiba como conceder acesso à interface JupyterLab em Gerenciar o acesso a uma interface JupyterLab de uma instância de notebooks gerenciados pelo usuário.
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 notebooks gerenciados pelo usuário do 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.