Configure el almacenamiento para usarlo con AWS Transfer Family - AWS Transfer Family

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configure el almacenamiento para usarlo con AWS Transfer Family

En este tema se describen las opciones de almacenamiento que puede utilizar con AWS Transfer Family. Puede utilizar Amazon S3 o Amazon EFS como almacenamiento para sus servidores Transfer Family.

Configurar un bucket de Amazon S3

AWS Transfer Family accede a su bucket de Amazon S3 para atender las solicitudes de transferencia de sus usuarios, por lo que debe proporcionar un bucket de Amazon S3 como parte de la configuración de su servidor habilitado para el protocolo de transferencia de archivos. Puede usar un bucket existente o crear uno nuevo.

nota

No es necesario utilizar un servidor y un bucket de Amazon S3 que estén en la misma región de AWS , pero lo aconsejamos como práctica recomendada.

Al configurar los usuarios debe asignar a cada uno un rol de IAM. Este rol determina el nivel de acceso que tienen al bucket de Amazon S3.

Para obtener más información sobre la creación de un nuevo bucket, consulte la sección de ¿Como creo un bucket S3? en la Guía del usuario de Amazon Simple Storage Service.

nota

Puede usar el bloqueo de objetos de Amazon S3 para evitar que se elimine o se sobrescriba un objeto durante un periodo de tiempo determinado o de manera indefinida. Esto funciona de la misma manera con Transfer Family que con otros servicios. Si un objeto existe y está protegido, no se permite escribir en ese archivo ni eliminarlo. Para obtener más información acerca de Bloqueo de objetos en Amazon S3, consulte Uso de Bloqueo de objetos en Amazon S3 en la Guía del usuario de Amazon Simple Storage Service.

Puntos de acceso de Amazon S3

AWS Transfer Family es compatible con los puntos de acceso Amazon S3, una función de Amazon S3 que le permite administrar fácilmente el acceso granular a los conjuntos de datos compartidos. Puede usar alias de punto de acceso de S3 en cualquier lugar donde utilice nombres de bucket de S3. Puede crear cientos de puntos de acceso en Amazon S3 para los usuarios que tienen diferentes permisos de acceso a los datos compartidos en un bucket de Amazon S3.

Por ejemplo, puede usar los puntos de acceso para permitir que tres equipos diferentes tengan acceso al mismo conjunto de datos compartido: un equipo puede leer los datos de S3, un segundo equipo puede escribir datos en S3 y el tercer equipo puede leer, escribir y eliminar datos de S3. Para implementar un control de acceso granular como el mencionado anteriormente, puede crear un punto de acceso S3 que contenga una política que dé acceso asimétrico a los diferentes equipos. Puede usar los puntos de acceso S3 con su servidor de Transfer Family para lograr un control de acceso detallado, sin necesidad de crear una política de bucket de S3 compleja que abarque cientos de casos de uso. Para obtener más información sobre cómo utilizar los puntos de acceso S3 con un servidor Transfer Family, consulte la entrada del blog Enhance data access control with AWS Transfer Family Amazon S3.

nota

AWS Transfer Family actualmente no es compatible con los puntos de acceso multirregionales de Amazon S3.

HeadObject Comportamiento de Amazon S3

nota

Al crear o actualizar un servidor Transfer Family, puede optimizar el rendimiento de sus directorios de Amazon S3, lo que elimina las HeadObject llamadas.

En Amazon S3, los buckets y objetos son los principales recursos, y los objetos se almacenan en buckets. Amazon S3 puede imitar un sistema de archivos jerárquico, pero a veces puede comportarse de forma diferente a un sistema de archivos normal. Por ejemplo, los directorios no son un concepto de primera clase en Amazon S3, sino que se basan en claves de objetos. AWS Transfer Family deduce la ruta de un directorio dividiendo la clave de un objeto por la barra diagonal (/), tratando el último elemento como el nombre del archivo y agrupando los nombres de los archivos que tienen el mismo prefijo en la misma ruta. Los objetos de cero bits se crean para representar la ruta de una carpeta cuando se crea un directorio vacío con mkdir o mediante la consola Amazon S3. La clave de estos objetos termina en una barra diagonal al final. Estos objetos de cero bits se describen en Organizar objetos en la consola de Amazon S3 mediante carpetas de la Guía del usuario de Amazon S3.

Cuando ejecuta un ls comando y algunos resultados son objetos de cero bytes de Amazon S3 (estos objetos tienen claves que terminan en barra inclinada), Transfer Family emite una HeadObject solicitud para cada uno de estos objetos (consulte la referencia de HeadObjectla API de Amazon Simple Storage Service para obtener más información). Esto puede provocar los siguientes problemas al utilizar Amazon S3 como almacenamiento con Transfer Family.

Otorgue la capacidad de escribir y enumerar únicamente archivos

