Controle de acesso

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

O Filestore não é compatível com Kerberos para proteger o acesso a instâncias do Filestore. Use as opções Linux e Identity and Access Management (IAM) descritas abaixo.

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 compartilhamento de arquivos, é composta de todos os endereços IP internos na rede VPC selecionada para a instância do Filestore. Os endereços IP internos podem ser qualquer intervalo listado em Intervalos de sub-rede.
  • A opção rw é usada. Portanto, o compartilhamento de arquivos é leitura/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.

Controle de acesso baseado em IP

É possível alterar essas configurações de exportação criando regras de controle de acesso usando o Console do Cloud ou especificando um arquivo de configuração json durante a criação da instância usando a ferramenta gcloud. Para 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 dessa instância tem permissões Unix padrão de rwxr-xr-x, notação octal 755. Essas permissões significam que, em uma instância do Filestore, somente usuários raiz em clientes conectados têm acesso de leitura/gravação ao compartilhamento de arquivos. Por padrão, outros usuários só têm acesso de leitura, mas os usuários raiz do cliente podem alterar permissões e proprietários.

Como configurar o acesso em um compartilhamento de arquivos

Ao montar um compartilhamento de arquivos do Filestore em um cliente, é possível usar opções para o comando mount e configurações no arquivo /etc/fstab para determinar se o compartilhamento de arquivos montado é gravável e se os arquivos podem ser executados nele. Depois de montar o compartilhamento de arquivos, é possível usar comandos padrão do Linux, como chmod e setfacl para definir permissões de arquivo e compartilhamento de arquivos.

Como definir permissões consistentes

É altamente recomendável definir permissões consistentes para cada usuário em todos os clientes que se conectarem à mesma instância do Filestore devido a um problema que ocorre quando:

  • um compartilhamento de arquivos é ativado em mais de um cliente;
  • um usuário tem permissão de root em um cliente, mas não nos outros.

O usuário pode fazer upload de um arquivo com o bit setuid definido a partir do cliente em que tem acesso raiz, o que permite que ele execute o arquivo como raiz em qualquer outro cliente em que tenha pelo menos permissão de leitura. Isso ocorre porque o bit setuid permite que um usuário execute um arquivo usando as permissões do proprietário do arquivo, neste caso, raiz.

Permissões e papéis do IAM

Conceda acesso às operações do Filestore concedendo papéis de gerenciamento de identidade e acesso (IAM) aos usuários.

As permissões do IAM controlam apenas o acesso às operações do Filestore, como a criação de uma instância do Filestore. O acesso a operações no compartilhamento de arquivos do Filestore, como leitura ou execução, é determinado pelas permissões do Linux.

Como usar papéis do Filestore

Você pode usar os papéis Editor do Filestore (roles/file.editor) e Leitor do Filestore (roles/file.viewer) para conceder permissões do Filestore a usuários. Se preferir, você também pode usar papéis primários para essa finalidade.

Use a tabela a seguir para ver as permissões do Filestore associadas aos papéis do Filestore.

Permissão Ação Editor do Filestore Leitor do Filestore
file.locations.get Receba informações sobre um local compatível com este serviço.
file.locations.list Listar informações sobre os locais compatíveis com este serviço.
file.instances.create Criar uma instância do Filestore.
file.instances.update Atualizar uma instância do Filestore.
file.instances.delete Excluir uma instância do Filestore.
file.instances.get Receber detalhes sobre uma instância específica do Filestore.
file.instances.list Listar as instâncias do Filestore no projeto.
file.operations.get Receber o status de uma operação de instância do Filestore.
file.operations.list Listar operações de instância do Filestore.
file.operations.cancel Cancelar uma operação de instância do Filestore.
file.operations.delete Excluir uma operação de instância do Filestore.
file.backups.create Criar um backup do Filestore.
file.backups.update Atualizar um backup do Filestore.
file.backups.delete Excluir um backup do Filestore.
file.backups.get Receber detalhes sobre um backup específico do Filestore.
file.backups.list Listar os backups do Filestore no projeto.

Como usar papéis primários

As permissões do Filestore também são associadas aos papéis primários do IAM de proprietário, editor e leitor. Você pode usar esses papéis além dos papéis do Filestore para conceder permissões do Filestore aos usuários.

Use a tabela a seguir para ver as permissões do Filestore associadas a papéis primários.

Permissão Ação Proprietário do projeto. Editor do projeto Visualizador do projeto
file.locations.get Receba informações sobre um local compatível com este serviço.
file.locations.list Listar informações sobre os locais compatíveis com este serviço.
file.instances.create Criar uma instância do Filestore.
file.instances.update Atualizar uma instância do Filestore.
file.instances.delete Excluir uma instância do Filestore.
file.instances.get Receber detalhes sobre uma instância específica do Filestore.
file.instances.list Listar as instâncias do Filestore no projeto.
file.operations.get Receber o status de uma operação de instância do Filestore.
file.operations.list Listar operações de instância do Filestore.
file.operations.cancel Cancelar uma operação de instância do Filestore.
file.operations.delete Excluir uma operação de instância do Filestore.
file.backups.create Criar um backup do Filestore.
file.backups.update Atualizar um backup do Filestore.
file.backups.delete Excluir um backup do Filestore.
file.backups.get Receber detalhes sobre um backup específico do Filestore.
file.backups.list Listar os backups do Filestore no projeto.

Papéis personalizados

Se os papéis predefinidos do IAM não atenderem às suas necessidades, defina uma função personalizada com permissões especificadas. Para isso, o IAM oferece papéis personalizados. Ao criar papéis personalizados para o Filestore, inclua resourcemanager.projects.get e resourcemanager.projects.list para que o papel tenha permissão para consultar recursos do projeto. Caso contrário, o Console do Google Cloud não funcionará corretamente para o Filestore.