Contrôle d'accès

Cette page explique comment contrôler l'accès aux instances Filestore.

Paramètres d'exportation du partage de fichiers

Un partage de fichiers Filestore se voit attribuer les paramètres /etc/exports par défaut suivants :

  • La liste des clients, qui identifie les clients autorisés à se connecter au fichier share : contient toutes les adresses IP internes du réseau VPC que vous sélectionnée pour l'instance Filestore. Les adresses IP internes n'importe quelle plage répertoriée dans plages. Toutefois, si vous ont des clients non-RFC 1918 de sous-réseaux, vous devez leur accorder explicitement l'accès Cloud Filestore utilisant Contrôle des accès basé sur les adresses IP.
  • L'option rw est utilisée, de sorte que le partage de fichiers autorise les opérations de lecture et d'écriture.
  • L'option de mappage d'ID utilisateur no_root_squash est utilisée, de sorte que tous les utilisateurs et groupes, y compris l'utilisateur racine, devraient être identiques sur l'instance Filestore et sur le client.
  • Toutes les autres options utilisent les valeurs par défaut /etc/exports.

Instances de niveau de base

Les instances SSD et HDD de base créent un partage exporté libellé /config/google-prober, utilisé pour faciliter les processus de vérification internes, qui et vérifieront ensuite l'accès, la durabilité ou les performances. Le partage est exporté vers liste de clients rendue accessible uniquement à l'adresse IP de l'instance, à l'aide du même comme indiqué dans la section précédente. Le partage est accessible aux vérificateurs hébergé sur ou provenant de l'instance uniquement et est inaccessible en dehors de l'instance. L'instance exporte le partage, que ce soit Contrôle des accès basé sur les adresses IP est appliqué. Les utilisateurs peuvent voir le partage exporté à l'aide de la commande showmount -e.

Contrôle des accès basé sur les adresses IP

Vous pouvez modifier ces paramètres d'exportation en créant des règles de contrôle des accès à l'aide de la console Google Cloud ou en spécifiant un fichier de configuration JSON créer une instance à l'aide de la gcloud CLI. Pour en savoir plus, consultez Configurer le contrôle des accès basé sur les adresses IP

Vous pouvez également ajouter de nouvelles règles de contrôle d'accès ou modifier les règles existantes après la création d'une instance. Pour en savoir plus, consultez la section Modifier des instances.

Autorisations de partage de fichiers

Lorsque vous créez une instance Filestore, le partage de fichiers pour cette instance dispose des autorisations de fichier POSIX par défaut rwxr-xr-x. Ces autorisations que sur une instance Filestore, seuls les utilisateurs racines les clients ont un accès en lecture et en écriture au partage de fichiers. Les autres utilisateurs ont uniquement un accès en lecture par défaut. Les utilisateurs racine du client peuvent modifier les autorisations et les propriétaires.

Configurer l'accès sur un partage de fichiers

Lors de l'installation d'un partage de fichiers, vous pouvez utiliser les options d'installation et les paramètres /etc/fstab pour déterminer si le partage de fichiers est accessible en écriture et si fichiers peuvent y être exécutés. Après l'installation du partage de fichiers, vous pouvez utiliser des commandes Linux standards comme chmod, et setfacl pour définir les autorisations de fichiers et de partages de fichiers. Seuls les niveaux de base sont compatibles avec setfacl.

Définir des autorisations cohérentes

Nous vous recommandons vivement de définir des autorisations cohérentes pour chaque utilisateur sur tous les clients qui se connectent à la même instance Filestore afin d'éviter toute élévation des privilèges. Si un partage de fichiers est installé sur plusieurs clients et qu'un utilisateur dispose de privilèges racine sur un client mais pas sur les autres, le scénario d'élévation des privilèges suivant est possible:

  • Un utilisateur définit l'attribut setuid sur un fichier exécutable à partir du client où il a un accès racine.
  • L'utilisateur importe ensuite le fichier exécutable dans le partage de fichiers.
  • L'utilisateur exécute le fichier importé en tant qu'utilisateur racine sur tout client pour lequel il dispose au moins d'une autorisation de lecture.

Ce scénario est possible, car le bit setuid permet à l'utilisateur d'exécuter un fichier en utilisant les autorisations du propriétaire du fichier, qui est dans ce cas racine.

Chevauchement d'autorisations

Zonales, régionales et d'entreprise les instances prennent désormais en charge les autorisations qui se chevauchent.

Si deux règles de contrôle des accès distinctes sont définies pour des adresses IP qui se chevauchent la règle définie pour le sous-réseau plus petit est prioritaire.

Par exemple, si un fichier de configuration JSON contient une règle accordant la lecture et un accès en écriture pour le sous-réseau d'adresses IPv4 10.0.0.0/24, ainsi qu'une règle distincte accorde un accès en lecture seule pour le sous-réseau d'adresses IPv4 10.0.0.0/28, Filestore reconnaît et applique d'abord la règle pour le plus petit sous-réseau. L'autre règle est puis appliqué aux parties restantes du sous-réseau d'adresses IP défini. Dans ce exemple, un client utilisant l'adresse IPv4 10.0.0.20 obtient des autorisations de lecture et d'écriture autorisations, tandis qu'un client utilisant 10.0.0.12 obtient une autorisation en lecture seule:

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

Certaines restrictions s'appliquent:

  • Les autorisations qui se chevauchent pour des sous-réseaux IPv4 identiques ne sont pas prises en charge et renvoient une erreur.

  • Les autorisations qui se chevauchent ne sont pas disponibles pour les instances SSD ou HDD de base.

Étape suivante