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.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 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.