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. Selon la norme RFC 1918, les adresses IP internes sont celles des plages 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16.
  • 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 Filestore Editor et Filestore Viewer pour accorder des autorisations Filestore aux utilisateurs. Pour ce faire, vous pouvez également utiliser des rôles primitifs, si vous préférez.

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

Permission Action Rôle Filestore Editor Rôle Filestore Viewer
file.locations.get Obtenir des informations sur un emplacement spécifique 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.

Utiliser des rôles primitifs

Les autorisations Filestore sont également associées aux rôles primitifs de propriétaire, d'éditeur et de lecteur IAM. 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 primitifs.

Permission Action Rôle propriétaire du projet Rôle éditeur de projet Rôle lecteur de projet
file.locations.get Obtenir des informations sur un emplacement spécifique 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.

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.