Salta al contenuto

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

4 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. Desidero utilizzare l'autorizzazione AWS Identity and Access Management (AWS IAM) per i client Network File System (NFS) e i punti di accesso Amazon EFS.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Connetti i VPC

Connetti i cloud privati virtuali (VPC) del client NFS e del file system EFS con una connessione peering VPC. Oppure utilizza un gateway di transito Amazon Virtual Private Cloud (Amazon VPC). La connessione consente alle istanze 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 le autorizzazioni per accedere e montare il file system EFS per più account

Per concedere le autorizzazioni per accedere e montare il file system EFS per più account, aggiungi la seguente istruzione alla 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: l'esempio di istruzione precedente consente al ruolo IAM di avere un accesso mount, write e root al file system EFS. Se il client NFS è un'istanza EC2, collega il ruolo IAM all'istanza.

Oppure utilizza AWS CLI per assumere il ruolo IAM.

Nota: AWS CLI non è in grado di risolvere il DNS di un file system EFS che si trova in un altro VPC. Di conseguenza, devi determinare l'indirizzo IP della destinazione di montaggio corretto per il client. Dopodiché, configura 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à.

Determina la zona di disponibilità dell'istanza

Completa i seguenti passaggi:

  1. Apri la console Amazon EC2.
  2. Scegli Istanze.
  3. Seleziona l'istanza, quindi scegli Rete.
  4. In Dettagli di rete, cerca la zona di disponibilità.

In alternativa, esegui questo comando AWS CLI describe-availability-zones da un'entità IAM con 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`

Esempio di output:

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

Determina l'indirizzo IP della destinazione di montaggio per la zona di disponibilità locale

Completa i seguenti passaggi:

  1. Apri la console Amazon EFS.
  2. Scegli File System.
  3. Seleziona il file system.
  4. In Network (Rete), annota l'indirizzo IP della zona di disponibilità.

Oppure esegui questo comando describe-mount-targets da un'entità IAM con autorizzazioni di lettura sufficienti per Amazon EC2:

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

Nota: sostituisci fs-cee4feb7 on l'ID del tuo file system.

Nell'output del comando, prendi nota dell'indirizzo IP che corrisponde alla destinazione di montaggio nella zona di disponibilità dell'istanza. Esempio di output:

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

Monta il file system EFS

Completa i seguenti passaggi:

  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: sostituisci 10.0.2.153 con l'indirizzo IP della tua destinazione di montaggio, fs-cee4feb7 con l'ID del tuo file system e us-east-2 con la tua regione AWS.
  2. Installa il file system EFS utilizzando l'helper di montaggio. 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 VPC, devi risolvere manualmente l'indirizzo IP della destinazione di montaggio di Amazon EFS.

Se riscontri problemi durante il montaggio del file system, consulta Risoluzione dei problemi con il montaggio.

Informazioni correlate

Creazione di politiche del file system

AWS UFFICIALEAggiornata 4 mesi fa