Usuários, grupos e permissões do Network File System (NFS)
Após a criação de um sistema de arquivos, por padrão, apenas o usuário raiz (UID 0) tem permissões de ler, gravar e executar. Para os outros usuários modificarem o sistema de arquivos, o usuário raiz deve conceder explicitamente acesso a eles. É possível usar pontos de acesso para automatizar a criação de diretórios dos quais um usuário que não seja raiz pode gravar. Para ter mais informações, consulte Trabalhar com pontos de acesso do Amazon EFS.
Os objetos de sistemas de arquivos do EFS têm um modo de estilo Unix associado a eles. Esse valor de modo define as permissões para executar ações nesse objeto. Usuários familiarizados com sistemas de estilo Unix podem entender facilmente como o Amazon EFS se comporta com relação a essas permissões.
Além disso, em sistemas no estilo Unix, os usuários e grupos são mapeados para identificadores numéricos, que o Amazon EFS usa para representar a propriedade do arquivo. Para o Amazon EFS, os objetos do sistema de arquivos (ou seja, arquivos, diretórios etc.) pertencem a um único proprietário e a um único grupo. O EFS utiliza esses IDs numéricos mapeados para verificar as permissões quando um usuário tenta acessar um objeto do sistema de arquivos.
nota
O protocolo NFS é compatível com no máximo 16 IDs de grupo (GIDs) por usuário e quaisquer GIDs adicionais são truncados das solicitações do cliente NFS. Para ter mais informações, consulte Acesso negado aos arquivos permitidos no sistema de arquivos NFS.
A seguir, você pode encontrar exemplos de permissões e uma discussão sobre as considerações de permissão do NFS para o Amazon EFS.
Tópicos
- Permissões de arquivo e diretório
- Exemplo de casos de uso e permissões do sistema de arquivos do Amazon EFS
- Permissões de ID referentes a usuário e grupo para arquivos e diretórios em um sistema de arquivos
- Sem extermínio de raiz
- Cache de permissões
- Alteração da propriedade do objeto do sistema de arquivo
- Pontos de acesso do EFS
Exemplo de casos de uso e permissões do sistema de arquivos do Amazon EFS
Depois de criar um sistema de arquivos do Amazon EFS e montar destinos para o sistema de arquivos em seu VPC, você pode montar o sistema de arquivos remoto localmente em sua instância do Amazon EC2. O comando mount
pode montar qualquer diretório no sistema de arquivos. No entanto, ao criar o sistema de arquivos pela primeira vez, em /
, existe apenas um diretório raiz. O usuário raiz e o grupo raiz possuem o diretório montado.
O comando mount
a seguir monta o diretório raiz de um sistema de arquivos do Amazon EFS identificado pelo nome DNS do sistema de arquivos, no diretório local do /efs-mount-point
.
sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport
file-system-id
.efs.aws-region.amazonaws.com:/ efs-mount-point
O modo inicial de permissões concede:
-
read-write-execute
permissões para o proprietário raiz -
read-execute
permissões para o grupo raiz -
read-execute
permissões para outras pessoas
Apenas o usuário raiz pode modificar esse diretório. O usuário raiz também pode conceder a outros usuários permissões para gravar nesse diretório, por exemplo:
-
Criar subdiretórios graváveis por usuário. Para obter instruções detalhadas, consulte Tutorial: criar subdiretórios graváveis por usuário.
-
Permitir que usuários gravem no sistema de arquivos raiz do Amazon EFS. Um usuário com privilégios de raiz pode conceder acesso ao sistema de arquivos a outros usuários.
-
Para alterar a propriedade de um sistema de arquivos do EFS para um usuário e grupo não raiz, use o seguinte:
$ sudo chown
user
:group
/EFSroot
-
Para alterar as permissões do sistema de arquivos para algo mais tolerante, use o seguinte:
$ sudo chmod 777 /
EFSroot
Este comando concede os privilégios de ler-gravar-executar a todos os usuários em todas as instâncias do EC2 que têm o sistema de arquivos montado.
-
Permissões de ID referentes a usuário e grupo para arquivos e diretórios em um sistema de arquivos
Os arquivos e diretórios em um sistema de arquivos do Amazon EFS são compatíveis com permissões padrão no estilo Unix para leitura, gravação e execução com base nos IDs de grupo e de usuário. Quando um cliente NFS monta um sistema de arquivos do EFS sem utilizar um ponto de acesso, o ID de usuário e o ID de grupo fornecidos pelo cliente são confiáveis. É possível usar os pontos de acesso do EFS para substituir o ID de usuário e os IDs de grupo usados pelo cliente NFS. Quando um usuário tenta acessar arquivos e diretórios, o Amazon EFS verifica seu ID de usuário e os IDs de grupo para conferir se o usuário tem permissão para acessar os objetos. O Amazon EFS também usa esses IDs como o proprietário, e o proprietário de grupo de novos arquivos e diretórios criados pelo usuário. O Amazon EFS não examina nomes de usuário ou de grupo; só usa os identificadores numéricos.
nota
Quando você cria um usuário em uma instância do EC2, pode atribuir qualquer ID numérico de usuário (UID) ou de grupo (GID) ao usuário. Os IDs numéricos de usuário são definidas no arquivo /etc/passwd
em sistemas Linux. Os IDs numéricos de grupo estão no arquivo /etc/group
. Esses arquivos definem os mapeamentos entre nomes e IDs. Fora da instância do EC2, o Amazon EFS não executa nenhuma autenticação desses IDs, incluindo o ID raiz 0.
Se um usuário acessar um sistema de arquivos do Amazon EFS de duas instâncias diferentes do EC2, se o UID dele for o mesmo ou for diferente nessas instâncias, você verá um comportamento diferente, conforme exibido a seguir:
-
Se os IDs de usuário forem os mesmos nas duas instâncias do EC2, o Amazon EFS os considerará para indicar o mesmo usuário, seja qual for a instância do EC2 usada. A experiência do usuário ao acessar o sistema de arquivos é a mesma em ambas as instâncias do EC2.
-
Se os IDs de usuário não forem os mesmos nas duas instâncias do EC2, o Amazon EFS os considerará como usuários diferentes. A experiência de usuário não é a mesma ao acessar o sistema de arquivos do Amazon EFS de duas instâncias diferentes do EC2.
-
Se dois usuários diferentes em instâncias diferentes do EC2 compartilharem um ID, o Amazon EFS os considerará o mesmo usuário.
Você pode considerar fazer o gerenciamento de mapeamentos de IDs de usuários em instâncias do EC2 de forma consistente. Os usuários podem verificar o ID número deles usando o comando id
.
$ id uid=502(joe) gid=502(joe) groups=502(joe)
Desativar o ID Mapper
Os utilitários do NFS no sistema operacional incluem um daemon chamado ID Mapper, que gerencia o mapeamento entre nomes e IDs de usuários. No Amazon Linux, o daemon é chamado rpc.idmapd
e no Ubuntu é chamado idmapd
. Ele traduz IDs de usuários e grupos em nomes, e vice-versa. No entanto, o EFS lida apenas com IDs numéricos. Recomendamos que você desative esse processo nas suas instâncias do EC2. No Amazon Linux, o mapeador de ID normalmente é desativado, nesse casso, não o ative. Para desativar o mapeador de ID, use os comandos a seguir.
$ service rpcidmapd status $ sudo service rpcidmapd stop
Sem extermínio de raiz
Por padrão, o extermínio de raiz está desativado nos sistemas de arquivos EFS. O EFS se comporta como um servidor NFS Linux com no_root_squash
. Se um ID de usuário ou de grupo é 0, o EFS trata esse usuário como o usuário root
, e ignora verificações de permissões (concedendo acesso e modificação a todos os objetos do sistema de arquivos). O extermínio de raiz poderá ser ativado em uma conexão de cliente quando a política de identidade ou recurso do AWS Identity and Access Management (AWS IAM) não permitir o acesso à ação ClientRootAccess
. Quando o extermínio de raiz está ativado, o usuário raiz é convertido em um usuário com permissões limitadas no servidor NFS.
Para ter mais informações, consulte Usando o IAM para controlar o acesso aos dados do sistema de arquivos.
Habilitar o extermínio de raiz usando a autorização do IAM para clientes NFS
Você pode configurar o Amazon EFS para impedir o acesso raiz ao sistema de arquivos do Amazon EFS para todas as entidades principais da AWS, exceto para uma única estação de trabalho de gerenciamento. É possível fazer isso configurando a autorização do AWS Identity and Access Management (IAM) para clientes do Network File System (NFS).
Para fazer isso, é necessário configurar duas políticas de permissões do IAM, como segue:
-
Crie uma política de sistema de arquivos do EFS que permita explicitamente o acesso de leitura e gravação ao sistema de arquivos e negue implicitamente o acesso raiz.
-
Atribua uma identidade do IAM à estação de trabalho de gerenciamento do Amazon EC2 que requer acesso raiz ao sistema de arquivos usando um perfil de instância do Amazon EC2. Para obter mais informações sobre perfis de instância do Amazon EC2, consulte Usar perfis de instância no Guia do usuário do AWS Identity and Access Management.
-
Atribua a política
AmazonElasticFileSystemClientFullAccess
gerenciada pela AWS à função do IAM da estação de trabalho de gerenciamento. Para obter mais informações sobre políticas gerenciadas da AWS para EFS, consulte Gerenciamento de identidade e acesso para o Amazon EFS.
Para habilitar o extermínio de raiz usando autorização do IAM para clientes NFS, use os procedimentos a seguir.
Como impedir o acesso raiz ao sistema de arquivos
Abra o console do Amazon Elastic File System em https://console.aws.amazon.com/efs/
. Escolha Sistemas de arquivos.
Escolha o sistema de arquivos no qual deseja habilitar o extermínio de raiz.
-
Na página de detalhes do sistema de arquivos, escolha Política do sistema de arquivos e, em seguida, escolha Editar. A página File system policy (Política de sistema de arquivos) é exibida.
-
Escolha Impedir acesso raiz por padrão* em Opções de política. O objeto JSON da política aparece no Editor de políticas.
Escolha Save (Salvar) para salvar a política de sistema de arquivos.
Clientes não anônimos podem obter acesso raiz ao sistema de arquivos por meio de uma política baseada em identidade. Quando você anexa a política gerenciada da AmazonElasticFileSystemClientFullAccess
à função da estação de trabalho, o IAM concede acesso raiz à estação de trabalho com base na respectiva política de identidade.
Como habilitar o acesso raiz da estação de trabalho de gerenciamento
Abra o console do IAM em https://console.aws.amazon.com/iam/
. Crie um perfil para o Amazon EC2 chamado
EFS-client-root-access
. O IAM cria um perfil de instância com o mesmo nome da função EC2 que você criou.Atribua a política
AmazonElasticFileSystemClientFullAccess
gerenciada pela AWS à função do EC2 criada. O conteúdo dessa política é mostrado a seguir.{ "Version”: "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientRootAccess", "elasticfilesystem:ClientWrite", "elasticfilesystem:DescribeMountTargets" ], "Resource": "*" } ] }
Associe o perfil de instância à instância do EC2 que você está usando como estação de trabalho de gerenciamento, conforme descrito a seguir. Para obter mais informações, consulte Anexar uma função do IAM a uma instância no Guia do usuário do Amazon EC2 para instâncias do Linux.
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. No painel de navegação, escolha Instances (Instâncias).
Escolha a instância. Em Actions (Ações), escolha Instance Settings (Configurações de instância), e, depois, escolha Attach/Replace IAM role (Associar/substituir função do IAM).
Selecione a função do IAM criada na primeira etapa,
EFS-client-root-access
e escolha Apply (Aplicar).
Instale o assistente de montagem do EFS na estação de trabalho de gerenciamento. Para saber mais sobre o assistente de montagem do EFS e o pacote amazon-efs-utils, consulte Instalar o cliente Amazon EFS.
Monte o sistema de arquivos do EFS na estação de trabalho de gerenciamento usando o comando a seguir com a opção de montagem
iam
:$
sudo mount -t efs -o tls,iamfile-system-id
:/efs-mount-point
Você pode configurar a instância do Amazon EC2 para montar automaticamente o sistema de arquivos com autorização do IAM. Para obter mais informações sobre como montar um sistema de arquivos do EFS com autorização do IAM, consulte Montar com autorização do IAM.
Cache de permissões
O EFS armazena permissões de arquivo no cache por um curto período de tempo. Como resultado, poderá haver uma breve janela em que um usuário que tinha acesso a um objeto do sistema de arquivos teve o acesso revogado recentemente, mas ainda pode acessar o objeto em questão.
Alteração da propriedade do objeto do sistema de arquivo
O EFS aplica o atributo chown_restricted
do POSIX. Isto significa que apenas o usuário raiz pode alterar o proprietário do objeto de um sistema de arquivos. O usuário raiz ou proprietário pode alterar o grupo proprietário de um objeto do sistema de arquivos. No entanto, a menos que o usuário seja raiz, o grupo só poderá ser alterado para um em que o usuário proprietário seja um membro.
Pontos de acesso do EFS
Um ponto de acesso aplica um usuário, um grupo e um caminho de sistema de arquivos do sistema operacional a qualquer solicitação do sistema de arquivos feita usando o ponto de acesso. O usuário e o grupo do sistema operacional do ponto de acesso substituem qualquer informação de identidade fornecida pelo cliente NFS. O caminho do sistema de arquivos é exposto ao cliente como diretório raiz do ponto de acesso. Essa abordagem garante que cada aplicativo sempre use a identidade correta do sistema operacional e o diretório correto ao acessar conjuntos de dados compartilhados baseados em arquivo. As aplicações que usam o ponto de acesso só podem acessar dados em seu próprio diretório e abaixo dele. Para obter mais informações sobre pontos de acesso, consulte Trabalhar com pontos de acesso do Amazon EFS.