Contrôle des accès

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

Filestore ne prend pas en charge Kerberos pour sécuriser l'accès aux instances Filestore. Utilisez plutôt les options Linux et IAM (gestion de l'authentification et des accès) décrites sur cette page.

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 de clients, qui identifie les clients autorisés à se connecter au partage de fichiers, est composée de toutes les adresses IP internes du réseau VPC que vous avez sélectionné pour l'instance Filestore. Toutes les adresses IP internes peuvent être comprises dans la plage des plages de sous-réseaux. Toutefois, si certains de vos clients se trouvent sur des plages de sous-réseaux autres que RFC 1918, vous devez leur accorder explicitement l'accès à l'instance Filestore via la méthode basée sur les adresses IP. le contrôle des accès
  • L'option rw étant utilisée, le partage de fichiers est en lecture-é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.

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 d'accès à l'aide de Cloud Console ou en spécifiant un fichier de configuration JSON lors de la création de l'instance à l'aide de l'outil gcloud. Pour en savoir plus, consultez la section Configurer le contrôle d'accès basé sur l'adresse 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 associé à cette instance dispose des autorisations par défaut du fichier POSIX de rwxr-xr-x. Sur une instance Filestore, ces autorisations signifient que seuls les utilisateurs racine des clients connectés disposent d'un accès en lecture/écriture au partage de fichiers. Par défaut, les autres utilisateurs ne disposent que d'un accès en lecture. 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 s'y exécutant. Après avoir installé le partage de fichiers, vous pouvez utiliser des commandes Linux standards telles que chmod et setfacl pour définir les autorisations de partage de fichiers et de fichiers (Installation de Python groupée).

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 l'élévation des privilèges. Si un partage de fichiers est installé sur plusieurs clients et qu'un utilisateur dispose de droits 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 pour lequel il dispose d'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 à l'aide des autorisations du propriétaire du fichier, qui est dans ce cas un utilisateur racine.

Rôles et autorisations IAM

Pour accorder l'accès aux opérations Filestore, vous devez attribuer des rôles IAM (gestion de l'authentification et des accès) aux utilisateurs.

Les autorisations IAM ne contrôlent que l'accès aux opérations Filestore, comme la création d'une instance Filestore. Pour contrôler l'accès aux opérations du partage de fichiers, telles que la lecture ou l'exécution, utilisez les autorisations de fichier POSIX.

Utiliser des rôles Filestore

Pour accorder des autorisations Filestore aux utilisateurs, utilisez les rôles "Éditeur Cloud Filestore" (roles/file.editor) et "Lecteur" Filestore (roles/file.viewer)". Pour ce faire, vous pouvez également utiliser des rôles de base, si vous préférez.

Utilisez le tableau suivant pour afficher les autorisations Filestore associées aux rôles Filestore.

Permission Action Éditeur Filestore Lecteur Filestore
file.locations.get Obtenir des informations sur un emplacement pris en charge par ce service.
file.locations.list Répertorier les informations concernant les emplacements pris en charge pour ce service.
file.instances.create Créer une instance Filestore
file.instances.update Mettez à jour une instance Filestore.
file.instances.delete Supprimez une instance Filestore.
file.instances.get Obtenez des détails sur une instance Filestore spécifique.
file.instances.list Répertoriez les instances Filestore dans le projet.
file.operations.get Obtenir l'état d'une opération sur une instance Filestore.
file.operations.list Répertoriez les opérations d'instance Filestore.
file.operations.cancel Annulez une opération d'instance Filestore.
file.operations.delete Supprimer une opération sur une instance Filestore.
file.backups.create Créer une sauvegarde Filestore.
file.backups.update Mettre à jour une sauvegarde Filestore.
file.backups.delete Supprimer une sauvegarde Filestore.
file.backups.get Obtenir des détails sur une sauvegarde Filestore spécifique.
file.backups.list Répertorier les sauvegardes Filestore dans le projet.
file.snapshots.create Créer un instantané Filestore
file.snapshots.update Mettre à jour un instantané Filestore
file.snapshots.delete Supprimer un instantané Filestore.
file.snapshots.get Obtenez des informations sur un instantané Filestore spécifique.
file.snapshots.list Répertoriez l'instantané Filestore dans le projet.

Utiliser des rôles de base

Les autorisations Filestore sont également associées aux rôles de base IAM de propriétaire, d'éditeur et de lecteur. Pour accorder des autorisations Filestore aux utilisateurs, vous pouvez utiliser ces rôles en plus des rôles Filestore.

Utilisez le tableau suivant pour voir les autorisations Filestore associées aux rôles de base.

Autorisation Action Propriétaire du projet Éditeur de projet Lecteur de projets
file.locations.get Obtenir des informations sur un emplacement pris en charge par ce service.
file.locations.list Répertorier les informations concernant les emplacements pris en charge pour ce service.
file.instances.create Créer une instance Filestore
file.instances.update Mettez à jour une instance Filestore.
file.instances.delete Supprimez une instance Filestore.
file.instances.get Obtenez des détails sur une instance Filestore spécifique.
file.instances.list Répertoriez les instances Filestore dans le projet.
file.operations.get Obtenir l'état d'une opération sur une instance Filestore.
file.operations.list Répertoriez les opérations d'instance Filestore.
file.operations.cancel Annulez une opération d'instance Filestore.
file.operations.delete Supprimer une opération sur une instance Filestore.
file.backups.create Créer une sauvegarde Filestore.
file.backups.update Mettre à jour une sauvegarde Filestore.
file.backups.delete Supprimer une sauvegarde Filestore.
file.backups.get Obtenir des détails sur une sauvegarde Filestore spécifique.
file.backups.list Répertorier les sauvegardes Filestore dans le projet.
file.snapshots.create Créer un instantané Filestore
file.snapshots.update Mettre à jour un instantané Filestore
file.snapshots.delete Supprimer un instantané Filestore.
file.snapshots.get Obtenez des informations sur un instantané Filestore spécifique.
file.snapshots.list Répertoriez l'instantané Filestore dans le projet.

Rôles personnalisés

Si les rôles IAM prédéfinis ne répondent pas à vos besoins, vous pouvez définir un rôle personnalisé avec les autorisations que vous spécifiez à l'aide des rôles personnalisés IAM. Lorsque vous créez des rôles personnalisés pour Filestore, veillez à inclure à la fois resourcemanager.projects.get et resourcemanager.projects.list pour que le rôle soit autorisé à interroger les ressources du projet.