Saltar al contenido

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

5 minutos de lectura
0

Quiero acceder a mi sistema de archivos de Amazon Elastic File System (Amazon EFS) en todas las cuentas de AWS para poder compartir archivos. Quiero utilizar la autorización de AWS Identity and Access Management (IAM) para los clientes de sistemas de archivos de red (NFS) y los puntos de acceso de Amazon EFS.

Solución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Conexión de VPC

Conecta las nubes virtuales privadas (VPC) de tu cliente NFS y tu sistema de archivos de EFS con una conexión de emparejamiento de VPC. O bien, utiliza una puerta de enlace de tránsito de Amazon Virtual Private Cloud (Amazon VPC). Esta conexión 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.

Concesión de permisos para acceder y montar el sistema de archivos de EFS entre cuentas

Para conceder permisos para acceder al sistema de archivos de EFS entre cuentas y montarlo, agrega la siguiente instrucción a tu política de IAM:

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

Nota: La instrucción de ejemplo anterior permite que el rol de IAM tenga acceso de montaje, escritura y raíz en el sistema de archivos de EFS. Si tu cliente NFS es una instancia de EC2, después adjunta el rol de IAM a la instancia.

O bien, utiliza la AWS CLI para asumir el rol de IAM.

Nota: La AWS CLI no puede resolver el DNS de un sistema de archivos de EFS presente en otra VPC. Como resultado, debes determinar la dirección IP de destino de montaje correcta para tu cliente. A continuación, configura el cliente. Para montar el sistema de archivos EFS, utiliza la dirección IP de destino de montaje que esté en la misma zona de disponibilidad que tu cliente NFS. Las asignaciones de nombres de zonas de disponibilidad pueden diferir de una cuenta a otra. Cuando montas un sistema de archivos de EFS en otra cuenta, el cliente NFS y el destino de montaje deben estar en el mismo ID de zona de disponibilidad.

Determinación de la zona de disponibilidad de la instancia

Sigue estos pasos:

  1. Abre la consola de Amazon EC2.
  2. Elige Instancias.
  3. Selecciona tu instancia y, a continuación, elige Redes.
  4. En Detalles de redes, puedes encontrar la zona de disponibilidad.

O bien, ejecuta el siguiente comando describe-availability-zones de la AWS CLI desde una entidad de IAM que tenga suficientes permisos de lectura para Amazon EC2:

aws ec2 describe-availability-zones --zone-name `curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone`

Resultado de ejemplo:

{
    "AvailabilityZones": [
        {
            "State": "available",
            "ZoneName": "us-east-2b",
            "Messages": [],
            "ZoneId": "use2-az2",
            "RegionName": "us-east-2"
        }
    ]
}

Determinación de la dirección IP de destino del montaje para la zona de disponibilidad local

Sigue estos pasos:

  1. Abre la consola de Amazon EFS.
  2. Elige Sistemas de archivos.
  3. Selecciona tu sistema de archivos.
  4. En Red, anota la dirección IP de tu zona de disponibilidad.

O bien, ejecuta el siguiente comando describe-mount-targets desde una entidad de IAM que tenga suficientes permisos de lectura para Amazon EC2:

aws efs describe-mount-targets --file-system-id fs-cee4feb7

Nota: Sustituye fs-cee4feb7 por el ID de tu sistema de archivos.

En el resultado del comando, anota la dirección IP que corresponde al destino de montaje en la zona de disponibilidad de la instancia. Resultado de ejemplo:

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

Montaje del sistema de archivos de EFS

Sigue estos pasos:

  1. Ejecuta el siguiente comando para agregar la entrada hosts al archivo /etc/hosts del cliente NFS:
    echo "10.0.2.153 fs-cee4feb7.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
    Nota: Sustituye 10.0.2.153 por tu dirección IP de destino de montaje, fs-cee4feb7 por el ID de tu sistema de archivos y us-east-2 por tu región de AWS.
  2. Usa el asistente de montaje para montar el sistema de archivos de EFS. De forma predeterminada, el asistente de montaje usa DNS para resolver la dirección IP de tu destino de montaje. Si montas desde otra cuenta o Amazon VPC, debes resolver manualmente la dirección IP de destino de montaje de Amazon EFS.

Si tienes problemas al montar el sistema de archivos, consulta Solución de problemas de montaje.

Información relacionada

Creación de políticas de sistemas de archivos

OFICIAL DE AWSActualizada hace 7 meses