Como Trabalhar com Opções de Exportação e Exportações NFS

Aprenda os recursos básicos de exportações e opções de exportação NFS e como melhorar a segurança e controlar o acesso do cliente aos sistemas de arquivos do serviço File Storage.

Visão Geral

As opções de exportação NFS permitem criar um controle de acesso mais granular do que o possível, usando apenas regras da lista de segurança para limitar o acesso à VCN. Você pode usar as opções de exportação NFS para especificar níveis de acesso para endereços IP ou blocos CIDR que se conectam a sistemas de arquivos por meio de exportações em um ponto de acesso NFS. O acesso pode ser restrito para que o sistema de arquivos de cada cliente fique inacessível e invisível para o outro, fornecendo melhores controles de segurança em ambientes multitenant.

Usando os controles de acesso da opção de exportação NFS, é possível limitar a capacidade dos clientes de conexão com o sistema de arquivos e exibir ou gravar dados. Por exemplo, se você quiser permitir que os clientes consumam, mas não atualizem recursos no sistema de arquivos, poderá definir o acesso como Somente para Leitura. Você também pode reduzir o acesso raiz do cliente aos sistemas de arquivos e mapear IDs de Usuário (UIDs) e IDs de Grupo (GIDs) especificados para um UID/GID anônimo de sua escolha. Para obter mais informações sobre como as opções de exportação NFS funcionam com outras camadas de segurança, consulte Sobre Segurança do Serviço File Storage.

Dica

Assista a um vídeo sobre como trabalhar com opções de exportação NFS no Serviço File Storage.

Exportações

As exportações controlam como os clientes NFS acessam os sistemas de arquivos quando se conectam a um ponto de acesso NFS. Os sistemas de arquivos são exportados (disponibilizados) por meio de pontos de acesso NFS. Cada ponto de acesso NFS mantém um conjunto de exportação que contém uma ou várias exportações. Um sistema de arquivos pode ser exportado por meio de um ou mais pontos de acesso NFS. Um sistema de arquivos deve ter pelo menos uma exportação em um ponto de acesso NFS para que as instâncias montem o sistema de arquivos. As informações usadas por uma exportação incluem o OCID do sistema de arquivos, o OCID do ponto de acesso NFS, o OCID do conjunto de exportação, o caminho de exportação e as opções de exportação do cliente. Geralmente, uma exportação é criada em um ponto de acesso NFS quando o sistema de arquivos é criado. Posteriormente, você pode criar exportações adicionais para um sistema de arquivos em qualquer ponto de acesso NFS que resida no mesmo domínio de diponibilidade do sistema de arquivos.

Você pode executar estas tarefas de gerenciamento de exportação:

Opções de Exportação NFS

As opções de exportação NFS são um conjunto de parâmetros dentro da exportação que especificam o nível de acesso concedido aos clientes NFS quando se conectam a um ponto de acesso NFS. Uma entrada de opções de exportação NFS dentro de uma exportação define o acesso para um único endereço IP ou faixa de blocos CIDR. Você pode ter até 100 opções por exportação.

Cada endereço IP ou bloco CIDR separado do cliente ao qual você deseja definir o acesso precisa de uma entrada de opções de exportação separada na exportação. Por exemplo, para definir opções para os endereços IP de cliente NFS 10.0.0.6, 10.0.08 e 10.0.0.10, você precisa criar três entradas separadas, uma para cada endereço IP.

O serviço File Storage considera a ordem listada de cada entrada de opções de exportação para a exportação. Durante uma solicitação NFS feita por um cliente, o serviço File Storage aplica o primeiro conjunto de opções que correspondem ao endereço IP de Origem do cliente. Somente o primeiro conjunto é aplicado; o restante é ignorado.

Por exemplo, considere as duas entradas de opções de exportação a seguir especificando o acesso para uma exportação:

Entrada 1: Origem: 10.0.0.0/16, Acesso: Somente para Leitura

Entrada 2: Origem: 10.0.0.8, Acesso: Leitura/Gravação

Nesse caso, os clientes que se conectam à exportação do endereço IP 10.0.0.8 têm acesso somente para leitura. O endereço IP de Origem da solicitação está contido no bloco CIDR especificado na primeira entrada, e o Armazenamento de Arquivos aplica as opções na primeira correspondência.

Importante

