Utilisation des exports NFS et des options d'export

Découvrez les fonctionnalités de base des options d'export et d'export NFS, et apprenez à améliorer la sécurité et le contrôle de l'accès client aux systèmes de fichiers File Storage.

Présentation

Les options d'export NFS offrent la possibilité de créer un contrôle d'accès plus fin comparé à l'utilisation des seules règles de liste de sécurité en matière de restriction d'accès au réseau cloud virtuel. Vous pouvez utiliser les options d'export NFS afin de définir des niveaux d'accès en fonction des adresses IP et des blocs CIDR se connectant aux systèmes de fichiers par le biais d'exports dans une cible de montage. L'accès peut être restreint de sorte que le système de fichiers du client soit inaccessible et invisible pour les autres, ce qui permet un meilleur contrôle de la sécurité dans les environnements colocatifs.

A l'aide des contrôles d'accès de l'option d'export NFS, vous pouvez limiter la capacité des clients à se connecter au système de fichiers, et afficher ou écrire des données. Par exemple, si vous voulez que les clients utilisent les ressources de votre système de fichiers sans les mettre à jour, vous pouvez définir un accès en lecture seule. Vous pouvez également réduire l'accès racine client à vos systèmes de fichiers et faire correspondre des ID utilisateur (UID) et des ID de groupe (GID) indiqués à un UID/GID anonyme de votre choix. Pour plus d'informations sur l'utilisation des options d'export NFS avec d'autres couches de sécurité, reportez-vous à A propos de la sécurité de File Storage.

Conseil

Regardez une vidéo sur l'utilisation des options d'export NFS dans File Storage.

Exports

Les exports contrôlent la manière dont les clients NFS accèdent aux systèmes de fichiers lors de la connexion à une cible de montage. Les systèmes de fichiers sont exportés (mis à disposition) via des cibles de montage. Chaque cible de montage gère un ensemble d'éléments d'export contenant au moins un export. Un système de fichiers peut être exporté via des cibles de montage. Un système de fichiers doit posséder au moins un export dans une cible de montage pour que les instances puissent monter le système de fichiers. Les informations utilisées par l'export incluent l'OCID de système de fichiers, l'OCID de cible de montage, l'OCID d'ensemble d'éléments d'export, le chemin d'export et les options d'export client. En règle générale, un export est créé dans une cible de montage lors de la création d'un système de fichiers. Par la suite, vous pouvez créer des exports supplémentaires pour le système de fichiers dans n'importe quelle cible de montage qui réside dans le même domaine de disponibilité que le système de fichiers.

Vous pouvez effectuer les tâches de gestion des exportations suivantes :

Options d'export NFS

Les options d'export NFS sont un ensemble de paramètres dans l'export qui indiquent le niveau d'accès accordé aux clients NFS lorsqu'ils se connectent à une cible de montage. Au sein d'un export, une entrée d'options d'export NFS peut définir l'accès à une adresse IP unique ou à une plage de blocs CIDR. Vous pouvez avoir jusqu'à 100 options par export.

Chaque adresse IP ou bloc CIDR de client distinct pour lequel vous souhaitez définir l'accès nécessite une entrée d'options d'export distincte. Par exemple, pour définir des options pour les adresses IP de clients NFS 10.0.0.6, 10.0.08 et 10.0.0.10, vous devez créer trois entrées séparées, une pour chaque adresse IP.

Pour l'export, le service File Storage prend en compte l'ordre répertorié de chaque entrée d'options d'export. Au cours d'une demande NFS par un client, le service File Storage applique le premier ensemble d'options correspondant à l'adresse IP source du client. Seul le premier ensemble est appliqué ; le reste est ignoré.

Par exemple, prenons les deux entrées d'options d'export suivantes permettant l'accès à un export :

Entrée 1 : source : 10.0.0.0/16, accès : lecture seule

Entrée 2 : source : 10.0.0.8, accès : lecture/écriture

Dans ce cas, les clients qui se connectent à l'export à partir de l'adresse IP 10.0.0.8 disposent d'un accès en lecture seule. L'adresse IP source de la demande est contenue dans le bloc CIDR indiqué dans la première entrée et File Storage applique les options de la première correspondance.

Important

Les systèmes de fichiers peuvent être associés à des exports, contenus dans des cibles de montage. Si l'adresse IP source du client ne correspond à aucune entrée de la liste pour un export unique, alors cet export n'est pas visible pour le client. Toutefois, il est possible d'accéder au système de fichiers via d'autres exports sur les mêmes cibles ou sur d'autres cibles de montage. Pour refuser totalement l'accès client à un système de fichiers, assurez-vous que l'adresse IP ou le bloc CIDR source du client n'est inclus dans aucun export pour toute cible de montage associée au système de fichiers.

