Control de acceso

En esta página se describe cómo controlar el acceso a las instancias de Filestore.

Configuración de exportación de recurso compartido de archivos

A un archivo compartido de Filestore se le asigna la siguiente configuración predeterminada de /etc/exports:

  • La lista de clientes, que identifica a los clientes autorizados a conectarse al recurso compartido de archivos, contiene todas las direcciones IP internas de la red de VPC que seleccionaste para la instancia de Filestore. Las direcciones IP internas pueden ser cualquier rango que aparezca en los rangos de subredes. Sin embargo, si tienes clientes en rangos de subred que no son RFC 1918, debes otorgarles acceso de forma explícita a la instancia de Filestore mediante el control de acceso basado en IP.
  • Se usa la opción rw, de modo que el archivo compartido permite operaciones de lectura y escritura.
  • Se utiliza la opción no_root_squash de asignación de ID del usuario, por lo que se espera que todos los usuarios y grupos, incluido el usuario raíz, sean los mismos tanto en la instancia de Filestore como en el cliente.
  • Todas las demás opciones usan los valores predeterminados de /etc/exports.

Instancias de nivel básico

Las instancias SSD básico y HDD crean un recurso compartido exportado etiquetado como /config/google-prober, que se usa para ayudar a admitir procesos de sondeo internos que, a su vez, verifican el acceso, la durabilidad o el rendimiento. El recurso compartido se exporta a una lista de clientes a la que solo puede acceder la dirección IP de la instancia, con la misma configuración que se indica en la sección anterior. Los sondeos que se alojan en la instancia o se originan en ella solo pueden acceder al recurso compartido, y no es posible acceder fuera de ella. La instancia exporta el recurso compartido independientemente de si se aplica el control de acceso basado en IP. Los usuarios pueden ver el recurso compartido exportado con el comando showmount -e.

Control de acceso basado en IP

Puedes cambiar esta configuración de exportación si creas reglas de control de acceso con la consola de Google Cloud o si especificas un archivo de configuración JSON durante la creación de la instancia con lgcloud CLIud. Para obtener más detalles, consulta Configura el control de acceso basado en IP.

También puedes agregar nuevas reglas de control de acceso o modificar las existentes después de crear una instancia. Para obtener más detalles, consulta Edita instancias.

Permisos para recursos compartidos de archivo

Cuando creas una instancia de Filestore, los archivos compartidos de esa instancia tienen permisos de archivo POSIX predeterminados de rwxr-xr-x. Estos permisos implican que, en una instancia de Filestore, solo los usuarios raíz de clientes conectados tienen acceso de lectura y escritura a los archivos compartidos. Otros usuarios solo tienen acceso de lectura de forma predeterminada. Los usuarios raíz del cliente pueden cambiar sus permisos y propietarios.

Configura el acceso de un recurso compartido de archivo

Cuando activas un recurso compartido, puedes usar las opciones de activación y la configuración de /etc/fstab para determinar si el recurso compartido de archivos puede escribirse y si se pueden ejecutar archivos en él. Después de activar el archivo compartido, puedes usar comandos estándar de Linux, como chmod y setfacl, para establecer permisos de archivos y archivos compartidos. Solo los niveles básicos admiten setfacl.

Establece permisos coherentes

Te recomendamos que establezcas permisos coherentes para cada usuario en todos los clientes que se conecten a la misma instancia de Filestore para evitar la elevación de privilegios. Si un recurso compartido de archivos está activado en más de un cliente y un usuario tiene privilegios de administrador en un cliente, pero no en los otros, es posible la siguiente situación de elevación de privilegios:

  • Un usuario configura el atributo setuid en un archivo ejecutable desde el cliente en el que el usuario tiene acceso raíz.
  • Luego, el usuario sube el archivo ejecutable a los archivos compartidos.
  • El usuario ejecuta el archivo subido como raíz en cualquier cliente en el que tenga, al menos, permiso de lectura.

Esta situación es posible porque el bit setuid permite al usuario ejecutar un archivo con los permisos del propietario del archivo, que en este caso es raíz.

Permisos superpuestos

Las instancias zonales, regionales y empresariales ahora admiten permisos superpuestos.

Si se definen dos reglas de control de acceso separadas para las subredes de direcciones IP superpuestas, tendrá prioridad la regla definida para la subred más pequeña.

Por ejemplo, si un archivo de configuración JSON contiene una regla que otorga acceso de lectura y escritura a la subred de direcciones IPv4 10.0.0.0/24, y una regla diferente otorga acceso de solo lectura a la subred de dirección IPv4 10.0.0.0/28, Filestore reconocerá y aplicará primero la regla para la subred más pequeña. Luego, la otra regla se aplica a las partes restantes de la subred de la dirección IP definida. En este ejemplo, a un cliente que usa la dirección IPv4 10.0.0.20 se le otorgan permisos de lectura y escritura, mientras que a un cliente que usa 10.0.0.12 se le otorgan permisos de solo lectura:

   {
  "--file-share":
    {
      "capacity": "2048",
      "name": "my_vol",
      "nfs-export-options": [
        {
          "access-mode": "READ_WRITE",
          "ip-ranges": [
            "10.0.0.0/24"
          ],
          "squash-mode": "ROOT_SQUASH",
          "anon_uid": 1003,
          "anon_gid": 1003
        },
         {
          "access-mode": "READ_ONLY",
          "ip-ranges": [
            "10.0.0.0/28"
          ],
          "squash-mode": "NO_ROOT_SQUASH"
        }
      ]
    }
}

Se aplican algunas restricciones:

  • Los permisos de superposición para subredes IPv4 idénticas no son compatibles y muestran un error.

  • Los permisos de superposición no son compatibles con las instancias básicas de SSD o HDD básicas.

¿Qué sigue?