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. No entanto, se você tiver clientes em intervalos de sub-rede não RFC 1918, será necessário conceder a eles acesso explícito à instância do Filestore por meio de baseados em IP controle de acesso.
- 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 básicos 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 básicos
As permissões do Filestore também estão associadas aos papéis básicos do IAM de proprietário, editor e visualizador. 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 básicos.
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.