Utilisation des options d'exportation et d'exportation NFS

Découvrez les fonctions de base des options d'exportation et d'exportation NFS et comment améliorer la sécurité et contrôler l'accès des clients aux systèmes de fichiers du service de stockage de fichiers.

Aperçu

Les options d'exportation NFS vous permettent de créer un contrôle d'accès plus granulaire que celui utilisant uniquement les règles de liste de sécurité pour limiter l'accès au réseau en nuage virtuel. Vous pouvez utiliser les options d'exportation NFS afin d'indiquer les niveaux d'accès pour les adresses IP ou les blocs CIDR qui se connectent à des systèmes de fichiers au moyen d'exportations dans une cible de montage. L'accès peut être restreint de manière à ce que le système de fichiers de chaque client soit inaccessible et invisible aux autres, ce qui assure des contrôles de sécurité plus efficaces dans des environnements multilocations.

À l'aide des contrôles d'accès des options d'exportation NFS, vous pouvez limiter la capacité des clients à se connecter au système de fichiers et à voir ou écrire des données. Par exemple, pour autoriser les clients à consommer, mais pas à mettre à jour les ressources de votre système de fichiers, vous pouvez régler l'accès à Lecture seule. Vous pouvez également réduire l'accès racine du client à vos systèmes de fichiers et mapper les ID utilisateurs (UID) et les ID groupes (GID) spécifiés à un UID/GID anonyme de votre choix. Pour plus d'informations sur la façon dont les options d'exportation NFS fonctionnent avec d'autres couches de sécurité, voir À propos de la sécurité du stockage de fichiers.

Conseil

Regardez une vidéo sur l'utilisation des options d'exportation NFS pour le service de stockage de fichiers.

Exportations

Les exportations contrôlent la façon dont les clients NFS accèdent aux systèmes de fichiers lorsqu'ils se connectent à une cible de montage. Les systèmes de fichiers sont exportés (rendus disponibles) au moyen des cibles de montage. Chaque cible de montage tient à jour un jeu d'exportations qui contient une ou plusieurs exportations. Un système de fichiers peut être exporté au moyen d'une ou de plusieurs cibles de montage. Un système de fichiers doit avoir au moins une exportation dans une cible de montage pour que les instances puissent monter le système de fichiers. Les informations utilisées par une exportation incluent l'OCID du système de fichiers, l'OCID de la cible de montage, l'OCID du jeu d'exportations, le chemin d'exportation et les options d'exportation du client. En général, une exportation est créée dans une cible de montage lors de la création du système de fichiers. Par la suite, vous pouvez créer des exportations supplémentaires pour un système de fichiers dans toute cible de montage résidant dans le même domaine de disponibilité que le système de fichiers.

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

Options d'exportation NFS

Les options d'exportation NFS sont un jeu de paramètres dans l'exportation qui indique le niveau d'accès accordé aux clients NFS lorsqu'ils se connectent à une cible de montage. Une entrée d'options d'exportation NFS dans une exportation définit l'accès pour une adresse IP ou un intervalle de blocs CIDR. Vous pouvez avoir jusqu'à 100 options par exportation.

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

Le service de stockage de fichiers tient compte de l'ordre dans lequel les entrées d'options d'exportation sont listées pour l'exportation. Lors d'une demande NFS d'un client, le service de stockage de fichiers applique le premier jeu d'options correspondant à l'adresse IP source du client. Seul le premier jeu est appliqué; le reste est ignoré.

Par exemple, examinez les deux entrées d'options d'exportation suivantes qui précisent l'accès pour une exportation :

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'exportation à 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 spécifié dans la première entrée et le stockage de fichiers applique les options de la première correspondance.

Important

