Implementando diretórios lógicos - AWS Transfer Family

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implementando diretórios lógicos

Importante

Requisitos do diretório raiz

  • Se você não estiver usando as configurações de otimização de desempenho do Amazon S3, seu diretório raiz deve existir na inicialização.

  • Para o Amazon S3, isso significa criar um objeto de zero bytes que termina com uma barra (). /

  • Para evitar esse requisito, considere habilitar a otimização de desempenho do Amazon S3 ao criar ou atualizar seu servidor.

  • Ao especificar um HomeDirectory com LOGICAL HomeDirectoryType, o valor deve ser mapeado para um de seus mapeamentos lógicos de diretório. O serviço valida isso durante a criação e as atualizações do usuário para evitar configurações que não funcionariam.

Configuração lógica do diretório inicial

Ao usar LOGICAL como seu HomeDirectoryType, observe o seguinte:

  • O HomeDirectory valor deve corresponder a um dos mapeamentos de diretórios lógicos existentes.

  • O sistema valida isso automaticamente durante a criação e as atualizações do usuário.

  • Essa validação evita configurações que causariam problemas de acesso.

Habilitar diretórios lógicos

Para usar diretórios lógicos para um usuário, defina o HomeDirectoryType parâmetro como. LOGICAL Faça isso ao criar um novo usuário ou atualizar um usuário existente.

"HomeDirectoryType": "LOGICAL"

Habilitar chroot para usuários

Em chroot, crie uma estrutura de diretórios que consiste em um emparelhamento de Entry e Target para cada usuário. A entrada/representa a pasta raiz, enquanto o Target especifica a localização real em seu bucket ou sistema de arquivos.

Example for Amazon S3
[{"Entry": "/", "Target": "/amzn-s3-demo-bucket/jane"}]
Example for Amazon EFS
[{"Entry": "/", "Target": "/fs-faa1a123/jane"}]

É possível usar um caminho absoluto, como no exemplo anterior, ou pode usar uma substituição dinâmica para o nome de usuário com ${transfer:UserName}, como no exemplo a seguir.

[{"Entry": "/", "Target": "/amzn-s3-demo-bucket/${transfer:UserName}"}]

No exemplo anterior, o usuário está bloqueado em seu diretório raiz e não pode ficar maior na hierarquia.

Estrutura do diretório virtual

Para uma estrutura de diretório virtual, é possível criar vários emparelhamentos de Entry e Target, com destinos em qualquer lugar em seus buckets S3 ou sistemas de arquivos do EFS, inclusive em vários buckets ou sistemas de arquivos, desde que o mapeamento de perfis do IAM do usuário tenha permissões de acesso a eles.

No exemplo de estrutura virtual a seguir, quando o usuário faz login no AWS SFTP, ele está no diretório raiz com subdiretórios de/pics,/doc, e. /reporting /anotherpath/subpath/financials

nota

A menos que você opte por otimizar o desempenho dos diretórios do Amazon S3 (ao criar ou atualizar um servidor), o usuário ou o administrador precisará criar os diretórios, caso eles ainda não existam. Evitar esse problema é um motivo para considerar a otimização do desempenho do Amazon S3.

Para o Amazon EFS, você ainda precisa do administrador para criar os mapeamentos lógicos ou o / diretório.

[ {"Entry": "/pics", "Target": "/amzn-s3-demo-bucket1/pics"}, {"Entry": "/doc", "Target": "/amzn-s3-demo-bucket1/anotherpath/docs"}, {"Entry": "/reporting", "Target": "/amzn-s3-demo-bucket2/Q1"}, {"Entry": "/anotherpath/subpath/financials", "Target": "/amzn-s3-demo-bucket2/financials"}]

nota

Você só pode fazer upload de arquivos para as pastas específicas que mapear. Isso significa que, no exemplo anterior, você não pode fazer upload para diretórios /anotherpath ou anotherpath/subpath; somente anotherpath/subpath/financials. Você também não pode mapear esses caminhos diretamente, pois caminhos com sobreposição não são permitidos.

Por exemplo, suponha que você crie os seguintes mapeamentos:

{ "Entry": "/pics", "Target": "/amzn-s3-demo-bucket/pics" }, { "Entry": "/doc", "Target": "/amzn-s3-demo-bucket/mydocs" }, { "Entry": "/temp", "Target": "/amzn-s3-demo-bucket2/temporary" }

Você só pode fazer upload de arquivos para esses buckets. Quando você se conecta pela primeira vez por meio de sftp, você é colocado no diretório raiz, /. Se você tentar fazer upload de um arquivo para esse diretório, o upload falhará. Os comandos a seguir mostram uma sequência de exemplo:

sftp> pwd Remote working directory: / sftp> put file Uploading file to /file remote open("/file"): No such file or directory

Para fazer upload para qualquer directory/sub-directory, você deve mapear explicitamente o caminho para o sub-directory.

Para obter mais informações sobre como configurar diretórios lógicos e chroot para seus usuários, incluindo um AWS CloudFormation modelo que você pode baixar e usar, consulte Simplifique sua estrutura de AWS SFTP com chroot e diretórios lógicos no blog de armazenamento. AWS