En algunos casos, es posible que desee ofrecer únicamente acceso de escritura a sus objetos de Amazon S3. Por ejemplo, es posible que desee proporcionar acceso para escribir (o cargar) y enumerar objetos en un bucket, pero no para leer (descargar) objetos. Para ejecutar ls mkdir comandos mediante clientes de transferencia de archivos, debe tener Amazon S3 ListObjects y PutObject permisos. Sin embargo, cuando Transfer Family necesita realizar una HeadObject llamada para escribir o enumerar archivos, la llamada falla y aparece el error Acceso denegado, ya que esta llamada requiere el GetObject permiso.

nota

Al crear o actualizar un servidor Transfer Family, puede optimizar el rendimiento de sus directorios de Amazon S3, lo que elimina las HeadObject llamadas.

En este caso, puede conceder el acceso añadiendo una condición de política AWS Identity and Access Management (IAM) que añada el GetObject permiso solo para los objetos que terminen en una barra diagonal ()/. Esta condición impide GetObject las llamadas a los archivos (por lo que no se pueden leer), pero permite al usuario enumerar las carpetas y recorrerlas. El siguiente ejemplo de política solo ofrece acceso de escritura y lista a sus buckets de Amazon S3. Para usar esta política, DOC-EXAMPLE-BUCKET sustitúyala por el nombre de tu bucket.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListing", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET" }, { "Sid": "AllowReadWrite", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }, { "Sid": "DenyIfNotFolder", "Effect": "Deny", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "NotResource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*/" ] } ] }
nota

Esta política no permite a los usuarios añadir archivos. En otras palabras, un usuario al que se le asigne esta política no puede abrir archivos para añadirles contenido o modificarlos. Además, si su caso de uso requiere una llamada a HeadObject antes de cargar un archivo, esta política no le servirá.

Gran cantidad de objetos de cero bits que provocan problemas de latencia

Si sus buckets de Amazon S3 contienen una gran cantidad de estos objetos de cero bytes, Transfer Family emite muchas HeadObject llamadas, lo que puede provocar retrasos en el procesamiento. La solución recomendada para este problema es habilitar los directorios optimizados para reducir la latencia.

Por ejemplo, supongamos que va a su directorio principal y tiene 10 000 subdirectorios. En otras palabras, su bucket de Amazon S3 tiene 10 000 carpetas. En este escenario, si ejecuta el comando ls (list), la operación de lista tarda entre seis y ocho minutos. Sin embargo, si optimiza los directorios, esta operación solo tardará unos segundos. Esta opción se establece en la pantalla Configurar detalles adicionales durante el procedimiento de creación o actualización del servidor. Estos procedimientos se detallan en el Configuración de un punto final de servidor SFTP, FTPS o FTP tema.

nota

Los clientes GUI pueden emitir un ls comando fuera de su control, por lo que es importante habilitar esta configuración si es posible.

Si no optimiza o no puede optimizar sus directorios, una solución alternativa a este problema es eliminar todos los objetos de cero bytes. Tenga en cuenta lo siguiente:

  • Los directorios vacíos dejarán de existir. Los directorios solo existen porque sus nombres están en la clave de un objeto.

  • No impide que alguien vuelva a llamar mkdir y romper cosas una y otra vez. Puede mitigar esto mediante la elaboración de una política que impida la creación de directorios.

  • Algunos escenarios utilizan estos objetos de 0 bits. Por ejemplo, tiene una estructura como /inboxes/customer1000 y el directorio de la bandeja de entrada se limpia todos los días.

Por último, otra posible solución es limitar el número de objetos visibles mediante una política que reduzca el número de HeadObject llamadas. Para que esta sea una solución viable, debe aceptar que solo podrá ver un conjunto limitado de todos sus subdirectorios.

Configuración de un sistema de archivos Amazon EFS

AWS Transfer Family accede a Amazon Elastic File System (Amazon EFS) para atender las solicitudes de transferencia de los usuarios. Por lo tanto, debe proporcionar un sistema de archivos Amazon EFS como parte de la configuración de su servidor habilitado para el protocolo de File Transfer. Puede usar un sistema de archivos existente o crear uno nuevo.

Tenga en cuenta lo siguiente:

  • Si utiliza un servidor Transfer Family y un sistema de archivos Amazon EFS, el servidor y el sistema de archivos deben estar en el mismo lugar Región de AWS.

  • No es necesario que el servidor y el sistema de archivos estén en la misma cuenta. Si el servidor y el sistema de archivos no están en la misma cuenta, la política del sistema de archivos debe conceder permisos explícitos al rol de usuario.

    Para obtener información sobre cómo configurar varias cuentas, consulte Administrar las AWS cuentas de su organización en la Guía del AWS Organizations usuario.

  • Al configurar los usuarios debe asignar a cada uno un rol de IAM. Este rol determina el nivel de acceso que tiene su sistema de archivos Amazon EFS.

  • Para obtener más información sobre el montaje de un sistema de archivos Amazon EFS, consulte Montaje de sistemas de archivos Amazon EFS.

Para obtener más información sobre cómo AWS Transfer Family funcionan juntos Amazon EFS, consulte Using AWS Transfer Family to access files in your Amazon EFS file system en la Guía del usuario de Amazon Elastic File System.