Des systèmes de fichiers peuvent être associés à une ou plusieurs exportations, contenues dans une ou plusieurs cibles de montage. Si l'adresse IP source du client ne correspond à aucune entrée de la liste pour une exportation, cette exportation n'est alors pas visible pour le client. Cependant, il est possible d'accéder au système de fichiers au moyen d'autres exportations sur la même cible de montage ou d'autres. Pour refuser complètement l'accès d'un client à un système de fichiers, assurez-vous que l'adresse IP source ou le bloc CIDR du client ne sont inclus dans aucune exportation pour aucune cible de montage associée au système de fichiers.

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

  • Source : Adresse IP ou bloc CIDR d'une connexion de client NFS.
  • Ports : Ce paramètre détermine si les clients NFS spécifiés dans la source doivent se connecter à partir d'un port source avec privilèges. Les ports avec privilèges désignent tous les ports, y compris 1-1023. Sur les systèmes de type UNIX, seul l'utilisateur racine peut ouvrir des ports avec privilèges. Réglez cette valeur à Privileged (Privilégié) pour interdire les demandes provenant de ports sans privilèges. La valeur par défaut de ce paramètre diffère selon la façon dont l'exportation est créée.

    La création d'une exportation dans la console à l'aide des sélections par défaut règle les ports à Au choix, sauf si vous sélectionnez Utiliser des options d'exportation sécurisées.

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

Important

Lorsque le paramètre Ports est réglé à Privilégié, vous devez également suivre les étapes de configuration supplémentaires suivantes : 

  1. Lorsque vous montez le système de fichiers à partir d'un système de type UNIX, ajoutez l'option resvport à une commande de montage. Par exemple : 

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

    Pour plus d'informations, voir Montage de systèmes de fichiers à partir d'instances de type UNIX.

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

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

  • Access (Accès) : ce paramètre indique l'accès du client NFS Source.
    • La valeur par défaut est Lecture/écriture.
    • En lecture seule.
  • Accès anonyme : Ce paramètre spécifie si l'accès anonyme doit être activé pour l'authentification Kerberos dans les cas où la cible de montage ne trouve pas d'utilisateur dans le serveur LDAP. Si l'option Accès anonyme est Non autorisé et que l'utilisateur est introuvable dans le répertoire LDAP, ou si la tentative de consultation retourne une erreur LDAP, l'opération échoue. Si l'accès anonyme est autorisé et que l'utilisateur est introuvable dans le répertoire LDAP, l'opération utilise les valeurs UID squash et GID squash de l'exportation. Pour plus d'informations, voir Utilisation de l'authentification Kerberos.
    Note

    Si l'exportation 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 ne spécifiez pas de valeur d'authentification autorisée lorsque vous créez l'option d'exportation, une valeur par défaut de SYS est utilisée.
    • KRB5 : Authentification NFS v3 Kerberos.
    • KRB5I : Authentification NFS v3 Kerberos et intégrité des données.
    • KRB5P : Authentification NFS v3 Kerberos, intégrité des données et confidentialité des données (chiffrement en transit).

    Vous pouvez sélectionner plusieurs méthodes d'authentification. Par exemple, le réglage des options d'authentification autorisées à KRB5 et à KRB5I permettrait à Kerberos et Kerberos de base d'assurer l'intégrité des données, mais interdit l'authentification SYS et KRB5P.

    Attention

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

    Les commandes de montage que vous utilisez pour monter le système de fichiers diffèrent selon les méthodes d'authentification autorisées dans les options d'exportation. Si les clients NFS se connectent au moyen d'une cible de montage activée pour 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 la même exportation, 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'exportation utilise uniquement AUTH_SYS, l'option sec est facultative. Les échantillons de commande de montage fournis par la console sont basés sur les options d'exportation sélectionnées.

    Note

    Si un client NFS utilise une exportation qui comporte plusieurs types d'authentification et que le système de fichiers est monté sans spécifier sec=<auth_type>, le client doit sélectionner automatiquement le type d'authentification le plus fort pris en charge par l'exportation.
  • Squash : Ce paramètre détermine si l'ID utilisateur (UID) et l'ID groupe (GID) des clients source qui accèdent au système de fichiers sont remappés à Squash UID et Squash GID.
    • None : Aucun utilisateur n'est remappé. Il s’agit de la valeur par défaut.
    • Root : Seule la combinaison 0/0 d'UID/GID utilisateur racine est mappée.
    • All : Tous les utilisateurs et tous les groupes sont mappés.
  • UID squash : Ce paramètre est utilisé avec les options Squash et Accès anonyme. Lorsque vous remappez des utilisateurs, vous pouvez utiliser ce paramètre pour remplacer la valeur par défaut de 65534 par un autre ID utilisateur.
  • IDG séquentiel : Ce paramètre est utilisé avec les options Squash et Anonymous Access (Accès anonyme). Lorsque vous remappez des groupes, vous pouvez utiliser ce paramètre pour remplacer la valeur par défaut 65534 par un autre ID groupe.

