Administrar el acceso a una instancia de notebook administrada por el usuario
En esta guía, se describe cómo puedes otorgar acceso a una instancia específica de notebooks administrados por el usuario 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 por el usuario, 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 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 permisos de IAM disponibles, consulta Roles predefinidos de IAM de notebooks administrados por el usuario.
Sin embargo, incluso otorgar a una instancia principal acceso completo a una instancia de notebook administrada por el usuario 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 por el usuario.
Otorga acceso a instancias de notebooks administrados por el usuario
Para otorgar permiso a los usuarios a fin de que accedan a una instancia específica de notebooks administrados por el usuario, configura una política de IAM en la instancia.
gcloud
Para otorgar un rol a una principal en una instancia de notebook administrada por el usuario, 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 de notebook administrada por el usuario.
- 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 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 }
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
aeve@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 }
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 de notebook administrada por el usuario.
- 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 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
Otorga acceso a la interfaz de JupyterLab
Si se otorga acceso principal a una instancia de notebook administrada por el usuario, 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 por el usuario.
API
Para otorgar un rol a una principal en una instancia de notebooks administrada por el usuario, 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 por el usuario.
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
{ "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 por el usuario.
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 por el usuario, 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 por el usuario.
¿Qué sigue?
Para obtener información sobre Identity and Access Management (IAM) y cómo los roles de IAM pueden ayudar a otorgar y restringir el acceso, consulta la documentación de IAM.
Obtén más información sobre los roles de IAM disponibles para los notebooks administrados por el usuario de Vertex AI Workbench.
Obtén más información sobre cómo crear y administrar roles personalizados.
Para obtener información sobre cómo otorgar acceso a otros recursos de Google, consulta Administra el acceso a otros recursos.