Les options suivantes peuvent être définies pour contrôler l'accès à l'export :

  • Source : adresse IP ou bloc CIDR d'un client NFS connecté.
  • Ports : ce paramètre détermine si les clients NFS indiqués dans la source doivent se connecter à partir d'un port source privilégié. Les ports privilégiés peuvent être n'importe quel port, de 1 à 1023. Sur les systèmes de type UNIX, seul l'utilisateur racine peut ouvrir les ports privilégiés. La définition de cette valeur sur Privileged empêche les demandes à partir de ports non privilégiés. La valeur par défaut de ce paramètre varie en fonction de la manière dont l'export est créé.

    La création d'un export dans la console à l'aide des sélections par défaut définit Ports sur Tous, sauf si vous sélectionnez Utiliser les options d'export sécurisé.

    La création d'un export à l'aide de l'API ou de l'interface de ligne de commande sans tableau ClientOption explicite définit l'attribut requirePrivilegedSourcePort de l'option client sur false. Lorsque vous créez explicitement un tableau ClientOption, la valeur par défaut de requirePrivilegedSourcePort est true.

Important

Lorsque Ports est défini sur Privileged, vous devez également suivre les étapes de configuration supplémentaires suivantes : 

  1. Lors du montage du système de fichiers à partir d'un système de type UNIX, incluez l'option resvport dans une commande mount lors du montage. Par exemple : 

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

    Pour plus d'informations, reportez-vous à Mounting File Systems From UNIX-Style Instances.

  2. Lors du montage d'un système de fichiers à partir d'un système Windows, assurez-vous que la valeur de la clé de registre UseReserverdPorts est définie sur 1.

    Pour plus d'informations, reportez-vous à Montage de systèmes de fichiers à partir d'instances Windows.

  • Accès : ce paramètre définit l'accès client NFS Source.
    • Lecture/écriture est la valeur par défaut.
    • En lecture seule.
  • Accès anonyme : ce paramètre indique s'il faut activer l'accès anonyme pour l'authentification Kerberos dans les cas où la cible de montage ne trouve pas d'utilisateur dans le serveur LDAP. Si Anonymous Access a la valeur Not Allowed et que l'utilisateur est introuvable dans l'annuaire LDAP, ou si la tentative de recherche renvoie une erreur LDAP, l'opération échoue. Si Anonymous Access a la valeur Allowed et que l'utilisateur est introuvable dans l'annuaire LDAP, l'opération utilise les valeurs Squash UID et Squash GID de l'export. Pour plus d'informations, reportez-vous à la section Using Kerberos Authentication.
    Remarque

    Si l'export n'utilise pas l'authentification Kerberos, sélectionnez Non autorisé.
  • Options d'authentification autorisées : ce paramètre spécifie les méthodes d'authentification autorisées par le client NFS.
    • SYS : authentification UNIX NFS v3. Si vous n'indiquez pas de valeur d'authentification autorisée lors de la création de l'option d'export, la valeur par défaut SYS est utilisée.
    • KRB5 : authentification Kerberos NFS v3.
    • KRB5I : authentification Kerberos NFS v3 et intégrité des données.
    • KRB5P : authentification Kerberos NFS v3, intégrité des données et confidentialité des données (chiffrement en transit).

    Vous pouvez sélectionner plusieurs méthodes d'authentification. Par exemple, la définition de Options d'authentification autorisées sur KRB5 et KRB5I autoriserait Kerberos et Kerberos de base avec intégrité des données, mais interdire l'authentification SYS et KRB5P.

    Attention

    Une sélection Options d'authentification autorisées vide supprime tous les types d'authentification et peut entraîner une perte d'accès. Les clients nécessitant l'authentification SYS perdent l'accès si l'option SYS n'est pas disponible.
    Important

    Les commandes de montage que vous utilisez pour monter le système de fichiers diffèrent en fonction des méthodes d'authentification autorisées dans les options d'export. Si les clients NFS se connectent via une cible de montage compatible Kerberos, la commande de montage doit inclure l'option sec. Par exemple : 

    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

    Pour les clients NFS qui se connectent à AUTH_SYS sur le même export, la commande de montage inclut sec=sys. Par exemple :

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

    Si l'export utilise uniquement AUTH_SYS, l'option sec est facultative. Les exemples de commande de montage fournis par la console sont basés sur les options d'export sélectionnées.

    Remarque

    Si un client NFS utilise un export ayant plusieurs types d'authentification et que le système de fichiers est monté sans spécifier sec=<auth_type>, le client doit automatiquement choisir le type d'authentification le plus fort pris en charge par l'export.
  • Squash : ce paramètre détermine si les clients source qui accèdent au système de fichiers ont leur ID utilisateur (UID) et leur ID de groupe (GID) mis de nouveau en correspondance avec Squash UID et Squash GID.
    • Aucun : aucun utilisateur n'est de nouveau mis en correspondance. Il s'agit de la valeur par défaut.
    • Racine : Seule la combinaison UID/GID de l'utilisateur racine 0/0 est de nouveau mise en correspondance.
    • Tous : tous les utilisateurs et groupes sont de nouveau mis en correspondance.
  • UID de squash : ce paramètre est utilisé avec les options Squash et Anonymous Access. Lors de la nouvelle mise en correspondance d'utilisateurs, vous pouvez utiliser ce paramètre pour remplacer la valeur par défaut 65534 par un autre ID utilisateur.
  • GID de squash : ce paramètre est utilisé avec les options Squash et Anonymous Access. Lors de la nouvelle mise en correspondance de groupes, vous pouvez utiliser ce paramètre pour remplacer la valeur par défaut 65534 par un autre ID de groupe.