Os sistemas de arquivos podem ser associados a uma ou mais exportações, contidas em um ou mais pontos de acesso NFS. Se o endereço IP de fonte do cliente não corresponder a nenhuma entrada na lista para uma única exportação, essa exportação não ficará visível para o cliente. No entanto, o sistema de arquivos pode ser acessado por meio de outras exportações no mesmo ou em outros pontos de acesso NFS. Para negar completamente o acesso do cliente a um sistema de arquivos, certifique-se de que o endereço IP de origem do cliente ou o bloco CIDR não esteja incluído em nenhuma exportação para nenhum destino de montagem associado ao sistema de arquivos.

As seguintes opções podem ser definidas para controlar o acesso de exportação:

  • Origem: O endereço IP ou bloco CIDR de um cliente NFS que está se conectando.
  • Portas: Essa definição determina se os clientes NFS especificados na Origem são necessários para conexão de uma porta de origem privilegiada. Portas privilegiadas são qualquer porta, incluindo 1-1023. Nos sistemas do tipo UNIX, apenas o usuário raiz pode abrir portas privilegiadas. A definição desse valor como Privileged não permite solicitações de portas não privilegiadas. O padrão para essa definição varia, dependendo de como a exportação é criada.

    A criação de uma exportação na Console usando as seleções padrão define Portas como Qualquer, a menos que você selecione Usar Opções de Exportação Segura.

    Criar uma exportação usando a API ou a CLI sem um array ClientOption explícito define o atributo requirePrivilegedSourcePort da opção do cliente como false. Quando você cria um array ClientOption explicitamente, o padrão requirePrivilegedSourcePort é true.

Importante

Quando Portas estiver definida como Privilegiada, você também deverá seguir estas etapas de configuração adicionais:

  1. Ao montar o sistema de arquivos de um sistema do tipo UNIX, inclua a opção resvport em um comando mount ao montar. Por exemplo: 

    sudo mount -o resvport 10.x.x.x:/fs-export-path /mnt/yourmountpoint

    Para obter mais informações, consulte Montando Sistemas de Arquivos de Instâncias do Tipo UNIX.

  2. Ao montar o sistema de arquivos com base em um sistema Windows, verifique se o valor da chave do registro UseReserverdPort está definido como 1.

    Para obter mais informações, consulte Montando Sistemas de Arquivos com Base em Instâncias do Windows.

  • Acesso: Esta definição especifica o acesso do cliente NFS de Origem.
    • Leitura/Gravação é o padrão.
    • Somente leitura.
  • Acesso Anônimo: Esta definição especifica se o acesso anônimo deve ser ativado para autenticação do Kerberos nos casos em que o ponto de acesso NFS não pode localizar um usuário no servidor LDAP. Se o Acesso Anônimo for Não Permitido e o usuário não for encontrado no diretório LDAP ou a tentativa de lookup retornar um erro LDAP, a operação falhará. Se Acesso Anônimo for Permitido e o usuário não for encontrado no diretório LDAP, a operação usará os valores Squash UID e Squash GID da exportação. Para obter mais informações, consulte Usando autenticação Kerberos.
    Observação

    Se a exportação não usar a autenticação do Kerberos, escolha Não Permitido.
  • Opções de Autenticação Permitidas: Essa definição especifica os métodos de autenticação permitidos pelo cliente NFS.
    • SYS: Autenticação UNIX do NFS v3. Se você não especificar um valor de autenticação permitido ao criar a opção de exportação, será usado um valor padrão SYS.
    • KRB5: Autenticação do NFS v3 Kerberos.
    • KRB5I: Autenticação e integridade de dados do NFS v3 Kerberos.
    • KRB5P: Autenticação, integridade e privacidade de dados do NFS v3 Kerberos (criptografia em trânsito)

    Você pode selecionar vários métodos de autenticação. Por exemplo, a definição de Opções de Autenticação Permitidas como KRB5 e KRB5I permitiria Kerberos e Kerberos básicos com integridade de dados, mas não permitiria a autenticação SYS e KRB5P.

    Cuidado

    Uma seleção vazia de Opções de Autenticação Permitidas remove todos os tipos de autenticação e pode resultar em perda de acesso. Clientes que requerem autenticação SYS perderão acesso, se a opção SYS não estiver presente.
    Importante

    Os comandos de montagem usados para montar o sistema de arquivos diferem dependendo de quais métodos de autenticação são permitidos nas opções de exportação. Se os clientes NFS estabelecerem conexão por meio de um ponto de acesso NFS ativado para Kerberos, o comando de montagem deverá incluir a opção sec. Por exemplo: 

    sudo mount -o sec=krb5 10.x.x.x:/fs-export-path /mnt/yourmountpoint
    sudo mount -o sec=krb5i 10.x.x.x:/fs-export-path /mnt/yourmountpoint
    sudo mount -o sec=krb5p 10.x.x.x:/fs-export-path /mnt/yourmountpoint

    Para clientes NFS que se conectam com AUTH_SYS na mesma exportação, o comando de montagem incluiria sec=sys. Por exemplo:

    sudo mount -o sec=sys 10.x.x.x:/fs-export-path /mnt/yourmountpoint

    Se a exportação estiver usando AUTH_SYS sozinho, a opção sec será opcional. Montar amostras de comando fornecidas pela Console são baseadas nas opções de exportação selecionadas.

    Observação

    Se um cliente NFS usar uma exportação que tenha vários tipos de autenticação e o sistema de arquivos for montado sem especificar sec=<auth_type>, o cliente deverá selecionar automaticamente o tipo de autenticação mais forte suportado pela exportação.
  • Squash: Esta definição determina se os clientes de fonte que acessam o sistema de arquivos têm seu ID de Usuário (UID) e ID de Grupo (GID) remapeados para Squash UID e Squash GID.
    • Nenhum: Nenhum usuário é remapeado. Esse é o valor padrão.
    • Root: Somente a combinação de UID/GID do usuário raiz 0/0 é remapeada.
    • Todos: Todos os usuários e grupos são remapeados.
  • Squash UID: Esta definição é usada junto com as opções Squash e Acesso Anônimo. Ao remapear usuários, você pode usar essa definição para alterar o valor padrão de 65534 para qualquer outro ID de usuário.
  • Squash GID: Esta definição é usada junto com as opções Squash e Acesso Anônimo. Ao mapear grupos, você pode usar essa definição para alterar o valor padrão de 65534 para qualquer outro ID de grupo.

