Controle de acesso

Nesta página, descrevemos como controlar o acesso a instâncias do Filestore.

Configurações de exportação de compartilhamento de arquivos

Um compartilhamento de arquivos do Filestore é atribuído às seguintes configurações padrão de /etc/exports:

  • A lista de clientes, que identifica os clientes com permissão para se conectar ao arquivo share: contém todos os endereços IP internos da rede VPC que você selecionados para a instância do Filestore. Endereços IP internos podem ser qualquer intervalo listado na sub-rede de destino. No entanto, se você têm clientes que não usam o RFC 1918; intervalos de sub-rede, é preciso conceder explicitamente a eles acesso instância do Filestore usando Controle de acesso baseado em IP.
  • A opção rw é usada, então o compartilhamento de arquivos permite operações de leitura e gravação.
  • A opção de mapeamento de ID do usuário no_root_squash é usada. Portanto, espera-se que todos os usuários e grupos, incluindo o usuário raiz, sejam os mesmos na instância do Filestore e no cliente.
  • Todas as outras opções usam os padrões /etc/exports.

Instâncias de nível básico

As instâncias de SSD básico e HDD básico criam um compartilhamento exportado /config/google-prober, usada para auxiliar em processos internos de sondagem, que para verificar o acesso, a durabilidade ou o desempenho. O compartilhamento é exportado para lista de clientes acessível apenas ao endereço IP da instância, usando a mesma conforme indicado na seção anterior. O compartilhamento pode ser acessado pelas sondagens hospedados na instância ou originados apenas dela e não pode ser acessado fora a instância. A instância exporta o compartilhamento, independentemente de Controle de acesso baseado em IP é aplicada. Os usuários podem ver o compartilhamento exportado usando o comando showmount -e.

Controle de acesso baseado em IP

Para alterar essas configurações de exportação, crie regras de controle de acesso usando no console do Google Cloud ou especificando um arquivo de configuração JSON durante criação de instâncias usando a CLI gcloud. Para mais detalhes, consulte Como configurar o controle de acesso baseado em IP.

Também é possível adicionar novas regras de controle de acesso ou modificar as existentes depois que uma instância é criada. Para detalhes, consulte Como editar instâncias.

Permissões de compartilhamento de arquivos

Quando você cria uma instância do Filestore, o compartilhamento de arquivos para essa instância tem permissões de arquivo POSIX padrão de rwxr-xr-x. Essas permissões significa que, em uma instância do Filestore, só usuários com acesso root têm acesso de leitura e gravação ao compartilhamento de arquivos. Outros usuários só têm acesso de leitura por padrão. Os usuários raiz do cliente podem alterar permissões e proprietários.

Como configurar o acesso em um compartilhamento de arquivos

Ao ativar um compartilhamento de arquivos, use as opções de ativação e as configurações de /etc/fstab para determinar se o compartilhamento de arquivos é gravável e se os arquivos podem ser executados nele. Depois de ativar o compartilhamento de arquivos, use os comandos padrão do Linux, como chmod e setfacl para definir permissões de arquivo e compartilhamento de arquivos. Somente os níveis básicos são compatíveis com o setfacl.

Como definir permissões consistentes

É altamente recomendável definir permissões consistentes para cada usuário em todos os clientes que se conectam à mesma instância do Filestore para evitar o escalonamento de privilégios. Se um compartilhamento de arquivos for ativado em mais de um cliente, e um usuário tiver privilégios de raiz em um cliente, mas não nos outros, o seguinte cenário de escalonamento de privilégios será possível:

  • Um usuário define o atributo setuid em um arquivo executável do cliente em que o usuário tem acesso de raiz.
  • Em seguida, o usuário faz upload do arquivo executável para o compartilhamento de arquivos.
  • O usuário executa o arquivo enviado como raiz em qualquer cliente em que ele tenha pelo menos a permissão de leitura.

Esse cenário é possível porque o bit setuid permite que o usuário execute um arquivo usando as permissões do proprietário, que, neste caso, é raiz.

Sobreposição de permissões

Zonal, regional e empresarial agora dão suporte a permissões sobrepostas.

Se duas regras de controle de acesso separadas forem definidas para endereços IP sobrepostos sub-redes, a regra definida para a sub-rede menor tem prioridade.

Por exemplo, se um arquivo de configuração JSON contiver uma regra que concede acesso aos recursos acesso de gravação para a sub-rede de endereços IPv4 10.0.0.0/24 e uma regra separada concede acesso somente leitura à sub-rede de endereços IPv4 10.0.0.0/28, Filestore reconhece e aplica primeiro a regra da sub-rede menor. A outra regra é são aplicadas às partes restantes da sub-rede de endereços IP definida. Neste exemplo, um cliente que usa o endereço IPv4 10.0.0.20 recebe permissão de leitura e gravação permissões, enquanto um cliente que usa 10.0.0.12 recebe permissões somente leitura:

   {
  "--file-share":
    {
      "capacity": "2048",
      "name": "my_vol",
      "nfs-export-options": [
        {
          "access-mode": "READ_WRITE",
          "ip-ranges": [
            "10.0.0.0/24"
          ],
          "squash-mode": "ROOT_SQUASH",
          "anon_uid": 1003,
          "anon_gid": 1003
        },
         {
          "access-mode": "READ_ONLY",
          "ip-ranges": [
            "10.0.0.0/28"
          ],
          "squash-mode": "NO_ROOT_SQUASH"
        }
      ]
    }
}

Algumas restrições são aplicáveis:

  • Permissões sobrepostas para sub-redes IPv4 idênticas não são aceitas e retornam um erro.

  • Permissões sobrepostas não são compatíveis com instâncias de SSD básico ou de HDD básico.

A seguir