¿Cómo puedo usar las políticas del sistema para controlar el acceso a mi sistema de archivos de EFS?

5 minutos de lectura
0

Quiero acceder a mi sistema de archivos de Amazon Elastic File System (Amazon EFS) en todas las cuentas para poder compartir archivos. ¿Cómo puedo hacerlo mediante la autorización de AWS Identity and Access Management (IAM) para los clientes de NFS y los puntos de acceso de EFS?

Descripción breve

Puede montar su sistema de archivos de Amazon EFS mediante la autorización de IAM para clientes y puntos de acceso NFS con el asistente de montaje de Amazon EFS. De forma predeterminada, el asistente de montaje usa DNS para resolver la dirección IP de su objetivo de montaje. Por lo tanto, si monta desde otra cuenta o desde Amazon Virtual Private Cloud (Amazon VPC), tiene que resolver manualmente la IP de destino del montaje de Amazon EFS.

Requisitos previos

  1. Las VPC de su cliente NFS y su sistema de archivos de EFS se conectan mediante una conexión de emparejamiento de VPC o una puerta de enlace de tránsito de VPC. Esto permite que las instancias de Amazon Elastic Compute Cloud (Amazon EC2) de la misma cuenta o de cuentas diferentes accedan a los sistemas de archivos de EFS en una VPC diferente.
  2. Su rol de IAM (rol de instancia o cualquier otro) tiene acceso de consola o lectura a los recursos de Amazon EFS y cliente NFS.
  3. El cliente de Amazon EFS y el paquete botocore están instalados en el cliente NFS.

Resolución

Nota: Si recibe errores al ejecutar los comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de la AWS CLI.

En este ejemplo, el sistema de archivos de EFS está presente en la cuenta A y el cliente NFS, en la cuenta B.    

1.    Para acceder al sistema de archivos de EFS de varias cuentas y montarlo, añada una declaración de política en una política de IAM similar a esta:

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

Esta sentencia permite que el rol de IAM tenga acceso de montaje, escritura y raíz en el sistema de archivos de EFS. Si su cliente NFS es una instancia de EC2, adjunte el rol de IAM a la instancia.

2.    O bien, puede asumir el rol mediante la AWS CLI. Tenga en cuenta que la AWS CLI no puede resolver el DNS de un sistema de archivos de EFS presente en otra VPC. Por lo tanto, primero determine la IP de destino de montaje correcta para su cliente. A continuación, configure el cliente para montar el sistema de archivos de EFS con esa IP.

Para garantizar la alta disponibilidad, utilice siempre la dirección IP de destino del montaje en la misma zona de disponibilidad (AZ) que su cliente NFS. Las asignaciones de nombre de la AZ pueden diferir de una cuenta a otra. Como está montando un sistema de archivos de EFS en otra cuenta, el cliente NFS y el destino de montaje deben estar en el mismo ID de AZ.

Para determinar la AZ de su instancia de EC2, llame a la API DescribeAvailabilityZone mediante uno de estos métodos:

  • Inicie sesión en la consola de Amazon EC2 y seleccione Instancias. Elija EC2-Instance-ID y, a continuación, Redes. En Detalles de redes, puede encontrar la zona de disponibilidad.

-o-

  • Ejecute un comando similar a este desde la entidad de IAM que tenga suficientes permisos de lectura para Amazon EC2 y obtenga una salida similar:
$ 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"
        }
    ]
}

3.    Para determinar la IP de destino de montaje de la AZ local, utilice la API DescribeMountTargets mediante uno de estos métodos:

  • Inicie sesión en la consola de Amazon EFS y seleccione Sistemas de archivos. Elija EFS-File-System-ID y, a continuación, en Redes, anote la dirección IP de su zona de disponibilidad.

-o-

  • Ejecute un comando similar a este desde la entidad de IAM que tenga suficientes permisos de lectura para Amazon EC2 y obtenga una salida similar:
$ 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"
        }
    ]
}

4.    En la salida que obtenga, anote la dirección IP que corresponde al destino de montaje en la AZ de la instancia de EC2.

5.    Utilice la dirección IP que ha obtenido y añada la entrada de hosts en el archivo /etc/hosts del cliente NFS. El formato de nombre del DNS es mount-target-IP-Address file-system-ID.efs.region.amazonaws.com.

Vea este comando de ejemplo:

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

6.    Monte el sistema de archivos de EFS con el asistente de montaje.

Nota: En un escenario con varias cuentas, no puede utilizar el comando NFS habitual, por lo que es necesario utilizar botocore y el cliente Amazon EFS.

Tras seguir estos pasos, podrá montar el sistema de archivos de EFS y empezar a usarlo. Si encuentra algún error, consulte la guía de solución de problemas.


Información relacionada

Creación de políticas de sistemas de archivos

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año