Gestionar el acceso a una instancia
En esta guía se describe cómo puedes conceder acceso a una instancia específica de Vertex AI Workbench. Para gestionar el acceso a los recursos de Vertex AI, consulta la página de Vertex AI sobre el control de acceso.
Para conceder acceso a una instancia de Vertex AI Workbench, debes definir una política de gestión de identidades y accesos (IAM) en la instancia. La política vincula una o varias entidades principales, como un usuario o una cuenta de servicio, a uno o varios roles. Cada rol contiene una lista de permisos que permiten a la entidad principal interactuar con la instancia.
Puedes conceder acceso a una instancia en lugar de a un recurso principal, como un proyecto, una carpeta o una organización, para aplicar el principio de mínimos accesos.
Si concedes acceso a un recurso principal (por ejemplo, a un proyecto), también se concederá acceso a todos sus recursos secundarios (por ejemplo, a todas las instancias de ese proyecto). Para limitar el acceso a los recursos, define políticas de gestión de identidades y accesos en los recursos de nivel inferior siempre que sea posible, en lugar de hacerlo a nivel de proyecto o superior.
Para obtener información general sobre cómo conceder, cambiar y revocar el acceso a recursos que no estén relacionados con Vertex AI Workbench (por ejemplo, para conceder acceso a un Google Cloud proyecto), consulta la documentación de gestión de identidades y accesos sobre cómo gestionar el acceso a proyectos, carpetas y organizaciones.
Limitaciones de acceso
El acceso a una instancia puede incluir una amplia gama de funciones, en función del rol que asignes a la entidad. Por ejemplo, puedes conceder a un principal la capacidad de iniciar, detener, actualizar y monitorizar el estado de una instancia. Para ver la lista completa de permisos de gestión de identidades y accesos disponibles, consulta Roles de gestión de identidades y accesos de Vertex AI Workbench predefinidos.
Sin embargo, aunque se conceda a una entidad principal acceso completo a una instancia de Vertex AI Workbench, no se le concederá la capacidad de usar la interfaz de JupyterLab de la instancia. Para conceder acceso a la interfaz de JupyterLab, consulta Gestionar el acceso a la interfaz de JupyterLab de una instancia.
Conceder acceso a instancias de Vertex AI Workbench
Para conceder a los usuarios permiso para acceder a una instancia de Vertex AI Workbench específica, define una política de gestión de identidades y accesos en la instancia.
gcloud
Para asignar un rol a una entidad de seguridad en una instancia de Vertex AI Workbench, usa el comando get-iam-policy
para obtener la política actual, edita el acceso de la política actual y, a continuación, usa el comando set-iam-policy
para actualizar la política en la instancia.
Recuperar la política actual
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
INSTANCE_NAME
: el nombre de tu instanciaPROJECT_ID
: tu ID de proyecto Google CloudLOCATION
: la zona en la que se encuentra tu instancia
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud workbench instances get-iam-policy INSTANCE_NAME \ --project=PROJECT_ID \ --location=LOCATION
Windows (PowerShell)
gcloud workbench instances get-iam-policy INSTANCE_NAME ` --project=PROJECT_ID ` --location=LOCATION
Windows (cmd.exe)
gcloud workbench instances get-iam-policy INSTANCE_NAME ^ --project=PROJECT_ID ^ --location=LOCATION
{ "bindings": [ { "role": "roles/notebooks.viewer", "members": [ "user:email@example.com" ] } ], "etag": "BwWWja0YfJA=", "version": 3 }
Editar la política
Edita la política con un editor de texto para añadir o quitar principales y los roles asociados. Por ejemplo, para asignar el rol
notebooks.admin
aeve@example.com
, añade la siguiente vinculación a la política en la sección"bindings"
:{ "role": "roles/notebooks.admin", "members": [ "user:eve@example.com" ] }
Después de añadir el nuevo enlace, la política podría tener el siguiente aspecto:
{ "bindings": [ { "role": "roles/notebooks.viewer", "members": [ "user:email@example.com" ] }, { "role": "roles/notebooks.admin", "members": [ "user:eve@example.com" ] } ], "etag": "BwWWja0YfJA=", "version": 3 }
Guarda la política actualizada en un archivo llamado
request.json
.
Actualizar la política en la instancia
En el cuerpo de la solicitud, proporcione la política de IAM actualizada del paso anterior, anidada en una sección "policy"
.
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
INSTANCE_NAME
: el nombre de tu instanciaPROJECT_ID
: tu ID de proyecto Google CloudLOCATION
: la zona en la que se encuentra tu instancia
Guarda el siguiente contenido en un archivo llamado 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 } }
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud workbench instances set-iam-policy INSTANCE_NAME \ --project=PROJECT_ID \ --location=LOCATION \ request.json --format=json
Windows (PowerShell)
gcloud workbench instances set-iam-policy INSTANCE_NAME ` --project=PROJECT_ID ` --location=LOCATION ` request.json --format=json
Windows (cmd.exe)
gcloud workbench instances set-iam-policy INSTANCE_NAME ^ --project=PROJECT_ID ^ --location=LOCATION ^ request.json --format=json
Dar acceso a la interfaz de JupyterLab
Si se concede acceso a una instancia de Vertex AI Workbench a una entidad de seguridad, no se le concede la capacidad de usar la interfaz de JupyterLab de la instancia. Para conceder acceso a la interfaz de JupyterLab, consulta Gestionar el acceso a la interfaz de JupyterLab de una instancia de Vertex AI Workbench.
API
Para asignar un rol a una entidad de seguridad en una instancia de Vertex AI Workbench, usa el método getIamPolicy
para obtener la política actual, edita el acceso de la política actual y, a continuación, usa el método setIamPolicy
para actualizar la política en la instancia.
Recuperar la política actual
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto Google CloudLOCATION
: la zona en la que se encuentra tu instanciaINSTANCE_NAME
: el nombre de tu instancia
Método HTTP y URL:
GET https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:getIamPolicy
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:getIamPolicy"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:getIamPolicy" | Select-Object -Expand Content
{ "bindings": [ { "role": "roles/notebooks.viewer", "members": [ "user:email@example.com" ] } ], "etag": "BwWWja0YfJA=", "version": 3 }
Editar la política
Edita la política con un editor de texto para añadir o quitar principales y los roles asociados. Por ejemplo, para asignar el rol notebooks.admin
a eve@example.com, añade la siguiente vinculación a la política en la sección "bindings"
:
{
"role": "roles/notebooks.admin",
"members": [
"user:eve@example.com"
]
}
Después de añadir el nuevo enlace, la política podría tener el siguiente aspecto:
{
"bindings": [
{
"role": "roles/notebooks.viewer",
"members": [
"user:email@example.com"
]
},
{
"role": "roles/notebooks.admin",
"members": [
"user:eve@example.com"
]
}
],
"etag": "BwWWja0YfJA=",
"version": 3
}
Actualizar la política en la instancia
En el cuerpo de la solicitud, proporcione la política de IAM actualizada del paso anterior, anidada en una sección "policy"
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto Google CloudLOCATION
: la zona en la que se encuentra tu instanciaINSTANCE_NAME
: el nombre de tu instancia
Método HTTP y URL:
POST https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:setIamPolicy
Cuerpo JSON de la solicitud:
{ "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 tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:setIamPolicy"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:setIamPolicy" | Select-Object -Expand Content
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
Dar acceso a la interfaz de JupyterLab
Si se concede acceso a una instancia de Vertex AI Workbench a una entidad de seguridad, no se le concede la capacidad de usar la interfaz de JupyterLab de la instancia. Para conceder acceso a la interfaz de JupyterLab, consulta Gestionar el acceso a la interfaz de JupyterLab de una instancia.
Siguientes pasos
Para obtener información sobre la gestión de identidades y accesos (IAM) y cómo pueden ayudar los roles de IAM a conceder y restringir el acceso, consulta la documentación de IAM.
Consulta los roles de gestión de identidades y accesos disponibles en Vertex AI Workbench.
Consulta cómo crear y gestionar roles personalizados.
Para saber cómo conceder acceso a otros recursos de Google, consulta el artículo Gestionar el acceso a otros recursos.