Come posso utilizzare le politiche di sistema per controllare l'accesso al mio file system EFS?

5 minuti di lettura
0

Desidero accedere al mio file system Amazon Elastic File System (Amazon EFS) su più account AWS in modo da poter condividere i file. Voglio usare l'autorizzazione AWS Identity e Access Management (IAM) per client Network File System (NFS) e punti di accesso EFS.

Descrizione breve

Per accedere al tuo file system Amazon EFS, utilizza l'autorizzazione IAM per client e punti di accesso NFS. Per montare il file system EFS, usa l'helper di montaggio Amazon EFS. Per impostazione predefinita, l'helper di montaggio utilizza il DNS per risolvere l'indirizzo IP della destinazione di montaggio. Se esegui il montaggio da un altro account o Amazon Virtual Private Cloud (Amazon VPC), devi risolvere manualmente l'indirizzo IP di destinazione per il montaggio di Amazon EFS.

Prerequisiti:

  • Connetti i VPC del client NFS e del file system EFS tramite una connessione peering VPC o un gateway di transito VPC. La connessione consente alle istanze di Amazon Elastic Compute Cloud (Amazon EC2), provenienti dallo stesso account o da account diversi, di accedere ai file system EFS in un VPC diverso.
  • Concedi l'accesso alla tua console di ruolo IAM o l'accesso in lettura alle risorse client Amazon EFS e NFS.
  • Installa il client Amazon EFS e il pacchetto botocore nel client NFS.
    Nota: in uno scenario con più account, non è possibile eseguire il normale comando NFS, quindi sono necessari il pacchetto botocore e il client Amazon EFS.

Risoluzione

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Concedere le autorizzazioni per accedere e montare il file system EFS per più account

Per concedere le autorizzazioni finalizzate ad accedere e montare il file system EFS tra più account, aggiungi una dichiarazione alla tua policy IAM o utilizza AWS CLI per assumere il ruolo.

Aggiungere una dichiarazione alla policy

Aggiungi la seguente dichiarazione alla policy nella policy 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 dichiarazione di esempio precedente consente al ruolo IAM di avere accesso a montaggio, scrittura e root sul file system EFS. Se il client NFS è un'istanza EC2, associa il ruolo IAM all'istanza.

Usare AWS CLI

Per utilizzare AWS CLI in modo da assumere il ruolo, consulta Come posso assumere un ruolo IAM utilizzando AWS CLI?

Poiché AWS CLI non è in grado di risolvere il DNS di un file system EFS che si trova in un altro VPC, è necessario determinare l'indirizzo IP di destinazione per il montaggio corretto del client. Quindi, è possibile configurare il client. Per montare il file system EFS, utilizza l'indirizzo IP di destinazione del montaggio che si trova nella stessa zona di disponibilità del client NFS. Le mappature dei nomi delle zone di disponibilità potrebbero differire a seconda degli account. Quando monti un file system EFS in un altro account, il client NFS e la destinazione di montaggio devono trovarsi nella stessa zona di disponibilità.

Determinare la zona di disponibilità dell'istanza EC2

Per determinare la zona di disponibilità dell'istanza EC2, utilizza la console Amazon EC2 o AWS CLI.

Usare la console Amazon EC2

Completa i passaggi seguenti:

  1. Apri la console Amazon EC2.
  2. Scegli Istanze.
  3. Scegli EC2-Instance-ID, quindi Reti.
  4. In Dettagli di rete, cerca la zona di disponibilità.

Usare AWS CLI

Esegui il comando describe-availability-zones dall'entità IAM che dispone di autorizzazioni di lettura sufficienti per 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"
        }
    ]
}

Determinare l'indirizzo IP di destinazione del montaggio per la zona di disponibilità locale

Per determinare l'indirizzo IP di destinazione del montaggio per la zona di disponibilità locale, utilizza la console Amazon EFS o AWS CLI.

Apri la console Amazon EFS

Completa i passaggi seguenti:

  1. Apri la console Amazon EFS.
  2. Scegli File System.
  3. Scegli EFS-File-System-ID.
  4. In Rete, annota l'indirizzo IP della tua zona di disponibilità.

Usare AWS CLI

Completa i passaggi seguenti:

  1. Esegui il comando describe-mount-targets dall'entità IAM che dispone di autorizzazioni di lettura sufficienti per 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. Dall'output precedente, annota l'indirizzo IP che corrisponde alla destinazione di montaggio nella zona di disponibilità dell'istanza.

Aggiungere la voce hosts al file /etc/hosts e montare il file system EFS

Completa i passaggi seguenti:

  1. Esegui il comando seguente per aggiungere la voce hosts al file /etc/hosts nel client NFS:
    $ echo "10.0.2.153 fs-cee4feb7.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
    Nota: nel comando precedente, il formato del nome DNS è mount-target-IP-Address file-system-ID.efs.region.amazonaws.com. Sostituisci l'indirizzo IP di esempio con l'indirizzo IP della destinazione di montaggio.
  2. Installa il file system EFS utilizzando l'helper di montaggio.

Se riscontri problemi durante il montaggio del file system, consulta Troubleshooting mount issues.

Informazioni correlate

Creazione di politiche del file system

AWS UFFICIALE
AWS UFFICIALEAggiornata 7 mesi fa