Scénarios types de contrôle de l'accès

Lorsque vous créez un système de fichiers et une exportation, les options d'exportation NFS pour ce système de fichiers sont réglées aux valeurs par défaut suivantes, qui permettent un accès complet à toutes les connexions sources de client NFS. Ces valeurs par défaut doivent être modifiées si vous voulez restreindre l'accès :

  • Source : 0.0.0.0/0 (Tout)
  • Exiger le port source avec privilèges : Tout
  • Options d'authentification autorisées : SYS
  • Accès : Lecture/écriture
  • Squash : Aucun

Accès basé sur l'hôte de contrôle

Fournir un environnement hébergé géré pour 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 client. Par exemple :

  • Le client A, qui est affecté au bloc CIDR 10.0.0.0/24, nécessite un accès en lecture/écriture au système de fichiers A, mais pas au système de fichiers B.
  • Le client B, affecté au bloc CIDR 10.1.1.0/24, nécessite un accès en lecture/écriture au système de fichiers B, mais pas au système de fichiers A.
  • Le client C, affecté au bloc CIDR 10.2.2.0/24, n'a aucun accès au système de fichiers A ou au système de fichiers B.
  • Les systèmes de fichiers A et B sont tous deux associés à une seule cible de montage, MT1. Le jeu d'exportations de MT1 comporte une exportation pour chacun des systèmes de fichiers.

Comme 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 client pour les deux exportations de système de fichiers de façon à accorder l'accès à un seul bloc CIDR. Le client C n'a pas d'accès, car son adresse IP ou bloc CIDR n'est pas inclus dans les options d'exportation NFS de toute exportation des deux systèmes de fichiers.

  • Définir les options d'exportation pour le système de fichiers A de manière à accorder 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 n'étant pas inclus dans ce bloc CIDR, ils ne peuvent pas accéder au système de fichiers.

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

    • Source : 10.0.0.0/24
    • Ports : Avec privilèges
    • Accès : Lecture/écriture
    • Squash : Aucun

    Définir les options d'exportation pour le système de fichiers B de manière à accorder 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 n'étant pas inclus dans ce bloc CIDR, ils ne peuvent pas accéder au système de fichiers.

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

    • Source : 10.1.1.0/24
    • Ports : Avec privilèges
    • Accès : Lecture/écriture
    • Squash : Aucun
  • Définir les options d'exportation pour le système de fichiers A de manière à accorder 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 n'étant pas inclus dans ce bloc CIDR, ils ne peuvent 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éfinir les options d'exportation pour le système de fichiers B de manière à accorder 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 n'étant pas inclus dans ce bloc CIDR, ils ne peuvent 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"}]'

    Pour la liste complète des paramètres et des valeurs pour les commandes de l'interface de ligne de commande, voir Informations de référence sur les commandes de l'interface de ligne de commande.

  • Définir les options d'exportation pour le système de fichiers A de manière à 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 n'étant pas inclus dans ce bloc CIDR, ils ne peuvent 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éfinir les options d'exportation pour le système de fichiers B de manière à 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 n'étant pas inclus dans ce bloc CIDR, ils ne peuvent 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 capacité à écrire des données

