Gestionar el acceso a una instancia de cuadernos gestionados

En esta guía se describe cómo puedes conceder acceso a una instancia de cuadernos gestionados 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 gestionados, 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 conceder, cambiar y revocar el acceso a los recursos.

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 notebooks gestionados predefinidos.

Sin embargo, aunque se conceda a una entidad principal acceso completo a una instancia de cuadernos gestionada, no se le otorga 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 cuaderno gestionado.

Conceder acceso a instancias de cuadernos gestionados

Para conceder a los usuarios permiso para acceder a una instancia de cuadernos gestionados específica, define una política de gestión de identidades y accesos en la instancia.

Para asignar un rol a una entidad de seguridad en una instancia de cuadernos gestionados, 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

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
La respuesta es el texto de la política de gestión de identidades y accesos de tu instancia. Consulta el siguiente ejemplo.
{
  "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

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 gestionada 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 cuaderno gestionado.

Siguientes pasos