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 Identity and Access Management (IAM) décrites ci-dessous.

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.
  • 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 pour cette instance dispose des autorisations Unix par défaut rwxr-xr-x, en notation octale 755. Ces autorisations signifient que sur une instance Filestore, seuls les utilisateurs racine sur les clients connectés ont un accès en lecture/écriture au partage de fichiers. Les autres utilisateurs ont uniquement un accès en lecture par défaut, mais 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 Filestore sur un client, vous pouvez utiliser les options de la commande mount et les paramètres du fichier /etc/fstab pour déterminer si le partage de fichiers installé est accessible en écriture et si des fichiers peuvent y être exécutés. Après avoir installé le partage de fichiers, vous pouvez utiliser les commandes Linux standards telles que chmod et setfacl pour définir les autorisations associées aux fichiers et au partage de fichiers.

Définir des autorisations cohérentes

Nous vous recommandons fortement de définir des autorisations cohérentes pour chaque utilisateur sur tous les clients qui se connectent à la même instance Filestore, en raison d'un problème qui se produit quand :

  • Un partage de fichiers est installé sur plusieurs clients.
  • Un utilisateur a la permission d'utilisateur racine sur un client mais pas sur les autres.

L'utilisateur peut importer un fichier avec le bit setuid défini à partir du client où il a un accès racine, ce qui lui permet ensuite d'exécuter le fichier en tant qu'utilisateur racine sur tout autre client où il dispose au moins d'une autorisation de lecture. En effet, le bit setuid permet à un utilisateur d'exécuter un fichier en utilisant les autorisations du propriétaire du fichier, en l'occurrence 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. L'accès aux opérations sur le partage de fichiers Filestore, comme la lecture ou l'exécution, est déterminé par des autorisations Linux.

Utiliser des rôles Filestore

Vous pouvez utiliser les rôles "Éditeur Filestore" (roles/file.editor) et "Lecteur Filestore" (roles/file.viewer) pour accorder des autorisations Filestore aux utilisateurs. 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.

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. Vous pouvez utiliser ces rôles en plus des rôles Filestore pour accorder des autorisations Filestore aux utilisateurs.

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.

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 des autorisations que vous spécifiez. Pour ce faire, utilisez les rôles personnalisés dans 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. Sinon, Google Cloud Console ne fonctionnera pas correctement pour Filestore.