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 administración de identidades y accesos (IAM) que se describen a continuación.

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

A los archivos compartidos de Filestore se les 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 al recurso compartido, se compone de todas las direcciones IP internas en la red VPC que seleccionó para la instancia de Filestore. Las direcciones IP internas están en los rangos 10.0.0.0/8 172.16.0.0/12 y 192.168.0.0/16 según RFC 1918.
  • Se usa la opción rw, por lo que los archivos compartidos son de lectura y escritura.
  • Se utiliza la opción de asignación de ID de usuario no_root_squash, 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 Cómo 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 información, consulta Edita instancias.

Permisos para recursos compartidos de archivo

Cuando crea una instancia de Filestore, el recurso compartido para esa instancia tiene permisos Unix predeterminados de rwxr-xr-x, notación octal 755. Estos permisos denotan que en una instancia de Filestore, solo los usuarios raíz de los clientes conectados tienen acceso de lectura/escritura al recurso compartido. Los otros usuarios solo tienen acceso de lectura de forma predeterminada, pero 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 recurso compartido de archivos de Filestore para un cliente, puedes usar las opciones del comando mount y la configuración del archivo /etc/fstab a fin de determinar si el recurso compartido de archivos activado se puede escribir y si se pueden ejecutar archivos en él. Después de activar el recurso compartido de archivos, puedes usar comandos estándar de Linux, como chmod y setfacl, para configurar los permisos de los archivos y del recurso compartido de archivos.

Establece permisos coherentes

Recomendamos encarecidamente que establezca permisos consistentes para cada usuario en todos los clientes que se conectan a la misma instancia de Filestore, debido a un problema que ocurre cuando:

  • Un recurso compartido de archivos se activa en más de un cliente.
  • Un usuario tiene permisos de administrador en un cliente, pero no en los demás.

El usuario puede subir un archivo con el bit setuid configurado desde el cliente, en el que tiene acceso raíz, lo que luego le permite ejecutar el archivo como administrador en cualquier otro cliente en el que tenga, por lo menos, permiso de lectura. Esto se debe a que el bit setuid permite al usuario ejecutar un archivo con los permisos del propietario del archivo, en este caso de administrador.

Permisos y funciones de IAM

Para otorgar acceso a las operaciones de Filestore, otorga 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. El acceso a las operaciones en el recurso compartido de Filestore, como leer o ejecutar, está determinado por los permisos de Linux.

Usa funciones de Filestore

Puede usar las funciones Editor de Filestore y Visualizador de Filestore para otorgar permisos de Filestore a los usuarios. Si lo prefieres, también puedes usar las funciones básicas para este propósito.

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

Permiso Acción Función del editor de Filestore Función de 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.

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. Puede usar estas funciones además de las funciones de Filestore para otorgar permisos de Filestore a los usuarios.

Use la siguiente tabla para ver los permisos de Filestore asociados con funciones básicas.

Permiso Acción Función de propietario del proyecto Función de editor del proyecto Función de 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.

Funciones personalizadas

Si las funciones de IAM predefinidas no satisfacen tus necesidades, puedes definir una función personalizada con los permisos que especifiques. Para ello, IAM ofrece funciones personalizadas. 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. De lo contrario, la consola Google Cloud no funcionará correctamente para Filestore.