Cenários Típicos de Controle de Acesso

Quando você cria um sistema de arquivos e exporta, as opções de exportação NFS desse sistema de arquivos são definidas como os padrões a seguir, o que permite acesso total a todas as conexões de origem do cliente NFS. Esses padrões deverão ser alterados se você quiser restringir o acesso:

  • Origem: 0.0.0.0/0 (Tudo)
  • Exigir Porta de Origem Privilegiada: Qualquer
  • Opções de Autenticação Permitidas: SYS
  • Acesso: Leitura/Gravação
  • Squash: Nenhum

Controlar Acesso Baseado em Host

Forneça um ambiente hospedado gerenciado para dois clientes. Os clientes compartilham um ponto de acesso NFS, mas cada um tem seu próprio sistema de arquivos e não pode acessar os dados um do outro. Por exemplo:

  • O Cliente A, que é designado ao bloco CIDR 10.0.0.0/24, requer acesso de Leitura/Gravação ao sistema de arquivos A, mas não ao sistema de arquivos B.
  • O cliente B, que está designado ao bloco CIDR 10.1.1.0/24, requer acesso de Leitura/Gravação ao sistema de arquivos B, mas não ao sistema de arquivos A.
  • O cliente C, que é designado ao bloco CIDR 10.2.2.0/24, não tem acesso de qualquer tipo ao sistema de arquivos A ou ao sistema de arquivos B.
  • Ambos os sistemas de arquivos A e B estão associados a um único ponto de acesso NFS, MT1. Cada sistema de arquivos tem uma exportação contida no conjunto de exportação de MT1.

