Direkt zum Inhalt

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

Lesedauer: 4 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 Amazon EFS-Zugangspunkte verwenden.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

VPCs verbinden

Verbinde die Virtual Private Clouds (VPCs) deines NFS-Clients und deines EFS-Dateisystems über eine VPC-Peering-Verbindung. Oder verwende ein Amazon Virtual Private Cloud (Amazon VPC) Transit Gateway. Dadurch können Amazon Elastic Compute Cloud (Amazon EC2)-Instances von denselben oder verschiedenen Konten aus auf EFS-Dateisysteme in einer anderen VPC zugreifen.

Erteile Zugriffs- und Mountberechtigungen für das EFS-Dateisystem

Um Zugriffs- und Mountberechtigungen für das kontoübergreifende EFS-Dateisystem zu gewähren, füge deiner IAM-Richtlinie die folgende Anweisung hinzu:

{            "Sid": "EfsPermissions",
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientMount",
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientRootAccess"
            ],
            "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id"
        }

Hinweis: Die obige Beispielerklärung gewährt der IAM-Rolle Mount-, Schreib- und Root-Zugriff auf das EFS-Dateisystem. Wenn dein NFS-Client eine EC2-Instance ist, füge der Instance die IAM-Rolle hinzu.

Oder verwende die AWS-CLI, um die IAM-Rolle zu übernehmen.

Hinweis: Die AWS-CLI kann das DNS eines EFS-Dateisystems, das in einer anderen VPC ist, nicht auflösen. Daher musst du die richtige Mount-Ziel-IP-Adresse für deinen Client ermitteln. Konfiguriere 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 du ein EFS-Dateisystem in einem anderen Konto mountest, müssen der NFS-Client und das Mount-Ziel sich in derselben Availability Zone befinden.

Ermittle die Availability Zone deiner Instance

Führe die folgenden Schritte aus:

  1. Öffnen Sie die Amazon-EC2-Konsole.
  2. Wähle Instances aus.
  3. Wähle deine Instance und dann Netzwerk aus.
  4. Suche unter Netzwerkdetails die Availability Zone.

Oder führe den folgenden AWS-CLI-Befehl describe-availability-zones von einer 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`

Beispielausgabe:

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

Ermittle die Mount-Ziel-IP-Adresse für die lokale Availability Zone

Führe die folgenden Schritte aus:

  1. Öffnen Sie die Amazon-EFS-Konsole.
  2. Wähle Dateisysteme aus.
  3. Wähle dein Dateisystem aus.
  4. Notiere dir die IP-Adresse für deine Availability Zone unter Netzwerk.

Oder führe den Befehl describe-mount-targets von einer IAM-Entität aus, die über ausreichende Leseberechtigungen für Amazon EC2 verfügt:

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

Hinweis: Ersetze fs-cee4feb7 durch deine Dateisystem-ID.

Notiere dir in der Ausgabe des Befehls die IP-Adresse, die dem Mount-Ziel in der Availability Zone der Instance entspricht. Beispielausgabe:

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

EFS-Dateisystem mounten

Führe 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
    Hinweis: Ersetze 10.0.2.153 durch deine Mount-Ziel-IP-Adresse, fs-cee4feb7 durch deine Dateisystem-ID und us-east-2 durch deine AWS-Region.
  2. Mounte das EFS-Dateisystem mithilfe des Mount-Helpers. Standardmäßig verwendet der Mount-Helper DNS, um die IP-Adresse deines Mount-Ziels aufzulösen. Wenn du das Mounten also von einem anderen Konto oder einer Amazon VPC aus durchführst, musst du die Amazon EFS-Mount-Ziel-IP-Adresse manuell auflösen.

Wenn beim Mounten des Dateisystems Probleme auftreten, findest du weitere Informationen unter Problembehandlung bei Mount-Problemen.

Ähnliche Informationen

Erstellen von Dateisystemrichtlinien

AWS OFFICIALAktualisiert vor 4 Monaten