Wie kann ich Systemrichtlinien verwenden, um den Zugriff auf mein EFS-Dateisystem zu kontrollieren?
Ich möchte AWS-kontenübergreifend auf mein Amazon Elastic File System (Amazon EFS)-Dateisystem zugreifen, damit ich Dateien teilen kann. Ich möchte die AWS Identity and Access Management (IAM) -Autorisierung für Network File System (NFS) -Clients und EFS-Zugangspunkte verwenden.
Kurzbeschreibung
Um auf Ihr Amazon EFS-Dateisystem zuzugreifen, verwenden Sie die IAM-Autorisierung für NFS-Clients und Zugangspunkte. Verwenden Sie den Amazon EFS-Mount-Helper, um das EFS-Dateisystem zu mounten. Standardmäßig verwendet der Mount-Helper DNS, um die IP-Adresse Ihres Mount-Ziels aufzulösen. Wenn Sie das Mounten also von einem anderen Konto oder von der Amazon Virtual Private Cloud (Amazon VPC) aus durchführen, müssen Sie die Amazon EFS-Mount-Ziel-IP-Adresse manuell auflösen.
Voraussetzungen:
- Die VPCs Ihres NFS-Clients und Ihres EFS-Dateisystems sind entweder über eine VPC-Peering-Verbindung oder ein VP-Transit-Gateway verbunden. Dadurch können Amazon Elastic Compute Cloud (Amazon EC2)-Instances von denselben oder verschiedenen Konten aus auf EFS-Dateisysteme in einer anderen VPC zugreifen.
- Gewähren Sie Ihrer IAM-Rolle Konsolen- oder Lesezugriff sowohl auf die Amazon EFS- als auch auf die NFS-Client-Ressourcen.
- Der Amazon EFS-Client und das botocore-Paket sind im NFS-Client installiert.
Anmerkung: In einem kontoübergreifenden Szenario können Sie den üblichen NFS-Befehl nicht ausführen. Daher sind das Botocore-Paket und der Amazon EFS-Client erforderlich.
Lösung
**Anmerkung:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Erteilen Sie Zugriffs- und Mountberechtigungen für das EFS-Dateisystem
Um Zugriffs- und Mountberechtigungen für das kontoübergreifende EFS-Dateisystem zu gewähren, fügen Sie entweder Ihrer IAM-Richtlinie eine Erklärung hinzu oder verwenden Sie das AWS CLI, um die Rolle zu übernehmen.
Eine Richtlinienerklärung hinzufügen
Fügen Sie der IAM-Richtlinie die folgende Richtlinienerklärung hinzu:
{ "Sid": "EfsPermissions", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite", "elasticfilesystem:ClientRootAccess" ], "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id" }
Anmerkung: Die obige Beispielerklärung gewährt der IAM-Rolle Mount-, Schreib- und Root-Zugriff auf das EFS-Dateisystem. Wenn Ihr NFS-Client eine EC2-Instance ist, fügen Sie der Instance die IAM-Rolle zu.
Verwenden des AWS CLI
Informationen zur Verwendung des AWS CLI zur Übernahme der Rolle finden Sie unter Wie übernehme ich eine IAM-Rolle mithilfe des AWS CLI?
Da das AWS CLI den DNS eines EFS-Dateisystems, das sich in einer anderen VPC befindet, nicht auflösen kann, müssen Sie die richtige Mount-Ziel-IP-Adresse für Ihren Client ermitteln. Konfigurieren Sie dann den Client. Verwenden Sie zum Mounten des EFS-Dateisystems die Mount-Ziel-IP-Adresse, die sich in derselben Availability Zone wie Ihr NFS-Client befindet. Die Namenszuordnungen der Availability Zone können je nach Konto unterschiedlich sein. Da Sie ein EFS-Dateisystem in einem anderen Konto mounten, müssen der NFS-Client und das Mount-Ziel sich in derselben Availability Zone befinden.
Ermitteln der Availability Zone Ihrer EC2-Instance
Um die Availability Zone Ihrer EC2-Instance zu ermitteln, verwenden Sie entweder die Amazon EC2-Konsole oder das AWS CLI.
Verwenden der Amazon-EC2-Konsole
Führen Sie die folgenden Schritte aus:
- Öffnen Sie die Amazon-EC2-Konsole.
- Wählen Sie Instances aus.
- Wählen Sie EC2-Instance-ID und anschließend Netzwerk aus.
- Unter Netzwerkdetails finden Sie die Availability Zone.
Verwenden des AWS CLI
Führen Sie den Befehl describe-availability-zones von der IAM-Entität aus, die über ausreichende Leseberechtigungen für Amazon EC2 verfügt:
$ 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" } ] }
Ermitteln Sie die Mount-Ziel-IP-Adresse für die lokale Availability Zone
Verwenden Sie entweder die Amazon EFS-Konsole oder das AWS CLI, um die Mount-Ziel-IP-Adresse für die lokale Availability Zone zu ermitteln.
Verwenden der Amazon-EFS-Konsole
Führen Sie die folgenden Schritte aus:
- Öffnen Sie die Amazon-EFS-Konsole.
- wählen Sie Dateisysteme.
- Wählen Sie EFS-Dateisystem-ID.
- Notieren Sie sich unter Netzwerk die IP-Adresse für Ihre Availability Zone.
Verwenden des AWS CLI
Führen Sie die folgenden Schritte aus:
-
Führen Sie den Befehl describe-mount-targets von der IAM-Entität aus, die über ausreichende Leseberechtigungen für Amazon EC2 verfügt:
$ 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" } ] }
-
Notieren Sie sich aus der vorherigen Ausgabe die IP-Adresse, die dem Mount-Ziel in der Availability Zone der Instance entspricht.
Fügen Sie den Eintrag Hosts zur Datei /etc/hosts hinzu und mounten Sie das EFS-Dateisystem
Führen Sie die folgenden Schritte aus:
- Führen Sie den folgenden Befehl aus, um den Hosts-Eintrag zur Datei /etc/hosts im NFS-Client hinzuzufügen:
Anmerkung: Das Format des DNS-Namens lautet im vorherigen Befehl mount-target-IP-Address file-system-ID.efs.region.amazonaws.com. Ersetzen Sie die Beispiel-IP-Adresse durch die IP-Adresse des Mount-Ziels.$ echo "10.0.2.153 fs-cee4feb7.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
- Mounten Sie das EFS-Dateisystem mithilfe des Mount-Helpers.
Wenn beim Mounten des Dateisystems Probleme auftreten, finden Sie weitere Informationen unter Problembehandlung bei Mount-Problemen.
Ähnliche Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 3 Monaten
- AWS OFFICIALAktualisiert vor 4 Jahren