Scénarios de contrôle d'accès standard

Lorsque vous créez un système de fichiers et un export, les options d'export NFS de ce système de fichiers sont définies sur les valeurs par défaut suivantes, qui permettent un accès complet à toutes les connexions source des clients NFS. Vous devez modifier ces valeurs par défaut si vous souhaitez restreindre l'accès :

  • Source : 0.0.0.0/0 (Tout)
  • Port source privilégié requis : n'importe quel
  • Options d'authentification autorisées : SYS
  • Accès : Lecture/écriture
  • Rassembler : Aucun

Contrôler l'accès basé sur l'hôte

Fournissez un environnement hébergé géré à deux clients. Les clients partagent une cible de montage, mais chacun possède son propre système de fichiers et ne peut pas accéder aux données de l'autre. Par exemple :

  • Le client A, qui est affecté au bloc CIDR 10.0.0.0/24, requiert un accès en lecture/écriture au système de fichiers A, mais pas au système de fichiers B.
  • Le client B, qui est affecté au bloc CIDR 10.1.1.0/24, requiert un accès en lecture/écriture au système de fichiers B, mais pas au système de fichiers A.
  • Le client C, qui est affecté au bloc CIDR 10.2.2.0/24, n'a aucun accès aux systèmes de fichiers A et B.
  • Les systèmes de fichiers A et B sont associés à une seule cible de montage, MT1. Chaque système de fichiers dispose d'un export contenu dans l'ensemble d'éléments d'export de MT1.

Etant donné que le client A et le client B accèdent à la cible de montage à partir de blocs CIDR différents, vous pouvez définir les options de client pour les deux exports de système de fichiers afin de permettre l'accès à un seul bloc CIDR. L'accès au client C est refusé en excluant son adresse IP ou son bloc CIDR des options d'export NFS pour tout export de système de fichiers.

  • Définissez les options d'export pour le système de fichiers A de sorte à autoriser l'accès en lecture/écriture uniquement au client A, qui est affecté au bloc CIDR 10.0.0.0/24. Le client B et le client C ne sont pas inclus dans ce bloc CIDR et ne peuvent donc pas accéder au système de fichiers.

    Options d'export du système de fichiers A :

    • Source : 10.0.0.0/24
    • Ports : privilège
    • Accès : Lecture/écriture
    • Rassembler : Aucun

    Définissez les options d'export pour le système de fichiers B de sorte à autoriser l'accès en lecture/écriture uniquement au client B, qui est affecté au bloc CIDR 10.1.1.0/24. Le client A et le client C ne sont pas inclus dans ce bloc CIDR et ne peuvent donc pas accéder au système de fichiers.

    Options d'export du système de fichiers B :

    • Source : 10.1.1.0/24
    • Ports : privilège
    • Accès : Lecture/écriture
    • Rassembler : Aucun
  • Définissez les options d'export pour le système de fichiers A de sorte à autoriser l'accès Read_Write uniquement au client A, qui est affecté au bloc CIDR 10.0.0.0.0/24. Le client B et le client C ne sont pas inclus dans ce bloc CIDR et ne peuvent donc pas accéder au système de fichiers.

    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"}]'

    Définissez les options d'export pour le système de fichiers B de sorte à autoriser l'accès Read_Write uniquement au client B, qui est affecté au bloc CIDR 10.1.1.0/24. Le client A et le client C ne sont pas inclus dans ce bloc CIDR et ne peuvent donc pas accéder au système de fichiers.

    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"}]'

    Afin d'obtenir la liste complète des indicateurs et des options de variable pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande.

  • Définissez les options d'export pour le système de fichiers A de sorte à autoriser l'accès READ_WRITE uniquement au client A, qui est affecté au bloc CIDR 10.0.0.0/24. Le client B et le client C ne sont pas inclus dans ce bloc CIDR et ne peuvent donc pas accéder au système de fichiers.

    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
            }
        ]
    }

    Définissez les options d'export pour le système de fichiers B de sorte à autoriser l'accès READ_WRITE uniquement au client B, qui est affecté au bloc CIDR 10.1.1.0/24. Le client A et le client C ne sont pas inclus dans ce bloc CIDR et ne peuvent donc pas accéder au système de fichiers.

    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
            }
        ]
    }

