Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何使用系統政策來控制 Amazon EFS 檔案系統的存取?
我想要跨 AWS 帳戶存取 Amazon Elastic File System (Amazon EFS) 檔案系統,以便共用檔案。我想針對網路檔案系統 (NFS) 用戶端和 Amazon EFS 存取點使用 AWS Identity and Access Management (IAM) 授權。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
連線 VPC
使用 VPC 對等互連將 NFS 用戶端的虛擬私有雲端 (VPC) 與 EFS 檔案系統連線。或者,使用 Amazon Virtual Private Cloud (Amazon VPC) Transit Gateway。此連線可讓來自相同或不同帳戶的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體存取不同 VPC 中的 EFS 檔案系統。
授予存取和掛載跨帳戶 EFS 檔案系統的權限
若要授予存取和掛載跨帳戶 EFS 檔案系統的權限,請將下列陳述式新增至您的 IAM 政策:
{ "Sid": "EfsPermissions", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite", "elasticfilesystem:ClientRootAccess" ], "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id" }
**注意:**上述範例陳述式允許 IAM 角色在 EFS 檔案系統上擁有掛載、寫入和根存取權限。如果您的 NFS 用戶端是 EC2 執行個體,則將 IAM 角色附加到該執行個體。
**注意:**AWS CLI 無法解析位於另一個 VPC 中的 EFS 檔案系統的 DNS。因此,您必須為用戶端確定正確的掛載目標 IP 位址。然後,設定用戶端。若要掛載 EFS 檔案系統,請使用位於與 NFS 用戶端相同的可用區域中的掛載目標 IP 位址。可用區域名稱對應可能會因帳戶而異。當您在另一個帳戶中掛載 EFS 檔案系統時,NFS 用戶端和掛載目標必須位於相同可用區域。
確定執行個體的可用區域
請完成下列步驟:
- 開啟 Amazon EC2 主控台。
- 選擇 Instances (執行個體)。
- 選取您的執行個體,然後選擇 Networking (網路)。
- 在 Networking details (網路詳細資訊) 下,找到可用區域。
或者,從對 Amazon EC2 具有足夠讀取權限的 IAM 實體,執行以下 describe-availability-zones AWS CLI 命令:
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" } ] }
確定本機可用區域的掛載目標 IP 位址
請完成下列步驟:
- 開啟 Amazon EFS 主控台。
- 選擇 File Systems (檔案系統)。
- 選取您的檔案系統。
- 在 Network (網路) 下,記下可用區域的 IP 位址。
或者,從對 Amazon EC2 具有足夠讀取權限的 IAM 實體執行以下 describe-mount-targets 命令:
aws efs describe-mount-targets --file-system-id fs-cee4feb7
**注意:**將 fs-cee4feb7 替換為您的檔案系統 ID。
在命令的輸出中,記下與執行個體可用區域中的掛載目標對應的 IP 位址。輸出範例:
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 檔案系統
請完成下列步驟:
- 執行下列命令,將主機項目新增至 NFS 用戶端中的 /etc/hosts 檔案:
**注意:**將 10.0.2.153 替換為您的掛載目標 IP 位址,將 fs-cee4feb7 替換為您的檔案系統 ID,並將 us-east-2 替換為您的 AWS 區域。echo "10.0.2.153 fs-cee4feb7.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts - 使用掛載助手掛載 EFS 檔案系統。預設情況下,掛載助理會使用 DNS 來解析掛載目標的 IP 位址。如果從其他帳戶或 Amazon VPC 掛載,則必須手動解析 Amazon EFS 掛載目標 IP 位址。
如果您在掛載檔案系統時遇到問題,請參閱掛載問題疑難排解。
相關資訊
相關內容
- 已提問 1 年前
- 已提問 3 年前
- 已提問 2 年前
- 已提問 2 年前
