¿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 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 EFS.

Descripción corta

Para acceder al sistema de archivos Amazon EFS, utilice la autorización de IAM para los clientes y puntos de acceso de NFS. Para montar el sistema de archivos EFS, utilice 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. Si monta desde otra cuenta o Amazon Virtual Private Cloud (Amazon VPC), debe resolver manualmente la dirección IP de destino de montaje de Amazon EFS.

Requisitos previos:

  • Conecte las VPC de su cliente NFS y su sistema de archivos de EFS mediante una conexión de emparejamiento de VPC o una puerta de enlace de tránsito de 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.
  • Otorgue a su IAM acceso de lectura o consola de roles en los recursos de clientes de Amazon EFS y NFS.
  • Instale el cliente de Amazon EFS y el paquete botocore en el cliente NFS.
    Nota: En un escenario multicuenta, no puede ejecutar el comando NFS habitual, por lo que se requieren el paquete botocore y el cliente Amazon EFS.

Resolución

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

Otorgue permisos para acceder y montar el sistema de archivos EFS multicuenta

Para conceder permisos para acceder al sistema de archivos EFS multicuenta y montarlo, añada una declaración a su política de IAM o utilice la CLI de AWS para asumir la función.

Agregar una declaración de política

Agregue la siguiente declaración de política en la 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 sentencia 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 su cliente NFS es una instancia de EC2, después adjunte el rol de IAM a la instancia.

Uso de la AWS CLI

Para usar la CLI de AWS para asumir la función, consulte ¿Cómo puedo asumir un rol de IAM mediante la AWS CLI?

Como la CLI de AWS no puede resolver el DNS de un sistema de archivos EFS que se encuentra en otra VPC, debe determinar la dirección IP de destino de montaje correcta para su cliente. A continuación, configure el cliente. Para montar el sistema de archivos EFS, utilice la dirección IP de destino de montaje que esté en la misma zona de disponibilidad que su cliente NFS. Las asignaciones de nombres de zonas de disponibilidad pueden diferir de una cuenta a otra. Cuando monta 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.

Determine la zona de disponibilidad de su instancia EC2

Para determinar la zona de disponibilidad de su instancia EC2, utilice la consola Amazon EC2 o la CLI de AWS.

Utilización de la consola de Amazon EC2

Siga estos pasos:

  1. Abra la consola de Amazon EC2.
  2. Elija Instancias.
  3. Elija EC2-Instance-ID y, a continuación, Redes.
  4. En Detalles de redes, puede encontrar la zona de disponibilidad.

Uso de la AWS CLI

Ejecute el comando describe-availability-zones desde la entidad de IAM que tiene 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`{
    "AvailabilityZones": [
        {
            "State": "available",
            "ZoneName": "us-east-2b",
            "Messages": [],
            "ZoneId": "use2-az2",
            "RegionName": "us-east-2"
        }
    ]
}

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

Para determinar la dirección IP de destino del montaje para la zona de disponibilidad local, utilice la consola Amazon EFS o la CLI de AWS.

Uso de la consola de Amazon EFS

Siga estos pasos:

  1. Abra la consola de Amazon EFS.
  2. elija Sistemas de archivos.
  3. Elija EFS-File-System-ID.
  4. En Red, anote la dirección IP de su zona de disponibilidad.

Uso de la AWS CLI

Siga estos pasos:

  1. Ejecute el comando describe-mount-targets desde la entidad de IAM que tiene suficientes permisos de lectura para 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. En el resultado anterior, anote la dirección IP que corresponde al destino de montaje en la zona de disponibilidad de la instancia.

Agregar la entrada hosts al archivo /etc/hosts y monte el sistema de archivos EFS

Siga estos pasos:

  1. Ejecute 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: En el comando anterior, el formato del nombre DNS es mount-target-IP-Address file-system-ID.efs.region.amazonaws.com. Sustituir la dirección IP del ejemplo por la dirección IP del destino del montaje.
  2. Use el asistente de montaje para montar el sistema de archivos de EFS.

Si tiene problemas al montar el sistema de archivos, consulte Troubleshooting mount issues.

Información relacionada

Creación de políticas de sistemas de archivos

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 7 meses