En este documento se describe cómo crear y ejecutar un trabajo de Batch como usuario no root.
De forma predeterminada, Batch ejecuta los elementos ejecutables como usuario root. Si quieres que Batch ejecute runnables como usuario no root (por ejemplo, para ejecutar una aplicación que no permita usuarios root o para cumplir requisitos de seguridad), crea un trabajo de Batch que utilice Inicio de sesión del SO. Cuando habilitas Inicio de sesión del SO en un trabajo de Batch, Inicio de sesión del SO configura una cuenta de usuario en las VMs en las que se ejecuta el trabajo. Tu cuenta de usuario ejecuta todos los elementos ejecutables del trabajo en la VM en lugar del usuario root.
Antes de empezar
- Si no has usado Batch antes, consulta el artículo Empezar a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
Si aún no lo has hecho, habilita la API OS Login ejecutando el siguiente comando:
gcloud services enable oslogin.googleapis.com
-
Para obtener los permisos que necesitas para crear y ejecutar un trabajo como usuario no root, pídele a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Editor de trabajos por lotes (
roles/batch.jobsEditor
) en el proyecto -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la cuenta de servicio del trabajo, que de forma predeterminada es la cuenta de servicio predeterminada de Compute Engine. -
Inicio de sesión de Compute OS (
roles/compute.osLogin
) o Inicio de sesión de administrador de Compute OS (roles/compute.osAdminLogin
) en el proyecto -
Si perteneces a una organización diferente a la del proyecto:
Usuario externo de Compute OS Login (
roles/compute.osLoginExternalUser
) en la organización del proyecto
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
-
Editor de trabajos por lotes (
Crear un trabajo que se ejecute como un usuario que no sea root
Crea un trabajo por lotes que ejecute archivos ejecutables a través de tu propia cuenta de usuario haciendo lo siguiente:
Usa la CLI de Google Cloud o la API REST para crear un trabajo que incluya el campo runAsNonRoot
con el valor true
en el cuerpo principal del archivo JSON:
"runAsNonRoot": true
Por ejemplo, un trabajo que ejecute archivos ejecutables como usuario no root tendría un archivo de configuración JSON similar al siguiente:
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello World! This is task $BATCH_TASK_INDEX executed by $(whoami)."
}
}
]
},
"taskCount": 3,
"runAsNonRoot": true
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Siguientes pasos
- Si tienes problemas para crear o ejecutar un trabajo, consulta la sección Solución de problemas.
- Ver trabajos y tareas.
- Consulta más información sobre las opciones de creación de trabajos.