En este documento, se describe cómo crear y ejecutar un trabajo por lotes como un usuario no raíz.
De forma predeterminada, Batch ejecuta elementos ejecutables como el usuario raíz. Si quieres que Batch ejecute elementos ejecutables como un usuario no raíz (por ejemplo, para ejecutar una aplicación que no permite usuarios raíz o para cumplir con los requisitos de seguridad), crea un trabajo por lotes de Batch que use el Acceso al SO. Cuando habilitas el Acceso al SO en un trabajo por lotes, el Acceso al SO configura una cuenta de usuario para ti en las VMs en las que se ejecuta tu trabajo. Luego, tu cuenta de usuario ejecuta todos los elementos ejecutables del trabajo en la VM en lugar del usuario raíz.
Antes de comenzar
- Si nunca usaste Batch, revisa Comienza a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
Si aún no lo hiciste, ejecuta el siguiente comando para habilitar la API de Acceso al SO:
gcloud services enable oslogin.googleapis.com
-
Para obtener los permisos que necesitas para crear y ejecutar un trabajo como un usuario no raíz, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Editor de trabajos de Batch (
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 - Acceso al SO de Compute (
roles/compute.osLogin) o Acceso de administrador al SO de Compute (roles/compute.osAdminLogin) en el proyecto -
Si perteneces a una organización diferente a la del proyecto:
Usuario externo del acceso al SO de Compute (
roles/compute.osLoginExternalUser) en la organización del proyecto
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
- Editor de trabajos de Batch (
Crea un trabajo que se ejecute como un usuario no raíz
Para crear un trabajo por lotes que ejecute archivos ejecutables a través de tu propia cuenta de usuario, haz lo siguiente:
Usa Google Cloud CLI o la API de REST para
crear un trabajo que
incluya el campo
runAsNonRoot establecido en true en el cuerpo principal del archivo JSON:
"runAsNonRoot": true
Por ejemplo, un trabajo que ejecuta archivos ejecutables como un usuario no raíz 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"
}
}
¿Qué sigue?
- Si tienes problemas para crear o ejecutar un trabajo, consulta Solución de problemas.
- Consulta trabajos y tareas.
- Obtén más información sobre las opciones de creación de trabajos.