시스템 정책을 사용하여 EFS 파일 시스템에 대한 액세스를 제어하려면 어떻게 해야 합니까?
파일을 공유할 수 있도록 AWS 계정 전체에서 Amazon Elastic File System(Amazon EFS) 파일 시스템에 액세스하고 싶습니다. 네트워크 파일 시스템(NFS) 클라이언트 및 EFS 액세스 포인트에 AWS Identity and Access Management(AWS IAM) 인증을 사용하려고 합니다.
간략한 설명
Amazon EFS 파일 시스템에 액세스하려면 NFS 클라이언트 및 액세스 포인트에 대한 IAM 인증을 사용하세요. EFS 파일 시스템을 마운트하려면 Amazon EFS 마운트 도우미를 사용하세요. 기본적으로 마운트 도우미는 DNS를 사용하여 마운트 대상의 IP 주소를 확인합니다. 다른 계정 또는 Amazon Virtual Private Cloud(Amazon VPC)에서 마운트하는 경우 Amazon EFS 마운트 대상 IP 주소를 수동으로 확인해야 합니다.
사전 요구 사항:
- VPC 피어링 연결 또는 VPC 트랜짓 게이트웨이를 사용하여 NFS 클라이언트와 EFS 파일 시스템의 VPC를 연결합니다. 이 연결을 통해 동일하거나 다른 계정의 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스가 다른 VPC의 EFS 파일 시스템에 액세스할 수 있습니다.
- Amazon EFS 및 NFS 클라이언트 리소스 모두에 대해 IAM 역할 콘솔 또는 읽기 액세스 권한을 부여하세요.
- NFS 클라이언트에 Amazon EFS 클라이언트 및 botocore 패키지를 설치합니다.
참고: 교차 계정 시나리오에서는 일반적인 NFS 명령을 실행할 수 없으므로 botocore 패키지와 Amazon EFS 클라이언트가 필요합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
계정 간 EFS 파일 시스템에 액세스하고 마운트할 수 있는 권한 부여
계정 간 EFS 파일 시스템에 액세스하고 마운트할 수 있는 권한을 부여하려면 IAM 정책에 문을 추가하거나 AWS CLI를 사용하여 해당 역할을 맡으세요.
**정책 설명 추가 **
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 사용
AWS CLI를 사용하여 역할을 할당하려면 AWS CLI를 사용하여 IAM 역할을 할당하려면 어떻게 해야 하나요?을 참조하세요.
AWS CLI는 다른 VPC에 있는 EFS 파일 시스템의 DNS를 확인할 수 없으므로 클라이언트에 적합한 마운트 대상 IP 주소를 결정해야 합니다. 그런 다음 클라이언트를 구성합니다. EFS 파일 시스템을 마운트하려면 NFS 클라이언트와 동일한 가용성 영역에 있는 마운트 대상 IP 주소를 사용합니다. 가용 영역 이름 매핑은 계정마다 다를 수 있습니다. 다른 계정에 EFS 파일 시스템을 마운트하는 경우 NFS 클라이언트와 마운트 대상은 동일한 가용성 영역에 있어야 합니다.
EC2 인스턴스의 가용 영역 결정
EC2 인스턴스의 가용 영역을 확인하려면 Amazon EC2 콘솔 또는 AWS CLI를 사용합니다.
** Amazon EC2 콘솔 사용**
다음 단계를 완료하세요.
- Amazon EC2 콘솔을 엽니다.
- 인스턴스를 선택합니다.
- EC2-Instance-ID를 선택한 다음 네트워킹을 선택합니다.
- 네트워킹 세부 정보에서 가용성 영역을 찾습니다.
AWS CLI 사용
Amazon EC2에 대한 충분한 읽기 권한이 있는 IAM 엔티티에서 describe-availability-zones 명령을 실행합니다.
$ 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 주소 확인
로컬 가용 영역의 마운트 대상 IP 주소를 확인하려면 Amazon EFS 콘솔 또는 AWS CLI를 사용합니다.
Amazon EFS 콘솔 사용
다음 단계를 완료합니다.
- Amazon EFS 콘솔을 엽니다.
- 파일 시스템을 선택합니다.
- EFS-File-System-ID를 선택합니다.
- 네트워크에서 가용 영역의 IP 주소를 확인합니다.
AWS CLI 사용
다음 단계를 완료합니다.
-
Amazon EC2에 대한 충분한 읽기 권한이 있는 IAM 엔티티에서 describe-mount-targets 명령을 실행합니다:
$ 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" } ] }
-
앞의 출력에서 인스턴스의 가용성 영역에서 마운트 대상에 해당하는 IP 주소를 확인합니다.
호스트 항목을 /etc/hosts 파일에 추가하고 EFS 파일 시스템을 마운트합니다.
다음 단계를 완료합니다.
- 다음 명령을 실행하여 NFS 클라이언트의 /etc/hosts 파일에 hosts 항목을 추가합니다:
참고: 앞의 명령에서 DNS 이름의 형식은 mount-target-IP-Address file-system-ID.efs.region.amazonaws.com입니다. 예제 IP 주소를 마운트 대상의 IP 주소로 바꿉니다.$ echo "10.0.2.153 fs-cee4feb7.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
- 마운트 도우미를 사용하여 EFS 파일 시스템을 마운트합니다.
파일 시스템을 마운트할 때 문제가 발생하면 마운트 문제 해결을 참조하세요.
관련 정보
관련 콘텐츠
- 질문됨 6년 전lg...
- 질문됨 16시간 전lg...
- 질문됨 3달 전lg...
- 질문됨 2년 전lg...
- AWS 공식업데이트됨 6달 전
- AWS 공식업데이트됨 2년 전