Control de acceso

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

Filestore no admite Kerberos para asegurar el acceso a las instancias de Filestore. En su lugar, usa las opciones de Linux y la administración de identidades y accesos (IAM) que se describen en esta página.

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 a los que se les permite conectarse a los archivos compartidos, se compone de todas las direcciones IP internas en la red VPC que seleccionaste para la instancia de Filestore. Las direcciones IP internas pueden ser cualquier rango enumerado en los rangos de subredes. Sin embargo, si tienes clientes en rangos de subredes que no son RFC 1918, debes otorgarles acceso de manera explícita a la instancia de Filestore mediante basadas en IP control de acceso.
  • Se usa la opción rw, por lo que los archivos compartidos son 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.

Control de acceso basado en IP

Puedes cambiar esta configuración de exportación si creas reglas de control de acceso con Cloud Console o si especificas un archivo de configuración json durante la creación de la instancia con la herramienta gcloud. Para obtener más información, consulta Configurar 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, el recurso compartido de archivos para esa instancia tiene permisos de archivo POSIX predeterminados de rwxr-xr-x. Estos permisos significan que, en una instancia de Filestore, solo los usuarios raíz en los clientes conectados tienen acceso de lectura/escritura al archivo compartido. Otros usuarios solo tienen acceso de lectura de forma predeterminada. Los usuarios raíz del cliente pueden cambiar los permisos y los propietarios.

Configura el acceso de un recurso compartido de archivo

Cuando activas un archivo compartido, puedes usar las opciones de activación y la configuración de /etc/fstab para determinar si se puede escribir en el archivo compartido y si archivos se pueden ejecutar en él. Después de activar el uso compartido de archivos, puedes usar comandos estándar de Linux, como chmod y setfacl, a fin de establecer permisos para archivos y archivos compartidos. ,

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 a fin de evitar la elevación de privilegios. Si un recurso compartido de archivos se activa en más de un cliente y un usuario tiene privilegios de raíz en un cliente, pero no en los demás, la siguiente situación de elevación de privilegios es posible:

  • Un usuario establece el atributo setuid en un archivo ejecutable desde el cliente en el que tiene acceso raíz.
  • Luego, el usuario sube el archivo ejecutable para compartirlo.
  • 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 y funciones de IAM

Para otorgar acceso a las operaciones de Filestore, asigna funciones de administración de identidades y accesos (IAM) a los usuarios.

Los permisos de IAM solo controlan el acceso a las operaciones de Filestore, como crear una instancia de Filestore. Para controlar el acceso a las operaciones en el archivo compartido, como leer o ejecutar, usa los permisos de archivo POSIX.

Usa funciones de Filestore

Para otorgar permisos de Filestore a los usuarios, usa las funciones Editor de Filestore (roles/file.editor) y Visualizador de Filestore (roles/file.viewer). Si lo prefieres, también puedes usar las funciones básicas para este fin.

Use la siguiente tabla para ver los permisos de Filestore asociados con las funciones de Filestore.

Permiso Acción Editor de Filestore Visualizador de Filestore
file.locations.get Obtener información sobre una ubicación específica admitida por este servicio
file.locations.list Mostrar una lista con información sobre las ubicaciones compatibles con este servicio
file.instances.create Crear una instancia de Filestore.
file.instances.update Actualizar una instancia de Filestore.
file.instances.delete Eliminar una instancia de Filestore.
file.instances.get Obtener detalles sobre una instancia específica de Filestore.
file.instances.list Enumerar las instancias de Filestore en el proyecto.
file.operations.get Obtener el estado de una operación de instancia de Filestore.
file.operations.list Mostrar una lista de operaciones de instancia de Filestore.
file.operations.cancel Cancelar una operación de instancia de Filestore.
file.operations.delete Eliminar una operación de instancia de Filestore.
file.backups.create Crea una copia de seguridad de Filestore.
file.backups.update Actualiza una copia de seguridad de Filestore
file.backups.delete Borra una copia de seguridad de Filestore
file.backups.get Obtener detalles sobre una instancia específica de Filestore.
file.backups.list Enumerar las instancias de Filestore en el proyecto.

Usa las funciones básicas

Los permisos de Filestore también están asociados con las funciones básicas de IAM de propietario, editor y visualizador. Para otorgar permisos de Filestore a los usuarios, puedes usar estas funciones además de las funciones de Filestore.

Use la siguiente tabla para ver los permisos de Filestore asociados con las funciones de Filestore.

Permiso Acción Propietario del proyecto Editor de proyecto Lector del proyecto
file.locations.get Obtener información sobre una ubicación específica admitida por este servicio
file.locations.list Mostrar una lista con información sobre las ubicaciones compatibles con este servicio
file.instances.create Crear una instancia de Filestore.
file.instances.update Actualizar una instancia de Filestore.
file.instances.delete Eliminar una instancia de Filestore.
file.instances.get Obtener detalles sobre una instancia específica de Filestore.
file.instances.list Enumerar las instancias de Filestore en el proyecto.
file.operations.get Obtener el estado de una operación de instancia de Filestore.
file.operations.list Mostrar una lista de operaciones de instancia de Filestore.
file.operations.cancel Cancelar una operación de instancia de Filestore.
file.operations.delete Eliminar una operación de instancia de Filestore.
file.backups.create Crea una copia de seguridad de Filestore.
file.backups.update Actualiza una copia de seguridad de Filestore
file.backups.delete Borra una copia de seguridad de Filestore
file.backups.get Obtener detalles sobre una instancia específica de Filestore.
file.backups.list Enumerar las instancias de Filestore en el proyecto.

Funciones personalizadas

Si las funciones predefinidas de IAM no satisfacen tus necesidades, puedes definir una función personalizada con los permisos que especifiques con las funciones personalizadas de IAM. Cuando cree funciones personalizadas para Filestore, asegúrese de incluir tanto resourcemanager.projects.get como resourcemanager.projects.list para que la función tenga permiso para consultar los recursos del proyecto.