Faça a gestão do acesso a uma instância de notebooks geridos pelo utilizador
Este guia descreve como pode conceder acesso a uma instância específica dos Vertex AI Workbench User-Managed Notebooks. 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 notebooks gerida pelo utilizador 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.
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 IAM disponíveis, consulte as funções IAM de notebooks geridos pelo utilizador predefinidas.
No entanto, mesmo que conceda a um principal acesso total a uma instância de blocos de notas gerida pelo utilizador, 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 pelo utilizador.
Conceda acesso a instâncias de blocos de notas geridas pelo utilizador
Para conceder aos utilizadores autorização para aceder a uma instância de blocos de notas gerida pelo utilizador específica, defina uma política de IAM na instância.
gcloud
Para conceder uma função a um principal numa instância de blocos de notas gerida pelo utilizador, 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 instância de notebooks gerida pelo utilizador
- PROJECT_ID: o ID do seu Google Cloud projeto
- ZONE: a zona onde a sua instância está localizada
Execute o seguinte 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 }
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
aeve@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 }
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 instância de notebooks gerida pelo utilizador
- PROJECT_ID: o ID do seu Google Cloud projeto
- ZONE: 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 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
Conceda acesso à interface do JupyterLab
A concessão de acesso a um principal a uma instância de blocos de notas gerida pelo utilizador 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 pelo utilizador.
API
Para conceder uma função a um principal numa instância de blocos de notas gerida pelo utilizador, 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 instância de notebooks gerida pelo utilizador
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
{ "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 instância de notebooks gerida pelo utilizador
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 a um principal a uma instância de blocos de notas gerida pelo utilizador 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 pelo utilizador.
O que se segue?
Para saber mais acerca da gestão de identidade e acesso (IAM) e como as funções da IAM podem ajudar a conceder e restringir o acesso, consulte a documentação da IAM.
Saiba mais sobre as funções de IAM disponíveis para os Vertex AI Workbench User-Managed Notebooks.
Saiba como criar e gerir funções personalizadas.
Para saber como conceder acesso a outros recursos Google, consulte o artigo Faça a gestão do acesso a outros recursos.