Administra el acceso a una instancia de notebooks administrados

En esta guía, se describe cómo puedes otorgar acceso a una instancia específica de notebooks administrados de Vertex AI. Para administrar el acceso a los recursos de Vertex AI, consulta la página de Vertex AI sobre el control de acceso.

Para otorgar acceso a una instancia de notebook administrada, configura una política de Identity and Access Management (IAM) en la instancia. La política vincula a uno o más miembros, como un usuario o una cuenta de servicio, con uno o más roles. Cada rol contiene una lista de permisos que permiten la interacción principal con la instancia.

Puedes otorgar acceso a una instancia, en lugar de a un recurso superior, como un proyecto, una carpeta o una organización, para ejercer el principio de privilegio mínimo.

Si otorgas acceso a un recurso superior (por ejemplo, a un proyecto), otorgas acceso de manera implícita a todos los recursos secundarios (por ejemplo, a todas las VM de ese proyecto). Para limitar el acceso a los recursos, establece las políticas de IAM en los recursos de nivel inferior cuando sea posible, en lugar de hacerlo a nivel de proyecto o a un nivel superior.

Para obtener información general sobre cómo otorgar, cambiar y revocar el acceso a los recursos no relacionados con Vertex AI Workbench, por ejemplo, a fin de otorgar acceso a un proyecto de Google Cloud, consulta la documentación de la IAM Otorga, cambia y revoca el acceso a los recursos.

Limitaciones de acceso

El acceso a una instancia puede incluir una amplia gama de capacidades, según lel rol que asignes al principal. Por ejemplo, puedes otorgar a una principal la capacidad de iniciar, detener, actualizar y supervisar el estado de una instancia. Para obtener la lista completa de permisos de IAM disponibles, consulta Roles predefinidos de IAM de notebooks administrados.

Sin embargo, incluso otorgar a una instancia principal acceso completo a una instancia de notebook administrada no otorga la capacidad de usar la interfaz de JupyterLab de la instancia. Para otorgar acceso a la interfaz de JupyterLab, consulta lo siguiente:Administrar el acceso a la interfaz de JupyterLab de una instancia de notebooks administrados.

Otorga acceso a instancias de notebooks administradas

Para otorgar permiso a los usuarios a fin de que accedan a una instancia específica de notebooks administrados, configura una política de IAM en la instancia.

Para otorgar un rol a una principal en una instancia de notebooks administrada, usa el método getIamPolicy a fin de recuperar la política actual y editar la actual el acceso de la política y, luego, usa el método setIamPolicy para actualizar la política en la instancia.

Recupera la política actual

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • INSTANCE_NAME: Es el nombre de tu instancia de notebook administrada.

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 siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://notebooks.googleapis.com/v1/INSTANCE_NAME:getIamPolicy"

PowerShell

Ejecuta el siguiente 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
La respuesta es el texto de la política de IAM de tu instancia. Consulta lo siguiente para ver un ejemplo:
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Edita la política

Edita la política con un editor de texto para agregar o quitar miembros y sus roles asociados. Por ejemplo, para otorgar el rol notebooks.admin a eve@example.com, agrega la siguiente vinculación nueva a la política en la sección "bindings":

{
  "role": "roles/notebooks.admin",
  "members": [
    "user:eve@example.com"
  ]
}

Después de agregar la vinculación nueva, 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
}

Actualiza la política en la instancia

En el cuerpo de la solicitud, proporciona la política de IAM actualizada del paso anterior, anidada dentro de una sección "policy".

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • INSTANCE_NAME: Es el nombre de tu instancia de notebook administrada.

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 exitoso (2xx) y una respuesta vacía.

Otorga acceso a la interfaz de JupyterLab

Si se otorga acceso principal a una instancia de notebook administrada, no se brinda la capacidad de usar la interfaz de JupyterLab de la instancia. Para otorgar acceso a la interfaz de JupyterLab, consulta lo siguiente:Administrar el acceso a la interfaz de JupyterLab de una instancia de notebooks administrados.

¿Qué sigue?