Configura el acceso detallado dentro de las VM


En Compute Engine, puedes usar el acceso al SO para otorgar a los usuarios acceso a las VM y restringirlos con acceso de sudo. Si deseas controlar qué usuarios pueden ver o ejecutar archivos y ejecutables específicos en las VMs, puedes usar las políticas del SO para implementar políticas que automatizan y centralizan la administración de archivos dentro de tu flota de VM.

En este instructivo, se muestra cómo otorgar acceso de lectura al archivo auth.log (/var/log/auth.log) en varias VMs a un grupo de usuarios que no tienen acceso sudo, usando grupos de Acceso al SO y las políticas del SO.

En la mayoría de las configuraciones predeterminadas, los permisos del archivo auth.log se establecen en 640 y el archivo es propiedad del grupo adm. Un usuario al que no se le otorgó la función roles/compute.osAdminLogin de IAM no está en el grupo adm, no tiene acceso sudo y, por lo tanto, no tiene acceso de lectura al archivo.

Si bien este instructivo se centra en la administración de los permisos del usuario en un archivo específico, el flujo de trabajo puede modificarse y usarse para configurar permisos en otros archivos o ejecutables en una VM.

Objetivos

En este instructivo, aprenderás lo siguiente:

  • Cómo crear un grupo de Linux de Acceso al SO
  • Cómo usar una asignación de política de SO para cambiar los permisos de grupo de un archivo en varias VM a la vez

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.

Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Antes de comenzar

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Instala Google Cloud CLI o actualízala a la última versión.
  4. Asegúrate de ser el administrador de Cloud Identity Groups de tu organización. Si no eres administrador de Grupos, haz que el administrador de Grupos de tu organización cree un grupo de Acceso al SO Linux.
  5. Habilitar VM Manager

Prepare el entorno

Antes de que puedas otorgar acceso al archivo auth.log, debes crear algunas VM.

Crea tres VM con el comando gcloud compute instances bulk create:

gcloud compute instances bulk create \
    --name-pattern=tutorial-# \
    --zone=us-west1-a \
    --count=3 \
    --labels=vm=tutorial \
    --metadata=enable-oslogin=TRUE

Deberías ver un mensaje similar al siguiente:

`Bulk create request finished with status message: [VM instances created: 3, failed: 0.]`

Establece permisos de grupo para el archivo auth.log

Para otorgar a un usuario acceso de lectura al archivo auth.log sin otorgarle la función de IAM roles/compute.osAdminLogin, cambia el grupo que posee el archivo a un grupo de Linux del que es miembro.

Crea un grupo de Linux de Acceso al SO

Puedes crear un grupo de Linux de Acceso al SO para agregar un grupo de Linux complementario que aparezca en cada VM que tenga habilitado Acceso al SO. Si creas un grupo de Linux Login OS en lugar de un grupo Linux local complementario, puedes controlar el grupo de Linux en todas las VM de forma unificada.

Para crear un grupo de Linux de Acceso al SO, usa el comando gcloud beta identity groups create:

gcloud beta identity groups create logaccess@ORGANIZATION_DOMAIN \
    --organization=ORGANIZATION_DOMAIN \
    --posix-group=gid=12345,name=logaccess

Reemplaza ORGANIZATION_DOMAIN por el dominio (example.com) asociado a tu organización.

Crea una asignación de política del SO

Puedes usar las políticas del SO para automatizar y centralizar la configuración de tus VMs. Debes aplicar políticas de SO a las VM mediante asignaciones de políticas del SO. Si creas una asignación de política de SO con una política de SO que cambie el grupo predeterminado del archivo auth.log, puedes cambiar el grupo predeterminado del archivo auth.log en varias VM a la vez en lugar de aplicar el cambio a una VM a la vez.

Para crear una asignación de política de SO, haz lo siguiente:

  1. Abre una terminal en tu estación de trabajo.

  2. Crea un archivo .yaml de asignación de política del SO mediante la ejecución del siguiente comando:

    touch tutorial-os-policy-assignment.yaml
    
  3. Abre el archivo tutorial-os-policy-assignment.yaml en un editor de texto y agrega las siguientes especificaciones:

    # OS policy assignment that sets the /var/log/auth.log group to logaccess.
    osPolicies:
     - id: log-access-policy
       mode: ENFORCEMENT
       resourceGroups:
           resources:
             - id: grant-log-access
               exec:
                 validate:
                   # Checks if the group is logaccess. If yes, exits  with code 100. If no,
                   # exits with code 101 and proceeds to the `enforce` step.
                   script:
                     if stat -c '%G' /var/log/auth.log | grep -q 'logaccess'; then exit 100; else exit 101; fi
                   interpreter: SHELL
                 enforce:
                   # Changes the group to logaccess and exits with code 100.
                   script:
                     chgrp logaccess /var/log/auth.log && exit 100
    instanceFilter:
     inclusionLabels:
       - labels:
           vm: tutorial
    rollout:
     disruptionBudget:
       fixed: 10
     minWaitDuration: 30s
    

Aplica la asignación de política de SO a las VM

Para aplicar la asignación de política de SO a tus VM, haz lo siguiente:

  1. Aplica la política de SO mediante el comando gcloud compute os-config os-policy-assignments create:

    gcloud compute os-config os-policy-assignments create log-access-assignment \
       --location=us-west1-a \
       --file=log-access-os-policy-assignment.yaml \
       --async
    

    La asignación de la política del SO se implementa en las VM según las especificaciones de lanzamiento mencionadas en el archivo tutorial-os-policy-assignment.yaml.

  2. Confirma que la asignación de política del SO se lanzó correctamente a las VM y que la asignación de la política del SO actualizó de forma correcta el grupo predeterminado con el comando gcloud compute os-config os-policy-assignment-reports list:

    gcloud compute os-config os-policy-assignment-reports list --location=us-west1-a
    

Agrega usuarios al grupo de Linux de Acceso al SO

Cuando agregas un usuario a un grupo de Linux Login OS, este hereda los permisos del grupo en todas las VM que tienen habilitado Acceso al SO. Para este instructivo, cualquier usuario que agregues al grupo logaccess puede ver el archivo auth.log sin la función roles/compute.osAdminLogin de IAM.

Consulta la documentación de ayuda de Cloud Identity para obtener información sobre cómo agregar un usuario al grupo logaccess.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra el proyecto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Borra los recursos individuales

Borra las VM que creaste con el comando gcloud compute instances delete:

gcloud compute instances delete tutorial-1 tutorial-2 tutorial-3 \
    --zone=us-west1-a

¿Qué sigue?