Gestionar el acceso a una instancia de cuadernos gestionados por usuarios
En esta guía se describe cómo puedes conceder acceso a una instancia de notebooks administrados por el usuario de Vertex AI Workbench específica. 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 cuadernos gestionada por el usuario, 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 predefinidos de cuadernos gestionados por el usuario.
Sin embargo, aunque se conceda a una entidad principal acceso completo a una instancia de cuadernos gestionados por el usuario, 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 cuadernos gestionada por el usuario.
Conceder acceso a instancias de cuadernos gestionados por usuarios
Para conceder a los usuarios permiso para acceder a una instancia de cuadernos gestionada por el usuario específica, define una política de IAM en la instancia.
gcloud
Para asignar un rol a una entidad de seguridad en una instancia de cuadernos gestionada por el usuario, 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 instancia de cuadernos gestionados por usuarios
- PROJECT_ID: tu ID de proyecto Google Cloud
- ZONE: la zona en la que se encuentra tu instancia
Ejecuta el siguiente comando:
Linux, macOS o 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 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.adminaeve@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 instancia de cuadernos gestionados por usuarios
- PROJECT_ID: tu ID de proyecto Google Cloud
- ZONE: 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 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
Dar acceso a la interfaz de JupyterLab
Conceder acceso a una instancia de cuadernos gestionados por el usuario a una entidad de seguridad no le permite 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 cuadernos gestionada por el usuario.
API
Para asignar un rol a una entidad en una instancia de cuadernos gestionada por el usuario, 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:
- INSTANCE_NAME: El nombre de tu instancia de cuadernos gestionados por usuarios
Método HTTP y URL:
GET https://notebooks.googleapis.com/v1/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/v1/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/v1/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:
- INSTANCE_NAME: El nombre de tu instancia de cuadernos gestionados por usuarios
Método HTTP y URL:
POST https://notebooks.googleapis.com/v1/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/v1/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/v1/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
Conceder acceso a una instancia de cuadernos gestionados por el usuario a una entidad de seguridad no le permite 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 cuadernos gestionada por el usuario.
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 para los notebooks gestionados por el usuario de 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.