Controlo de acesso

Esta página descreve como controlar o acesso a instâncias do Filestore.

  • Com o protocolo NFSv4.1, pode usar o Kerberos para proteger o acesso a instâncias do Filestore. Para mais informações, consulte o artigo Acerca dos protocolos suportados.

  • Em alternativa, pode usar as opções do Linux para controlar o acesso ao NFS e a gestão de identidade e de acesso (IAM) para controlar o acesso a operações de instâncias, como criar, editar, ver e eliminar instâncias. O guia seguinte explica como concluir cada uma destas tarefas.

Definições de exportação de partilha de ficheiros

A partilha de ficheiros do Filestore tem as seguintes definições /etc/exports predefinidas:

  • A lista de clientes, que identifica os clientes autorizados a estabelecer ligação à partilha de ficheiros, contém todos os endereços IP internos na rede VPC que selecionou para a instância do Filestore. Os endereços IP internos podem ser qualquer intervalo indicado nos intervalos de sub-redes. No entanto, se tiver clientes em intervalos de sub-redes não RFC 1918, tem de lhes conceder explicitamente acesso à instância do Filestore através do controlo de acesso baseado em IP.
  • A opção rw é usada, pelo que a partilha de ficheiros permite operações de leitura e escrita.
  • A opção de mapeamento de IDs de utilizadores no_root_squash é usada, pelo que todos os utilizadores e grupos, incluindo o utilizador raiz, devem ser os mesmos na instância do Filestore e no cliente.
  • Todas as outras opções usam as predefinições de /etc/exports.

Instâncias de nível básico

As instâncias de SSD básico e HDD básico criam uma partilha exportada etiquetada como /config/google-prober, usada para ajudar a suportar processos de sondagem internos, que, por sua vez, validam o acesso, a durabilidade ou o desempenho. A partilha é exportada para uma lista de clientes acessível apenas ao endereço IP da instância, usando as mesmas definições indicadas na secção anterior. A partilha é acessível a sondadores alojados ou originários apenas da instância e é inacessível fora da instância. A instância exporta a partilha independentemente de o controlo de acesso baseado em IP ser aplicado. Os utilizadores podem ver a partilha exportada através do comando showmount -e.

Controlo de acesso baseado em IP

Pode alterar estas definições de exportação criando regras de controlo de acesso através da consola ou especificando um ficheiro de configuração JSON durante a criação de instâncias através da CLI gcloud. Google Cloud Para ver detalhes, consulte o artigo Configurar o controlo de acesso baseado em IP.

Também pode adicionar novas regras de controlo de acesso ou modificar as existentes depois de criar uma instância. Para obter detalhes, consulte o artigo Editar instâncias.

Autorizações de partilha de ficheiros

Quando cria uma instância do Filestore, a partilha de ficheiros dessa instância tem autorizações de ficheiros POSIX predefinidas de rwxr-xr-x. Estas autorizações significam que, numa instância do Filestore, apenas os utilizadores de raiz nos clientes ligados têm acesso de leitura e escrita à partilha de ficheiros. Por predefinição, os outros utilizadores só têm acesso de leitura. Os utilizadores raiz do cliente podem alterar as autorizações e os proprietários.

Configurar o acesso numa partilha de ficheiros

Ao montar uma partilha de ficheiros, pode usar as opções de montagem e as definições de /etc/fstab para determinar se a partilha de ficheiros é gravável e se os ficheiros podem ser executados na mesma. Depois de montar a partilha de ficheiros, pode usar comandos Linux padrão, como chmod, e setfacl para definir autorizações de ficheiros e partilhas de ficheiros. Apenas os níveis básicos suportam setfacl.

Definir autorizações consistentes

Recomendamos vivamente que defina autorizações consistentes para cada utilizador em todos os clientes que se ligam à mesma instância do Filestore para evitar a escalada de privilégios. Se uma partilha de ficheiros estiver montada em mais do que um cliente e um utilizador tiver privilégios de raiz num cliente, mas não nos outros, o seguinte cenário de escalada de privilégios é possível:

  • Um utilizador define o atributo setuid num ficheiro executável do cliente onde o utilizador tem acesso de raiz.
  • Em seguida, o utilizador carrega o ficheiro executável para a partilha de ficheiros.
  • O utilizador executa o ficheiro carregado como raiz em qualquer cliente em que o utilizador tenha, pelo menos, autorização de leitura.

Este cenário é possível porque o bit setuid permite que o utilizador execute um ficheiro com as autorizações do proprietário do ficheiro, que, neste caso, é o utilizador de raiz.

Autorizações sobrepostas

As instâncias zonais, regionais e empresariais suportam agora autorizações sobrepostas.

Se forem definidas duas regras de controlo de acesso separadas para sub-redes de endereços IP sobrepostas, a regra definida para a sub-rede mais pequena tem prioridade.

Por exemplo, se um ficheiro de configuração JSON contiver uma regra que conceda acesso de leitura e escrita para a sub-rede de endereços IPv4 10.0.0.0/24 e uma regra separada conceda acesso só de leitura para a sub-rede de endereços IPv4 10.0.0.0/28, o Filestore reconhece e aplica primeiro a regra para a sub-rede mais pequena. A outra regra é, em seguida, aplicada à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 autorizações de leitura e escrita, enquanto um cliente que usa 10.0.0.12 recebe autorizações só de 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"
        }
      ]
    }
}

Aplicam-se algumas restrições:

  • As autorizações sobrepostas para sub-redes IPv4 idênticas não são suportadas e devolvem um erro.

  • As autorizações sobrepostas não são suportadas para instâncias de SSD básico ou HDD básico.

O que se segue?