Como o Cliente A e o Cliente B acessam o ponto de acesso NFS de diferentes blocos CIDR, você pode definir as opções do cliente para ambas as exportações do sistema de arquivos para permitir o acesso a apenas um único bloco CIDR. O Cliente C tem o acesso negado por não incluir seu endereço IP ou bloco CIDR nas opções de exportação NFS para qualquer exportação de qualquer sistema de arquivos.

  • Defina as opções de exportação do Sistema de Arquivos A para permitir acesso de Leitura/Gravação somente ao Cliente A, que é designado ao bloco CIDR 10.0.0.0/24. O Cliente B e o Cliente C não estão incluídos nesse bloco CIDR e não podem acessar o sistema de arquivos.

    Opções de exportação do Sistema de Arquivos A:

    • Origem: 10.0.0.0/24
    • portas: privilegiadas
    • Acesso: Leitura/Gravação
    • Squash: Nenhum

    Defina as opções de exportação do Sistema de Arquivos B para permitir acesso de Leitura/Gravação somente ao Cliente B, que é designado ao bloco CIDR 10.1.1.0/24. O Cliente A e o Cliente C não estão incluídos nesse bloco CIDR e não podem acessar o sistema de arquivos.

    Opções de exportação do Sistema de Arquivos B:

    • Origem: 10.1.1.0/24
    • portas: privilegiadas
    • Acesso: Leitura/Gravação
    • Squash: Nenhum
  • Defina as opções de exportação do Sistema de Arquivos A para permitir acesso Read_Write somente ao Cliente A, que é designado ao bloco CIDR 10.0.0.0/24. O Cliente B e o Cliente C não estão incluídos nesse bloco CIDR e não podem acessar o sistema de arquivos.

    oci fs export update --export-id <file_system_A_export_ID> --export-options '[{"source":"10.0.0.0/24","require-privileged-source-port":"true","access":"READ_WRITE","identity-squash":"NONE","anonymous-uid":"65534","anonymous-gid":"65534"}]'

    Defina as opções de exportação do Sistema de Arquivos B para permitir acesso Read_Write somente ao Cliente B, que é designado ao bloco CIDR 10.1.1.0/24. O Cliente A e o Cliente C não estão incluídos nesse bloco CIDR e não podem acessar o sistema de arquivos.

    oci fs export update --export-id <file_system_B_export_ID> --export-options '[{"source":"10.1.1.0/24 ","require-privileged-source-port":"true","access":"READ_WRITE","identity-squash":"NONE","anonymous-uid":"65534","anonymous-gid":"65534"}]'

    Para obter uma lista completa de parâmetros e valores para comandos da CLI, consulte a Referência de Comandos da CLI.

  • Defina as opções de exportação do Sistema de Arquivos A para permitir acesso READ_WRITE somente ao Cliente A, que é designado ao bloco CIDR 10.0.0.0/24. O Cliente B e o Cliente C não estão incluídos nesse bloco CIDR e não podem acessar o sistema de arquivos.

    PUT/<Current_API_Version>/exports/<File_System_A_export_OCID>
    Host: filestorage.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
        "exportOptions": [
            {
              "source": "10.0.0.0/24",
              "requirePrivilegedSourcePort": true,
              "access": "READ_WRITE",
              "identitySquash": "NONE",
              "anonymousUid": 65534,
              "anonymousGid": 65534
            }
        ]
    }

    Defina as opções de exportação do Sistema de Arquivos B para permitir que READ_WRITE acesse apenas o Cliente B, que é designado ao bloco CIDR 10.1.1.0/24. O Cliente A e o Cliente C não estão incluídos nesse bloco CIDR e não podem acessar o sistema de arquivos.

    PUT/<Current_API_Version>/exports/<File_System_B_export_OCID>
    Host: filestorage.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
        "exportOptions": [
            {
              "source": "10.1.1.0/24",
              "requirePrivilegedSourcePort": true,
              "access": "READ_WRITE",
              "identitySquash": "NONE",
              "anonymousUid": 65534,
              "anonymousGid": 65534
            }
        ]
    }

Limitar a Capacidade de Gravar Dados

Forneça dados aos clientes para consumo, mas não permita que eles atualizem os dados.

Por exemplo, você gostaria de publicar um conjunto de recursos no sistema de arquivos A para que um aplicativo consuma, mas não altere. O aplicativo se conecta do endereço IP 10.0.0.8.

  • Defina o endereço IP de origem 10.0.0.8 como Somente para Leitura na exportação para o Sistema de Arquivos A. Opções de exportação do Sistema de Arquivos A:

    • Origem: 10.0.0.8
    • portas: privilegiadas
    • Acesso: Somente para Leitura
    • Squash: Nenhum
  • Defina o endereço IP de origem 10.0.0.8 como READ_ONLY na exportação do Sistema de Arquivos A:

    oci fs export update --export-id <File_System_A_export_OCID> --export-options '[{"source":"10.0.0.8","require-privileged-source-port":"true","access":"READ_ONLY","identitysquash":"NONE","anonymousuid":"65534","anonymousgid":"65534"}]'
  • Defina o endereço IP de origem 10.0.0.8 como READ_ONLY na exportação do Sistema de Arquivos A:

    PUT/<Current_API_Version>/exports/<File_System_A_export_OCID>
    Host: filestorage.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
        "exportOptions": [
            {
              "source": "10.0.0.8",
              "requirePrivilegedSourcePort": true,
              "access": "READ_ONLY",
              "identitySquash": "NONE",
              "anonymousUid": 65534,
              "anonymousGid": 65534
            }
        ]
    }

Melhorar a Segurança do Sistema de Arquivos

