Autenticação e autorização do sistema de arquivos
Depois de compreender as características gerais do desempenho e do tráfego da carga de trabalho, você precisará considerar os aspectos de segurança. Os dados podem ser confidenciais, como imagens de radiografias de pacientes. Você pode ter diversos motivos para optar por restringir o acesso aos dados. Talvez você queira oferecer a cada um de seus pesquisadores um "diretório base" no qual eles podem carregar dados e realizar análises e simulações de HPC.
Ao selecionar seu armazenamento de HPC de nuvem, esteja ciente de como ele é integrado à sua postura de segurança atual. Entenda os métodos pelos quais o sistema de arquivos autentica e autoriza o acesso aos arquivos. Observe se a imposição é local ou remota (ou ambas), e onde a autenticação e a autorização são originadas. Se estiver usando um sistema de arquivos compartilhado remoto, você precisará entender como controlar o acesso por meio de práticas de NAS padrão. Por fim, se você oferece espaços de trabalho exclusivos para os usuários (diretórios base), entenda como alocar esse espaço.
Nesta unidade, examinamos as considerações de segurança e como elas afetam sua arquitetura de armazenamento.
Visão geral da autenticação e da autorização
Autenticação: ao fornecer acesso a sistemas de arquivos, você precisa autenticar o solicitante usando alguma credencial confiável. Muitas arquiteturas de cliente/servidor emitem desafios para essas credenciais, como contas de usuário ou de computador. As credenciais, então, são verificadas para garantir que são válidas para o ambiente. Após a autenticação, o solicitante (o usuário ou o computador/processo) é autorizado. Os protocolos de acesso necessários para seu ambiente podem limitar a autenticação para sua solução. Por exemplo, se você tem um ambiente do Windows, é provável que esteja usando o Protocolo SMB como protocolo de acesso a arquivos da rede. Os requisitos de autenticação do SMB são diferentes daqueles do NFS.
Autorização – permitir que um usuário ou computador acesse um ambiente é uma coisa, mas qual é o nível de acesso? Por exemplo, o usuário A pode ser capaz de ler arquivos em um sistema de arquivos e o usuário B pode ler e gravar arquivos. A autorização pode ir além da leitura e da gravação. Por exemplo, o usuário C pode ser capaz de modificar, mas não de criar arquivos em um determinado diretório.
Frequentemente, o nível de autorização é expresso como permissões para um determinado arquivo. Elas incluem leitura, gravação e execução.
Usuários e grupos: conceder acesso a um conjunto de recursos pode se tornar complicado quando você tem muitos usuários. Também se torna complicado se você pretende conceder diferentes níveis de acesso a vários conjuntos de usuários. O uso de grupos passa a ser necessário. Você pode atribuir um usuário a um grupo específico ou a um conjunto de grupos. Em seguida, você pode autorizar o acesso a recursos com base nessa identificação de grupo.
Em conjunto, a autenticação e a autorização representam o acesso no nível do usuário, do grupo e do computador que você pretende conceder aos recursos, em nosso caso, aos arquivos.
O sistema operacional Linux atribui um UID (identificador de usuário) a contas de usuário individuais. A UID é um inteiro. É o que o sistema usa para determinar quais recursos do sistema, incluindo arquivos e pastas, um usuário específico pode acessar.
O sistema operacional Linux usa GIDs (identificadores de grupo) para atribuições de grupo. Um usuário é associado a um grupo primário. Os usuários podem ser associados a virtualmente qualquer número de atribuições de grupo complementares, até 65.536 na maioria dos sistemas Linux modernos.
Autenticação e autorização locais e remotas
Autenticação e autorização locais referem-se ao acesso a um sistema de arquivos local por uma conta de usuário/computador que também é local ao computador. Por exemplo, posso criar uma conta de usuário e permitir acesso ao diretório /data localizado em meu sistema de arquivos local. Essa conta de usuário é local, assim como qualquer concessão de acesso ao diretório. Também posso usar a atribuição de grupo para controlar o acesso. A combinação de autorização de usuário e de grupo dá a um usuário permissões efetivas a um arquivo ou pasta.
Se examinar uma saída típica do comando de diretório ls -al
, você poderá ver algo assim:
drwxr-xr-x 4 root root 4096 Dec 31 19:43.
drwxr-xr-x 13 root root 4096 Dec 11 05:53 ..
drwxr-xr-x 6 root root 4096 Dec 31 19:43 microsoft
drwxr-xr-x 8 root root 4096 Dec 31 19:43 omi
-rw-r--r-- 1 root root 0 Jan 21 15:10 test.txt
Os caracteres drwxr-xr-x
representam o nível de acesso autorizado que os usuários e grupos têm ao arquivo ou diretório. O d
indica que a entrada é um diretório. (Se o primeiro arquivo é -
, trata-se de uma entrada de arquivo.) Os caracteres restantes representam as autorizações do grupo de permissões para ler (r), gravar (w) e executar (x). Os três primeiros valores indicam o "proprietário" do arquivo ou diretório. Os três valores seguintes indicam as permissões de grupo atribuídas ao arquivo ou diretório. Os três valores finais indicam permissões concedidas a todos os outros usuários no sistema.
Veja um exemplo:
-rw-r--r-- 1 root root 0 Jan 21 15:10 test.txt
-
indica que esse recurso é um arquivo.rw-
indica que o proprietário tem permissões de leitura e gravação.r--
indica que o grupo atribuído tem somente permissões de leitura.r--
indica que os usuários restantes têm somente permissões de leitura.- Observe também que o usuário proprietário e o grupo atribuído são representados pelas duas colunas
root
.
Uma UID e GIDs primárias e complementares representam um usuário autenticado em um computador local. Esses valores são locais ao computador. O que acontece se você tem cinco ou até mesmo 50 computadores? Você precisaria replicar as atribuições de UID e GID em cada um dos computadores. O nível de complexidade em torno do gerenciamento de usuários cresce, assim como a possibilidade de conceder acidentalmente acesso a arquivos ou pastas ao usuário errado.
Acesso a arquivos remoto via NFS
A atribuição de UID e GID local funciona bem quanto você está executando tudo como uma só atribuição de usuário/grupo. E se vários stakeholders estiverem consumindo o cluster HPC que você está executando, e cada stakeholder tiver dados confidenciais e vários consumidores dos dados?
Colocar dados em um ambiente de NAS ou servidor de arquivos permite o acesso remoto aos dados. Essa abordagem ajuda a reduzir o custo do disco local, garante que os dados permaneçam atualizados para todos os usuários e reduz o gerenciamento geral de usuários e grupos.
Se você localizar os arquivos centralmente, talvez precise de um serviço de diretório que contenha a configuração de usuário e grupo. Os serviços de diretório, como o Active Directory ou o protocolo LDAP, permitem que você crie um mapeamento de usuários/grupos que todos os sistemas remotos podem usar. Você configura os computadores remotos e o ambiente de NAS como clientes do serviço de diretório. Você também pode usar mapeamentos do Active Directory entre suas contas de usuário do Windows e uma combinação específica de UID e GID.
O método típico para acessar arquivos remotamente é usar um sistema de arquivos de rede, como NFS, SMB ou um sistema de arquivos paralelo, como o Lustre. Esses protocolos definem a API do cliente e do servidor para acessar dados. Abordamos as operações de NFS na unidade de "Considerações sobre o desempenho do sistema de arquivos". Abordaremos o uso do NFS em detalhes na próxima unidade.
Observação
Um serviço de diretório não é necessário quando você usa o NFS. Mas se você não usar um, o gerenciamento de UID e GID ainda será difícil se você tiver grandes números de usuários e sistemas.
Diretórios base
Digamos que você tenha um ambiente de HPC que vários pesquisadores estão usando, mas os dados exclusivos deles precisam ser mantidos separados. Digamos que esses pesquisadores estejam modificando e adicionando dados continuamente. Fornecer diretórios base aos pesquisadores é uma forma eficiente de separar os dados deles.
Cada pesquisador manipularia as permissões no mesmo diretório inicial, para que pudessem colaborar se desejassem.
Um dos principais desafios desse ambiente é o espaço de armazenamento. Digamos que você tenha um ambiente de NAS de 500 TB. O que impede um pesquisador de usar tudo?
Você pode atribuir uma cota a um diretório individual. A cota reflete a quantidade máxima de dados permitidos. Após a cota ser atingida, ela poderá rejeitar mais dados ou avisar os administradores de que o pesquisador ultrapassou o limite. Por exemplo, se você tiver um sistema de NAS, poderá atribuir uma cota a cada pesquisador. E se você isolar o acesso dos pesquisadores ao diretório base, ficará fácil configurar e monitorar seu uso.