Comment accéder à mon système de fichiers EFS depuis plusieurs comptes à l'aide d'une autorisation IAM et de points d'accès EFS ?

Date de la dernière mise à jour : 12/02/2020

Comment accéder à mon système de fichiers Amazon Elastic File System (Amazon EFS) depuis plusieurs comptes afin de partager des fichiers ? Comment procéder en utilisant une autorisation AWS Identity and Access Management (IAM) pour les clients NFS et des points d'accès EFS ?

Brève description

Vous pouvez monter votre système de fichiers Amazon EFS en utilisant une autorisation IAM pour les clients NFS et des points d'accès EFS avec l'assistant de montage Amazon EFS. Par défaut, l'assistant de montage utilise DNS pour résoudre l'adresse IP de votre cible de montage. Par conséquent, si vous montez à partir d'un autre compte ou VPC, vous devez résoudre l'adresse IP de la cible de montage EFS manuellement.

Conditions préalables

L'Amazon Virtual Private Cloud (Amazon VPC) de votre client NFS et le VPC de votre système de fichiers Amazon EFS doivent être connectés à l'aide d'une connexion d'appairage de VPC ou d'une passerelle de transit VPC. L'utilisation d'une connexion d'appairage de VPC ou d'une passerelle de transit pour connecter des VPC permet aux instances Amazon Elastic Compute Cloud (Amazon EC2) d'un même compte ou de comptes différents d'accéder aux systèmes de fichiers Amazon EFS dans un VPC différent.

Solution

Déterminez l'adresse IP de la cible de montage appropriée à utiliser pour votre client, puis configurez le client pour monter le système de fichiers Amazon EFS à l'aide de cette adresse IP.

1.    Déterminez l'adresse IP de la cible de montage EFS.

Pour garantir une haute disponibilité, il est recommandé de toujours utiliser l'adresse IP de la cible de montage dans la même zone de disponibilité que votre client NFS. Les mappages de noms de zone de disponibilité peuvent varier d'un compte à l'autre. Si vous montez un système de fichiers Amazon EFS dans un autre compte, assurez-vous que le client NFS et la cible de montage se trouvent dans le même ID de zone de disponibilité (AZ ID) en appelant DescribeAvailabilityZones et DescribeMountTargets. Si vous êtes dans le même compte, appelez ces deux éléments à partir d'un rôle IAM avec la stratégie gérée AmazonElasticFileSystemReadOnlyAccess attachée. Si vous êtes dans un autre compte, utilisez la stratégie de ressources IAM du système de fichiers pour accorder l'autorisation DescribeMountTargets au rôle entre comptes à l'aide de l'ARN principal.

Appelez DescribeAvailabilityZones à l'aide du nom de zone de disponibilité de l'instance locale pour déterminer l'ID de zone de disponibilité.

[ec2-user@ip-172-30-2-10 ~]$ 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"
        }
    ]
}

Dans l'exemple précédent, l'instance est dans l' AZ ID use2-az2.

Appelez DescribeMountTargets sur votre système de fichiers pour déterminer l'IP de la cible de montage pour l'ID de zone de disponibilité local.

$ 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"
        }
    ]
}

Dans l'exemple de sortie précédent, l'ID de zone de disponibilité use2-as2 possède une cible de montage avec l'IP suivant : 10.0.2 153.

2.    Ajoutez une entrée d'hôte pour l'adresse IP de la cible de montage.

Ajoutez une ligne au fichier /etc/hosts du client au format mount-target-IP-Address file-system-ID.efs.region.amazonaws.com.

echo "10.0.2.153 fs-cee4feb7.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts

3.    Montez votre système de fichiers.

Utilisez l'assistant de montage pour monter votre système de fichiers. Tout d'abord, assurez-vous que l'assistant de montage est installé, puis créez un répertoire pour le montage et procédez au montage. L'exemple ci-dessous montre comment installer l'assistant de montage sur un hôte exécutant Amazon Linux, créer un répertoire, puis effectuer le montage à l'aide des informations d'identification IAM.

sudo yum install -y amazon-efs-utils
sudo mkdir /efs/
sudo mount -t efs -o tls,iam fs-cee4feb7 /efs/

L'exemple suivant montre comment monter le système de fichiers à l'aide d'un point d'accès.

sudo yum install -y amazon-efs-utils
sudo mkdir /efs/
sudo mount -t efs -o tls,iam,accesspoint=fsap-0b370416e358edbfd fs-cee4feb7 /efs/

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?