Para aumentar a segurança, você gostaria de limitar os privilégios do usuário raiz ao se conectar ao Sistema de Arquivos A. Use o Squash de Identidade para remapear os usuários raiz para o UID/GID 65534. Nos sistemas do tipo Unix, essa combinação UID/GID é reservada para 'nobody', um usuário sem privilégios de sistema.

  • Opções de exportação do Sistema de Arquivos A:

    • Origem: 0.0.0.0
    • portas: privilegiadas
    • Acesso: Leitura/Gravação
    • Squash: Raiz
    • UID: 65534
    • GID: 65534
  • oci fs export update --export-id <File_System_A_export_OCID> --export-options '[{"source":"0.0.0.0/0","require-privileged-source-port":"true","access":"READ_WRITE","identitysquash":"ROOT","anonymousuid":"65534","anonymousgid":"65534"}]' 

    Para obter uma lista completa de parâmetros e valores para comandos da CLI, consulte a Referência de Comandos da CLI.

  • PUT/<Current_API_Version>/exports/<File_System_A_export_OCID>
    Host: filestorage.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
        "exportOptions": [
            {
              "source": "0.0.0.0/0",
              "requirePrivilegedSourcePort": true,
              "access": "READ_WRITE",
              "identitySquash": "ROOT",
              "anonymousUid": 65534,
              "anonymousGid": 65534
            }
        ]
    }
    Dica

    Se não quiser que um sistema de arquivos fique visível para os clientes, você poderá definir todas as propriedades no array exportOptions como valores vazios. Por exemplo,

    {
       "exportOptions": [
         {
          "source":"",
          "requirePrivilegedSourcePort":"",
          "access": "",
          "identitySquash":""}        
    ] 

Usar o Kerberos para Autenticação

Para aumentar a segurança, você gostaria de exigir autenticação do Kerberos com integridade de dados e privacidade de dados (criptografia em trânsito) ao estabelecer conexão com o Sistema de Arquivos A do bloco CIDR 10.0.0.0/24. Use Acesso Anônimo para agrupar usuários que não foram encontrados com a pesquisa LDAP para prosseguir com o UID e o GID especificados e sem grupos secundários.

Ative a autenticação do Kerberos para o Sistema de Arquivos A e defina as opções de exportação.

  • Opções de exportação do Sistema de Arquivos A:

    • Origem: 10.0.0.0/24
    • Portas: Qualquer uma
    • Acesso: Leitura/Gravação
    • Squash: Nenhum
    • Acesso Anônimo: Verdadeiro
    • Opções de Autenticação Permitidas: KRB5P
    • Fazer Squash de UID: 65534
    • Esquecer GID: 65534
    Observação

    A exportação também deve ter a opção Usar LDAP para Lista de Grupos ativada.
  • oci fs export update --export-id <File_System_A_export_OCID> --export-options '[{"source":"10.0.0.0/24","require-privileged-source-port":"false","access":"READ_WRITE","allowedAuth":"KRB5P","isAnonymousAccessAllowed":"true","identitysquash":"NONE","anonymousuid":"65534","anonymousgid":"65534"}]' 
    Observação

    A exportação também deve ter --is-idmap-groups-for-sys-auth definido como true.

    Para obter uma lista completa de parâmetros e valores para comandos da CLI, consulte a Referência de Comandos da CLI.

  • PUT/<Current_API_Version>/exports/<File_System_A_export_OCID>
    Host: filestorage.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
        "exportOptions": [
            {
              "source": "10.0.0.0/24",
              "requirePrivilegedSourcePort": false,
              "access": "READ_WRITE",
              "allowedAuth": "KRB5P",
              "isAnonymousAccessAllowed": true,
              "identitySquash": "NONE",
              "anonymousUid": 65534,
              "anonymousGid": 65534
            }
        ]
    }
    Observação

    A exportação também deve ter isIdmapGroupsForSysAuth definido como true.

Política Obrigatória do Serviço IAM

Para usar o Oracle Cloud Infrastructure, um administrador deve ser membro de um grupo com acesso de segurança concedido em uma política por um administrador da tenancy. Esse acesso será necessário se você estiver usando a Console ou a API REST com um SDK, uma CLI ou outra ferramenta. Se você receber uma mensagem de que não tem permissão ou que não está autorizado, verifique com o administrador da tenancy qual tipo de acesso você tem e em qual compartimento seu acesso funciona.

Para administradores: A política em Permitir que os usuários criem, gerenciem e excluam sistemas de arquivos permite que os usuários gerenciem opções de exportação NFS.

Se você for iniciante em políticas, consulte Gerenciando Domínios de Identidades e Políticas Comuns.