Fournir aux clients des données pour consommation, mais ne pas leur permettre de mettre à jour les données.

Par exemple, vous voulez publier un jeu de ressources dans le système de fichiers A pour consommation par une application, mais vous ne voulez pas qu'elle les modifie. L'application se connecte à partir de l'adresse IP 10.0.0.8.

  • Définir pour l'adresse IP source 10.0.0.8 un accès en lecture seule dans l'exportation du système de fichiers A. Options d'exportation du système de fichiers A :

    • Source : 10.0.0.8
    • Ports : Avec privilèges
    • accès : lecture seule
    • Squash : Aucun
  • Réglez l'adresse IP source 10.0.0.8 à READ_ONLY dans l'exportation pour le 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"}]'
  • Réglez l'adresse IP source 10.0.0.8 à READ_ONLY dans l'exportation pour le 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 accroître la sécurité, vous souhaitez limiter les privilèges de l'utilisateur racine lors de la connexion au système de fichiers A. Utilisez l'attribut identitySquash pour remapper les utilisateurs racines à l'UID/GID 65534. Dans les systèmes de type Unix, cette combinaison UID/GID est réservée à 'nobody', un utilisateur ne disposant d'aucun privilège d'accès au système.

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

    • Source : 0.0.0.0
    • Ports : Avec privilèges
    • Accès : Lecture/écriture
    • Squash : racine
    • UID : 65534
    • ID : 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"}]' 

    Pour la liste complète des paramètres et des valeurs pour les commandes de l'interface de ligne de commande, voir Informations de référence sur les commandes de l'interface 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 souhaitez qu'un système de fichiers soit invisible pour tous les clients, vous pouvez régler toutes les propriétés du tableau exportOptions à des valeurs vides. Par exemple,

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

Utiliser Kerberos pour l'authentification

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

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

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

    • Source : 10.0.0.0/24
    • Ports : Au choix
    • Accès : Lecture/écriture
    • Squash : Aucun
    • Accès anonyme : Vrai
    • Options d'authentification autorisées : KRB5P
    • UID Squash : 65534
    • GID Squash : 65534
    Note

    L'option Utiliser LDAP pour la liste de groupes doit également être activée pour l'exportation.
  • 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"}]' 
    Note

    --is-idmap-groups-for-sys-auth doit également être réglé à true pour l'exportation.

    Pour la liste complète des paramètres et des valeurs pour les commandes de l'interface de ligne de commande, voir Informations de référence sur les commandes de l'interface 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": "10.0.0.0/24",
              "requirePrivilegedSourcePort": false,
              "access": "READ_WRITE",
              "allowedAuth": "KRB5P",
              "isAnonymousAccessAllowed": true,
              "identitySquash": "NONE",
              "anonymousUid": 65534,
              "anonymousGid": 65534
            }
        ]
    }
    Note

    isIdmapGroupsForSysAuth doit également être réglé à true pour l'exportation.

Politique GIA requise

Pour utiliser Oracle Cloud Infrastructure, un administrateur doit être membre d'un groupe auquel l'accès de sécurité est accordé dans une politique par un administrateur de location. Cet accès est requis que vous utilisiez la console ou l'API REST avec une trousse SDK, l'interface de ligne de commande ou un autre outil. Si vous obtenez un message indiquant que vous ne disposez pas de l'autorisation requise, vérifiez auprès de l'administrateur de la location quel type d'accès vous avez et dans quel compartiment votre accès fonctionne.

Pour les administrateurs : La politique présentée à la rubrique Permettre aux utilisateurs de créer, gérer et supprimer des systèmes de fichiers permet aux utilisateurs de gérer les options d'exportation NFS.

Pour en savoir plus sur les politiques, voir Gestion des domaines d'identité et Politiques communes.