Limiter la possibilité d'écrire des données

Fournissez aux clients des données à des fins d'utilisation, mais ne les autorisez à les mettre à jour.

Par exemple, vous souhaitez publier un ensemble de ressources dans le système de fichiers A pour qu'une application les utilise, mais sans les modifier. L'application se connecte à partir de l'adresse IP 10.0.0.8.

  • Définissez l'adresse IP source 10.0.0.8 sur Lecture seule dans l'export du système de fichiers A. Options d'export du système de fichiers A :

    • Source : 10.0.0.8
    • Ports : privilège
    • Accès : Lecture seule
    • Rassembler : Aucun
  • Définissez l'adresse IP source 10.0.0.8 sur READ_ONLY dans l'export du système de fichiers 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"}]'
  • Définissez l'adresse IP source 10.0.0.8 sur READ_ONLY dans l'export du système de fichiers 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
            }
        ]
    }

Améliorer la sécurité du système de fichiers

Pour renforcer la sécurité, vous souhaitez limiter les privilèges de l'utilisateur racine lors de la connexion au système de fichiers A. Utilisez Rassemblement d'identités pour mettre de nouveau en correspondance les utilisateurs racine avec UID/GID 65534. Dans les systèmes de type Unix, cette combinaison UID/GID est réservée à 'nobody ', un utilisateur qui ne dispose d'aucun privilège système.

  • Options d'export du système de fichiers A :

    • Source : 0.0.0.0
    • Ports : privilège
    • Accès : Lecture/écriture
    • Rassembler : Racine
    • 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"}]' 

    Afin d'obtenir la liste complète des indicateurs et des options de variable pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande.

  • 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
            }
        ]
    }
    Conseil

    Si vous ne souhaitez pas qu'un système de fichiers soit visible par les clients, vous pouvez définir toutes les propriétés du tableau exportOptions avec des valeurs vides. Par exemple :

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

Utilisation de Kerberos pour l'authentification

Pour améliorer la sécurité, vous souhaitez exiger l'authentification Kerberos avec intégrité des données et confidentialité des données (cryptage en transit) lors de la connexion au système de fichiers A à partir du bloc CIDR 10.0.0.0/24. Utilisez Anonymous Access pour écraser les utilisateurs qui ne sont pas trouvés avec la recherche LDAP pour poursuivre avec l'UID et le GID spécifiés et aucun groupe secondaire.

Activez l'authentification Kerberos pour le système de fichiers A, puis définissez les options d'export.

Exemple avec la console

Options d'export du système de fichiers A :

  • Source : 10.0.0.0/24
  • Ports : Tous
  • Accès : Lecture/écriture
  • Rassembler : Aucun
  • Accès anonyme : Vrai
  • Options d'authentification autorisées : KRB5P
  • UID de squash : 65534
  • GID Squash : 65534
Remarque

L'option Utiliser LDAP pour la liste de groupes doit également être activée pour l'export.
Exemple avec l'interface de ligne de commande
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"}]' 
Remarque

--is-idmap-groups-for-sys-auth doit également être défini sur true pour l'export.
Exemple avec l'API
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
        }
    ]
}
Remarque

isIdmapGroupsForSysAuth doit également être défini sur true pour l'export.

Stratégie IAM requise

Pour utiliser Oracle Cloud Infrastructure, un administrateur doit vous accorder un accès sécurisé dans une stratégie. Cet accès est requis que vous utilisiez la console ou l'API REST avec un kit SDK, l'interface de ligne de commande ou un autre outil. Si un message vous indique que vous ne disposez pas des droits d'accès ou des autorisations nécessaires, vérifiez auprès de l'administrateur le type d'accès qui vous a été accordé et le compartiment dans lequel vous devez travailler.

Pour les administrateurs : la stratégie dans Autoriser les utilisateurs à créer, gérer et supprimer des systèmes de fichiers permet aux utilisateurs de gérer les options d'export NFS.

Si vous ne connaissez pas les stratégies, reportez-vous à Introduction aux stratégies et à Stratégies courantes.