Cette page explique comment contrôler l'accès aux instances Filestore.
Avec le protocole NFSv4.1, vous pouvez utiliser Kerberos pour sécuriser l'accès aux instances Filestore. Pour plus plus d'informations, consultez la section À propos des protocoles compatibles.
Vous pouvez également utiliser les options Linux pour contrôler l'accès NFS et Identity and Access Management (IAM) pour contrôler l'accès à l'instance telles que la création, la modification, l'affichage et la suppression d'instances. La guide suivant, qui vous guidera à travers chacune de ces tâches.
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. Toutes les adresses IP internes peuvent être comprises dans la plage des plages de sous-réseaux. Toutefois, si vous ont des clients non-RFC 1918 de sous-réseaux, vous devez leur accorder explicitement l'accès Instance Filestore avec 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 une liste de clients accessible uniquement à l'adresse IP de l'instance, à l'aide des mêmes paramètres que ceux indiqués dans la section précédente. Le partage est accessible uniquement aux sondes hébergées sur l'instance ou provenant de celle-ci, et est inaccessible en dehors de l'instance. L'instance exporte le partage, que le contrôle des accès basé sur les adresses IP soit appliqué ou non. 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
Les instances zonales, régionales et d'entreprise sont désormais compatibles avec les autorisations qui se chevauchent.
Si deux règles de contrôle des accès distinctes sont définies pour des sous-réseaux d'adresses IP qui se chevauchent, la règle définie pour le sous-réseau le plus petit est prioritaire.
Par exemple, si un fichier de configuration JSON contient une règle accordant un accès en lecture et en écriture au sous-réseau d'adresses IPv4 10.0.0.0/24
et qu'une règle distincte accorde un accès en lecture seule au sous-réseau d'adresses IPv4 10.0.0.0/28
, Filestore reconnaît et applique d'abord la règle pour le sous-réseau plus petit. L'autre règle est ensuite appliquée aux parties restantes du sous-réseau d'adresses IP défini. Dans cet exemple, un client utilisant l'adresse IPv4 10.0.0.20
se voit accorder des autorisations de lecture et d'écriture, tandis qu'un client utilisant 10.0.0.12
se voit accorder des autorisations 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 acceptées pour les instances SSD de base ou HDD de base.
Étape suivante
- Configurez le contrôle des accès basé sur l'adresse IP ou consultez un exemple.
- Créer des instances
- Modifiez les instances.
- Résoudre les problèmes de mise en réseau ou de connexion courants avec Filestore