Wie kann ich Systemrichtlinien verwenden, um den Zugriff auf mein EFS-Dateisystem zu kontrollieren?

Lesedauer: 5 Minute
0

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:

  1. Öffnen Sie die Amazon-EC2-Konsole.
  2. Wählen Sie Instances aus.
  3. Wählen Sie EC2-Instance-ID und anschließend Netzwerk aus.
  4. 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:

  1. Öffnen Sie die Amazon-EFS-Konsole.
  2. wählen Sie Dateisysteme.
  3. Wählen Sie EFS-Dateisystem-ID.
  4. Notieren Sie sich unter Netzwerk die IP-Adresse für Ihre Availability Zone.

Verwenden des AWS CLI

Führen Sie die folgenden Schritte aus:

  1. 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"
            }
        ]
    }
  2. 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:

  1. Führen Sie den folgenden Befehl aus, um den Hosts-Eintrag zur Datei /etc/hosts im NFS-Client hinzuzufügen:
    $ echo "10.0.2.153 fs-cee4feb7.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
    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.
  2. 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

Erstellen von Dateisystemrichtlinien

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 6 Monaten