Administra el acceso a una instancia

En esta guía, se describe cómo otorgar acceso a una instancia específica de Vertex AI Workbench. 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 Vertex AI Workbench, configura una política de Identity and Access Management (IAM) en ella. 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 IAM sobre cómo administrar el acceso a proyectos, carpetas y organizaciones.

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 los permisos de IAM disponibles, consulta Roles predefinidos de IAM de Vertex AI Workbench.

Sin embargo, incluso si se otorga a una principal acceso completo a una instancia de Vertex AI Workbench, no se otorga la capacidad de usar la interfaz de JupyterLab de la instancia. Para otorgar acceso a la interfaz de JupyterLab, consulta Administra el acceso a la interfaz de JupyterLab de una instancia.

Otorga acceso a instancias de Vertex AI Workbench

Para otorgar permisos a los usuarios a fin de que accedan a una instancia específica de Vertex AI Workbench, configura una política de IAM en la instancia.

gcloud

Para otorgar un rol a una principal en una instancia de Vertex AI Workbench, usa el comando get-iam-policy a fin de recuperar la política actual y editar la actual el acceso de la política y, luego, usa el comando set-iam-policy para actualizar la política en la instancia.

Recupera la política actual

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

  • INSTANCE_NAME: Es el nombre de tu instancia
  • PROJECT_ID: el ID del proyecto de Google Cloud
  • ZONE: La zona en la que se encuentra la instancia.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud workbench instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE

Windows (PowerShell)

gcloud workbench instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE

Windows (cmd.exe)

gcloud workbench instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE
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

  1. 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
    }
    
  2. Guarda la política actualizada en un archivo llamado request.json.

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 comando a continuación, realiza los siguientes reemplazos:

  • INSTANCE_NAME: Es el nombre de tu instancia
  • PROJECT_ID: el ID del proyecto de Google Cloud
  • ZONE: La zona en la que se encuentra la instancia.

Guarda el siguiente código 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=ZONE request.json --format=json

Windows (PowerShell)

gcloud workbench instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json

Windows (cmd.exe)

gcloud workbench instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json

Otorga acceso a la interfaz de JupyterLab

Otorgar a una principal acceso a una instancia de Vertex AI Workbench no otorga la capacidad de usar la interfaz de JupyterLab de la instancia. Para otorgar acceso a la interfaz de JupyterLab, consulta Administra el acceso a la interfaz de JupyterLab de una instancia de Vertex AI Workbench.

API

Para otorgar un rol a una principal en una instancia de Vertex AI Workbench, 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

Método HTTP y URL:

GET https://notebooks.googleapis.com/v2/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/v2/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/v2/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

Método HTTP y URL:

POST https://notebooks.googleapis.com/v2/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/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/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

Otorgar a una principal acceso a una instancia de Vertex AI Workbench no otorga la capacidad de usar la interfaz de JupyterLab de la instancia. Para otorgar acceso a la interfaz de JupyterLab, consulta Administra el acceso a la interfaz de JupyterLab de una instancia.

¿Qué sigue?