Propiedad de archivos de Amazon EFS

Amazon EFS utiliza el modelo de permisos de archivos de la Interfaz de sistema operativo portátil (POSIX) para representar la propiedad de los archivos.

En POSIX, los usuarios del sistema se clasifican en tres clases de permisos distintas: cuando permite a un usuario acceder a los archivos almacenados en un sistema de archivos Amazon EFS mediante AWS Transfer Family, debe asignarle un «perfil POSIX». Este perfil se utiliza para determinar su acceso a los archivos y directorios del sistema de archivos Amazon EFS.

  • Usuario (u): propietario del archivo o directorio. Por lo general, el creador de un archivo o directorio también es el propietario.

  • Grupo (g): conjunto de usuarios que necesitan un acceso idéntico a los archivos y directorios que comparten.

  • Otros (o): todos los demás usuarios que tienen acceso al sistema, excepto el propietario y los miembros del grupo. Esta clase de permiso también se denomina “Pública”.

En el modelo de permisos POSIX, cada objeto del sistema de archivos (archivos, directorios, enlaces simbólicos, canales con nombre y conectores) está asociado a los tres conjuntos de permisos mencionados anteriormente. Los objetos de sistema de archivos de Amazon EFS tienen un modo de estilo Unix asociado a ellos. Este valor de modo define los permisos para realizar acciones en ese objeto.

Además, en los sistemas de estilo Unix, los usuarios y los grupos se asignan a identificadores numéricos, que Amazon EFS utiliza para representar la propiedad del archivo. En el caso de Amazon EFS, los objetos pertenecen a un único propietario y a un único grupo. Amazon EFS usa estos ID numéricos para comprobar los permisos cuando un usuario intenta acceder a un objeto del sistema de archivos.

Configuración de los usuarios de Amazon EFS para Transfer Family

Antes de configurar los usuarios de Amazon EFS, puede realizar uno de los siguientes procedimientos:

nota

Los servidores de Transfer Family no admiten los puntos de acceso de Amazon EFS para establecer permisos POSIX. Los perfiles POSIX de los usuarios de Transfer Family (descritos en la sección anterior) ofrecen la posibilidad de establecer permisos POSIX. Estos permisos se establecen a nivel de usuario, para un acceso detallado, en función del UID, el GID y los GID secundarios.

Configuración de los usuarios de Transfer Family en Amazon EFS

Transfer Family asigna los usuarios al UID/GID y a los directorios que especifique. Si el UID/GID/los directorios aún no existen en EFS, debe crearlos antes de asignarlos en Transfer a un usuario. Para obtener más información sobre como crear usuarios Amazon EFS, consulte Trabajar con usuarios, grupos y permisos en el nivel del sistema de archivos de red (NFS) en la Guía del usuario de Amazon Elastic File System.

Pasos para configurar los usuarios de Amazon EFS en Transfer Family
  1. Asigne el UID y el GID de EFS para su usuario en Transfer Family mediante los campos PosixProfile.

  2. Si desea que el usuario comience en una carpeta específica al iniciar sesión, puede especificar el directorio EFS en el campo HomeDirectory.

Puede automatizar el proceso mediante una CloudWatch regla y una función Lambda. Para ver un ejemplo de una función Lambda que interactúa con EFS, consulte Uso de Amazon EFS para aplicaciones AWS Lambda sin servidor.

Además, puede configurar directorios lógicos para los usuarios de Transfer Family. Para obtener más información, consulte la sección Configuración de directorios lógicos para Amazon EFS del tema Uso de directorios lógicos para simplificar las estructuras de directorios de Transfer Family.

Creación de un usuario raíz de Amazon EFS

Si a su organización le resulta cómodo habilitar el acceso del usuario raíz mediante SFTP/FTPS para la configuración de sus usuarios, puede crear un usuario cuyo UID y GID sean 0 (usuario raíz) y, a continuación, utilizar ese usuario raíz para crear carpetas y asignar propietarios de ID POSIX al resto de los usuarios. La ventaja de esta opción es que no es necesario montar el sistema de archivos de Amazon EFS.

Siga los pasos descritos en Añadir usuarios gestionados por el servicio Amazon EFS y, tanto para el ID de usuario como para el ID de grupo, introduzca 0 (cero).

Comandos de Amazon EFS compatibles

Los siguientes comandos son compatibles con Amazon EFS para AWS Transfer Family.

  • cd

  • ls/dir

  • pwd

  • put

  • get

  • rename

  • chown: solo el usuario raíz (es decir, los usuarios con uid=0) puede cambiar la propiedad y los permisos de los archivos y directorios.

  • chmod: solo el usuario raíz puede cambiar la propiedad y los permisos de los archivos y directorios.

  • chgrp: se admite tanto para el usuario raíz como para el propietario del archivo, que solo puede cambiar el grupo de un archivo para convertirlo en uno de sus grupos secundarios.

  • ln -s/symlink

  • mkdir

  • rm/delete

  • rmdir

  • chmtime