En utilisant AWS re:Post, vous acceptez les AWS re:Post Conditions d’utilisation

Comment utiliser les politiques système pour contrôler l’accès à mon système de fichiers EFS ?

Lecture de 5 minute(s)
0

Je souhaite accéder à mon système de fichiers Amazon Elastic File System (Amazon EFS) via des comptes AWS afin de pouvoir partager des fichiers. Je souhaite utiliser l’autorisation AWS Identity and Access Management (IAM) pour les clients NFS (Network File System) et les points d’accès EFS.

Brève description

Pour accéder à votre système de fichiers Amazon EFS, utilisez l’autorisation IAM pour les clients et points d’accès NFS. Pour monter le système de fichiers EFS, utilisez l’assistant de montage Amazon EFS. Par défaut, l’assistant de montage utilise le DNS pour résoudre l’adresse IP de votre cible de montage. Si vous effectuez le montage depuis un autre compte ou Amazon Virtual Private Cloud (Amazon VPC), vous devez résoudre manuellement l’adresse IP cible du montage Amazon EFS.

Prérequis :

  • Connectez les VPC de votre client NFS et de votre système de fichiers EFS à l’aide d’une connexion d’appairage de VPC ou d’une passerelle de transit VPC. Cette connexion permet aux instances Amazon Elastic Compute Cloud (Amazon EC2) provenant de comptes identiques ou différents d’accéder aux systèmes de fichiers EFS d’un VPC différent.
  • Donnez à votre console de rôle IAM un accès en lecture ou en lecture aux ressources client Amazon EFS et NFS.
  • Installez le client Amazon EFS et le package botocore dans le client NFS.
    Remarque : dans un scénario multicompte, vous ne pouvez pas exécuter la commande NFS habituelle. Le package botocore et le client Amazon EFS sont donc requis.

Résolution

Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre les erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.

Accorder des autorisations pour accéder au système de fichiers EFS multicompte et le monter

Pour accorder des autorisations d’accès et de montage au système de fichiers EFS intercomptes, ajoutez une instruction à votre politique IAM ou utilisez l’AWS CLI pour assumer le rôle.

Ajouter une déclaration de politique

Ajoutez la déclaration de politique suivante dans la stratégie IAM :

{            "Sid": "EfsPermissions",
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientMount",
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientRootAccess"
            ],
            "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id"
        }

Remarque : l’exemple d’instruction précédent permet au rôle IAM de disposer d’un accès de montage, d’écriture et d’accès root sur le système de fichiers EFS. Si votre client NFS est une instance EC2, attachez le rôle IAM à l’instance.

Utiliser l’interface de liogne de commande AWS

Pour utiliser l’interface de ligne de commande AWS pour assumer le rôle, consultez Comment assumer un rôle IAM à l’aide de l’interface de ligne de commande AWS ?

Étant donné que linterface de ligne de commande AWS ne peut pas résoudre le DNS d’un système de fichiers EFS qui se trouve dans un autre VPC, vous devez déterminer la bonne adresse IP cible de montage pour votre client. Configurez ensuite le client. Pour monter le système de fichiers EFS, utilisez l’adresse IP cible de montage qui se trouve dans la même zone de disponibilité que votre client NFS. Les mappages de noms de zones de disponibilité peuvent différer d’un compte à l’autre. Lorsque vous montez un système de fichiers EFS sur un autre compte, le client NFS et la cible de montage doivent se trouver dans la même zone de disponibilité.

Déterminez la zone de disponibilité de votre instance EC2

Pour déterminer la zone de disponibilité de votre instance EC2, utilisez la console Amazon EC2 ou l’interface de ligne de commande AWS.

Utiliser la console Amazon EC2

Procédez comme suit :

  1. Ouvrez la console Amazon EC2.
  2. Choisissez Instances.
  3. Choisissez EC2-Instance-ID, puis choisissez Networking.
  4. Sous Détails du réseau, recherchez la zone de disponibilité.

Utiliser l’interface de liogne de commande AWS

Exécutez la commande describe-availability-zones depuis l’entité IAM qui dispose d’autorisations de lecture suffisantes pour Amazon EC2 :

$ aws ec2 describe-availability-zones --zone-name `curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone`{
    "AvailabilityZones": [
        {
            "State": "available",
            "ZoneName": "us-east-2b",
            "Messages": [],
            "ZoneId": "use2-az2",
            "RegionName": "us-east-2"
        }
    ]
}

Déterminez l’adresse IP cible de montage pour la zone de disponibilité locale

Pour déterminer l’adresse IP cible de montage pour la zone de disponibilité locale, utilisez la console Amazon EFS ou l’interface de ligne de commande AWS.

Utiliser la console Amazon EFS

Procédez comme suit :

  1. Ouvrez la console Amazon EFS.
  2. choisissez Systèmes de fichiers.
  3. Choisissez EFS-File-System-ID.
  4. Sous Réseau, notez l’adresse IP de votre zone de disponibilité.

Utiliser l’interface de liogne de commande AWS

Procédez comme suit :

  1. Exécutez la commande describe-mount-targets depuis l’entité IAM qui dispose d’autorisations de lecture suffisantes pour Amazon EC2 :

    $ aws efs describe-mount-targets --file-system-id fs-cee4feb7{
        "MountTargets": [
            {
                "MountTargetId": "fsmt-a9c3a1d0",
                "AvailabilityZoneId": "use2-az2",
                "NetworkInterfaceId": "eni-048c09a306023eeec",
                "AvailabilityZoneName": "us-east-2b",
                "FileSystemId": "fs-cee4feb7",
                "LifeCycleState": "available",
                "SubnetId": "subnet-06eb0da37ee82a64f",
                "OwnerId": "958322738406",
                "IpAddress": "10.0.2.153"
            },
    ...
            {
                "MountTargetId": "fsmt-b7c3a1ce",
                "AvailabilityZoneId": "use2-az3",
                "NetworkInterfaceId": "eni-0edb579d21ed39261",
                "AvailabilityZoneName": "us-east-2c",
                "FileSystemId": "fs-cee4feb7",
                "LifeCycleState": "available",
                "SubnetId": "subnet-0ee85556822c441af",
                "OwnerId": "958322738406",
                "IpAddress": "10.0.3.107"
            }
        ]
    }
  2. À partir de la sortie précédente, notez l’adresse IP qui correspond à la cible de montage dans la zone de disponibilité de l’instance.

Ajoutez l’entrée hôtes au fichier /etc/hosts et montez le système de fichiers EFS

Procédez comme suit :

  1. Exécutez la commande suivante pour ajouter l’entrée hôtes au fichier /etc/hosts du client NFS :
    $ echo "10.0.2.153 fs-cee4feb7.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
    Remarque : dans la commande précédente, le format du nom DNS est Mount-Target-IP-Address File-System-ID.efs.region.amazonaws.com. Remplacez l’adresse IP d’exemple par l’adresse IP de la cible de montage.
  2. Utilisez l’assistant de montage pour monter le système de fichiers EFS.

Si vous rencontrez des problèmes lors du montage du système de fichiers, consultez Résolution des problèmes de montage.

Informations connexes

Création de politiques de système de fichiers

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 6 mois