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á.
Como usar diretórios lógicos para simplificar suas estruturas de diretórios do Transfer Family
Os diretórios lógicos simplificam a estrutura de diretórios do AWS Transfer Family servidor. Com diretórios lógicos, você pode criar uma estrutura de diretórios virtuais com nomes fáceis de usar que os usuários navegam quando se conectam ao seu bucket do Amazon S3 ou ao sistema de arquivos do Amazon EFS. Isso impede que os usuários vejam os caminhos reais do diretório, os nomes dos buckets e os nomes do sistema de arquivos.
nota
Você deve usar políticas de sessão para que seus usuários finais possam realizar somente as operações que você permite que eles realizem.
Você deve usar diretórios lógicos para criar um diretório virtual fácil de usar para seus usuários finais e abstrair os nomes dos buckets. Os mapeamentos lógicos de diretórios só permitem que os usuários acessem seus caminhos lógicos e subdiretórios designados e proíbem caminhos relativos que atravessam as raízes lógicas.
O Transfer Family valida todos os caminhos que podem incluir elementos relativos e bloqueia ativamente a resolução desses caminhos antes de passarmos esses caminhos para o Amazon S3; isso impede que seus usuários ultrapassem seus mapeamentos lógicos.
Embora o Transfer Family impeça que seus usuários finais acessem diretórios fora do diretório lógico, recomendamos que você também use funções ou políticas de sessão exclusivas para impor privilégios mínimos no nível de armazenamento.
Entendendo o chroot e a estrutura de diretórios
Uma operação chroot permite que você defina o diretório raiz de um usuário em qualquer local na sua hierarquia de armazenamento. Isso restringe os usuários ao diretório inicial ou raiz configurado, impedindo o acesso aos diretórios de nível superior.
Considere um caso em que um usuário do Amazon S3 esteja limitado a. amzn-s3-demo-bucket/home/${transfer:UserName} Sem o chroot, alguns clientes podem permitir que os usuários migrem para /amzn-s3-demo-bucket/home, exigindo um logout e um login para retornar ao diretório correto. A execução de uma operação chroot evita esse problema.
Você pode criar estruturas de diretórios personalizadas em vários buckets e prefixos. Isso é útil se seu fluxo de trabalho exigir um layout de diretório específico que os prefixos de bucket por si só não podem fornecer. Você também pode se vincular a vários locais não contíguos no Amazon S3, semelhante à criação de um link simbólico em um sistema de arquivos Linux em que o caminho do diretório faz referência a um local diferente no sistema de arquivos.
Regras para usar diretórios lógicos
Esta seção descreve algumas regras e outras considerações sobre o uso de diretórios lógicos.
Limites de mapeamento
-
Somente um mapeamento é permitido quando
Entryé"/"(nenhum caminho sobreposto é permitido). -
Os diretórios lógicos oferecem suporte a mapeamentos de até 2,1 MB para usuários personalizados de IDP e AD e 2.000 entradas para usuários gerenciados por serviços. Você pode calcular o tamanho dos mapeamentos da seguinte forma:
-
Escreva um mapeamento típico no formato
{"Entry":"/, ondeentry-path","Target":"/target-path"}e ondeentry-pathestão os valores reais que você usará.target-path -
Conte os caracteres dessa string e adicione um (1).
-
Multiplique esse número pelo número aproximado de mapeamentos que você tem para o seu servidor.
Se o número estimado na etapa 3 for menor que 2,1 MB, seus mapeamentos estão dentro do limite aceitável.
-
Requisitos do caminho de destino
-
Use a
${transfer:UserName}variável se o caminho do bucket ou do sistema de arquivos tiver sido parametrizado com base no nome de usuário. -
Os destinos podem ser configurados para apontar para diferentes buckets ou sistemas de arquivos do Amazon S3, desde que a função IAM associada tenha as permissões necessárias para acessar esses locais de armazenamento.
-
Todos os alvos devem começar com uma barra (
/), mas não podem terminar com uma. Por exemplo,/amzn-s3-demo-bucket/imagesestá correto, enquantoamzn-s3-demo-bucket/imagese não/amzn-s3-demo-bucket/images/está.
Considerações sobre armazenamento
-
O Amazon S3 é um armazenamento de objetos em que as pastas existem apenas como um conceito virtual. Ao usar o armazenamento do Amazon S3, o Transfer Family relata prefixos como diretórios nas operações STAT, mesmo se não houver um objeto de zero byte com uma barra final. Um objeto adequado de zero bytes com uma barra final também é relatado como um diretório nas operações STAT. Esse comportamento é descrito em Organização de objetos no console do Amazon S3 usando pastas no Guia do usuário do Amazon Simple Storage Service.
-
Para aplicativos que precisam distinguir entre arquivos e pastas, use o Amazon Elastic File System (Amazon EFS) como sua opção de armazenamento do Transfer Family.
-
Se você estiver especificando valores de diretório lógico para seu usuário, o parâmetro usado dependerá do tipo de usuário:
-
Para usuários gerenciados por serviços, forneça valores de diretório lógico em
HomeDirectoryMappings. -
Para usuários de provedores de identidade personalizados, forneça valores de diretório lógico em
HomeDirectoryDetails.
-
Valores do diretório de usuários
-
O parâmetro para especificar os valores lógicos do diretório depende do seu tipo de usuário:
-
Para usuários gerenciados por serviços, forneça valores de diretório lógico em
HomeDirectoryMappings. -
Para usuários de provedores de identidade personalizados, forneça valores de diretório lógico em
HomeDirectoryDetails.
-
-
Ao usar o LOGICAL HomeDirectoryType, você pode especificar um HomeDirectory valor para usuários do Service Managed, acesso ao Active Directory e implementações do Provedor de Identidade Personalizado, onde HomeDirectoryDetails eles são fornecidos na resposta. Se não for especificado, o HomeDirectory padrão é.
/
Para obter detalhes sobre como implementar diretórios lógicos, consulteImplementando diretórios lógicos.
Configure diretórios lógicos para o Amazon EFS
Se o seu servidor do Transfer Family usa o Amazon EFS, o diretório inicial do usuário deve ser criado com acesso de leitura e gravação antes que o usuário possa trabalhar em seu diretório inicial lógico. O usuário não pode criar esse diretório sozinho, pois não teria permissões para mkdir em seu diretório inicial lógico.
Se o diretório inicial do usuário não existir e ele executar um comando ls, o sistema responderá da seguinte forma:
sftp> ls remote readdir ("/"): No such file or directory
Um usuário com acesso administrativo ao diretório pai precisa criar o diretório inicial lógico do usuário.
AWS Lambda Resposta personalizada
É possível usar diretórios lógicos com uma função do Lambda que se conecta ao seu provedor de identidade personalizado. Para fazer isso, em sua função do Lambda, você especifica o HomeDirectoryType como LOGICAL e adiciona os valores Entry e Target para o parâmetro HomeDirectoryDetails. Por exemplo:
HomeDirectoryType: "LOGICAL" HomeDirectoryDetails: "[{\"Entry\": \"/\", \"Target\": \"/amzn-s3-demo-bucket/theRealFolder"}]"
O código seguinte é um exemplo da uma resposta de êxito de uma chamada de autenticação Lambda personalizado.
aws transfer test-identity-provider \ --server-id s-1234567890abcdef0 \ --user-name myuser { "Url": "https://a1b2c3d4e5.execute-api.us-east-2.amazonaws.com/prod/servers/s-1234567890abcdef0/users/myuser/config", "Message": "", "Response": "{\"Role\": \"arn:aws:iam::123456789012:role/bob-usa-role\", \"HomeDirectoryType\": \"LOGICAL\", \"HomeDirectoryDetails\": \"[{\\\"Entry\\\":\\\"/myhome\\\",\\\"Target\\\":\\\"/amzn-s3-demo-bucket/theRealFolder\\\"}]\", \"PublicKeys\": \"[ssh-rsa myrsapubkey]\"}", "StatusCode": 200 }
nota
A linha "Url": é retornada somente se você estiver usando um método do API Gateway como seu provedor de identidade personalizado.