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 in modo da poter condividere i file. Come posso farlo utilizzando l'autorizzazione AWS Identity e Access Management (IAM) per client NFS e punti di accesso EFS?

Breve descrizione

Puoi montare il tuo file system Amazon EFS utilizzando l'autorizzazione IAM per client e punti di accesso NFS con l'assistente di montaggio di Amazon EFS. Per impostazione predefinita, il mount helper utilizza il DNS per risolvere l'indirizzo IP del target del mount. Quindi, se esegui il montaggio da un altro account o Amazon Virtual Private Cloud (Amazon VPC), devi risolvere manualmente l'IP di destinazione di montaggio di Amazon EFS.

Prerequisiti

  1. I cloud privati virtuali del client NFS e del file system EFS sono connessi tramite una connessione peering o un gateway di transito VPC. Ciò 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 cloud privato virtuale diverso.
  2. Il tuo ruolo IAM (ruolo di istanza o qualsiasi altro ruolo) prevede l'accesso in console o in lettura sia alle risorse client Amazon EFS sia NFS.
  3. Il client Amazon EFS e il pacchetto botocore sono installati nel client NFS.

Risoluzione

Nota: Se ricevi errori durante l'esecuzione dei comandi AWS Command Line Interface (AWS CLI), assicurati di utilizzare la versione più recente dell'interfaccia a riga di comando di AWS.

In quest’esempio, il file system EFS è presente nell'account A e il client NFS è presente nell'account B.    

  1. Per accedere e montare il file system EFS tra account, aggiungi una dichiarazione in una policy IAM simile a questa:
{
            "Sid": "EfsPermissions",
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientMount",
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientRootAccess"
            ],
            "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id"
        }

Questa dichiarazione consente al ruolo IAM di avere accesso di mount, write e root sul file system EFS. Se il tuo client NFS è un'istanza EC2, associa il ruolo IAM all'istanza.

  1. In alternativa, puoi assumere il ruolo utilizzando l'interfaccia a riga di comando di AWS. Tieni presente che l'interfaccia a riga di comando di AWS non è in grado di risolvere il DNS di un file system EFS presente in un altro VPC. Quindi, per prima cosa determina l'IP di destinazione di montaggio giusto per il tuo client. Successivamente, configura il client per montare il file system EFS utilizzando quell'IP.

Per garantire un'elevata disponibilità, utilizza sempre l'indirizzo IP di destinazione di montaggio nella stessa zona di disponibilità (AZ) del client NFS. Le mappature dei nomi AZ potrebbero differire tra gli account. Poiché stai montando un file system EFS in un altro account, il client NFS e la destinazione di montaggio devono trovarsi nello stesso ID AZ.

Per determinare l'AZ della tua istanza EC2, chiama l'API DescribeAvailabilityZone utilizzando uno dei seguenti metodi:

  • Accedi alla console Amazon EC2, e scegli Istanze. Scegli EC2-Instance-ID, quindi scegli Networking. In Dettagli di rete, puoi trovare la zona di disponibilità.

-oppure-

  • Esegui un comando simile a questo dall'entità IAM che dispone di autorizzazioni di lettura sufficienti per Amazon EC2 e ottieni un risultato simile:
$ 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"
        }
    ]
}
  1. Per determinare l'IP di destinazione di montaggio per l'AZ locale, tutte le API DescribeMountTargets utilizzando uno dei seguenti metodi:
  • Accedi alla console Amazon EFS e scegli File Systems. Scegli EFS-File-System-ID, quindi in Rete, annota l'indirizzo IP della tua zona di disponibilità.

-oppure-

  • Esegui un comando simile a questo dall'entità IAM che dispone di autorizzazioni di lettura sufficienti per Amazon EC2 e ottieni un risultato simile:
$ 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"
        }
    ]
}
  1. Dall'output ottenuto, annota l'indirizzo IP che corrisponde al target di montaggio nell'AZ dell'istanza EC2.

5.    Usa l'indirizzo IP che hai ottenuto e aggiungi la voce hosts nel file /etc/hosts nel client NFS. Il formato del nome DNS è mount-target-IP-Address file-system-ID.efs.region.amazonaws.com.

Guarda questo comando di esempio:

$ echo "10.0.2.153 fs-cee4feb7.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
  1. Installa il file system EFS utilizzando il mount helper.

Nota: In uno scenario con più account, non è possibile utilizzare il normale comando NFS, quindi sono necessari botocore e il client Amazon EFS.

Dopo aver seguito questi passaggi, è possibile installare il file system EFS e iniziare a utilizzarlo. In caso di errori, consulta la guida alla risoluzione dei problemi.


Informazioni correlate

Creazione di politiche del file system

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa