Amazon Elastic File System (EFS)는 AWS에 의해 완전히 관리되며 확장 가능하고 탄력 있는 네트워크 파일 시스템으로 제공됩니다. 이 서비스는 여러 EC2 인스턴스 및 다른 AWS 서비스에서 동시에 액세스할 수 있는 파일 시스템의 생성 및 구성을 용이하게 합니다. EFS의 주요 기능은 수동 개입 없이 자동으로 확장할 수 있는 능력, 저지연 액세스 제공, 고처리량 워크로드 지원, 데이터 내구성 보장 및 다양한 AWS 보안 메커니즘과의 원활한 통합을 포함합니다.
기본적으로, 마운트할 EFS 폴더는 **/**이지만 다른 이름을 가질 수 있습니다.
네트워크 액세스
EFS는 VPC에서 생성되며 기본적으로 모든 VPC 하위 네트워크에서 액세스할 수 있습니다. 그러나 EFS에는 보안 그룹이 있을 것입니다. EFS를 마운트할 EC2에 액세스하려면 EFS 보안 그룹에서 EC2 보안 그룹으로부터의 입방향 NFS(2049 포트) 규칙을 허용해야 합니다.
# Get filesystems and access policies (if any)awsefsdescribe-file-systemsawsefsdescribe-file-system-policy--file-system-id<id># Get subnetworks and IP addresses where you can find the file systemawsefsdescribe-mount-targets--file-system-id<id>awsefsdescribe-mount-target-security-groups--mount-target-id<id>awsec2describe-security-groups--group-ids<sg_id># Get other access pointsawsefsdescribe-access-points# Get replication configurationsawsefsdescribe-replication-configurations# Search for NFS in EC2 networkssudonmap-T4-Pn-p2049--open10.10.10.0/20# or /16 to be sure
EFS 마운트 포인트가 동일한 VPC 내에 있지만 다른 서브넷에 있을 수 있습니다. 모든 EFS 포인트를 찾으려면 /16 넷마스크를 스캔하는 것이 좋습니다.
EFS 마운트
sudomkdir/efs## Mount foundsudoaptinstallnfs-commonsudomount-tnfs4-onfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport<IP>://efs## Mount with efs type## You need to have installed the package amazon-efs-utilssudoyuminstallamazon-efs-utils# If centossudoapt-getinstallamazon-efs-utils# If ubuntusudomount-tefs<file-system-id/EFSDNSname>://efs/
IAM 액세스
기본적으로 EFS에 네트워크 액세스 권한이 있는 사람은 마운트, 루트 사용자로서 읽고 쓸 수 있습니다. 그러나 파일 시스템 정책을 통해 특정 권한을 가진 주체만 액세스할 수 있도록 설정할 수 있습니다.
예를 들어, 이 파일 시스템 정책은 IAM 권한이 없으면 파일 시스템을 마운트조차 할 수 없게 합니다:
IAM으로 보호된 파일 시스템을 마운트하려면 마운트 명령어에서 "efs" 유형을 사용해야 합니다:
sudomkdir/efssudomount-tefs-otls,iam<file-system-id/EFSDNSname>://efs/# To use a different pforile from ~/.aws/credentials# You can use: -o tls,iam,awsprofile=namedprofile
액세스 포인트
액세스 포인트는 EFS 파일 시스템으로의 응용 프로그램별 진입점으로, 공유 데이터 집합에 대한 응용 프로그램 액세스를 보다 쉽게 관리할 수 있게 합니다.
액세스 포인트를 생성할 때, 파일 및 디렉토리의 소유자 및 POSIX 권한을 지정할 수 있습니다. 또한 액세스 포인트를 통해 생성된 파일 및 디렉토리를 위한 사용자 정의 루트 디렉토리를 정의할 수 있습니다. 기존 디렉토리를 지정하거나 원하는 권한으로 새 디렉토리를 생성하여 액세스 포인트를 통해 EFS 파일 시스템에 대한 액세스를 응용 프로그램별 또는 사용자별로 제어할 수 있게 되어, 공유 파일 데이터를 보다 쉽게 관리하고 보호할 수 있습니다.
액세스 포인트에서 파일 시스템을 마운트하는 방법은 다음과 같습니다:
# Use IAM if you need to use iam permissionssudomount-tefs-otls,[iam],accesspoint=<access-point-id> \<file-system-id/EFS DNS>/efs/
액세스 포인트를 마운트하려면 네트워크를 통해 NFS 서비스에 연락해야 하며, EFS에 파일 시스템 정책이 있는 경우 마운트하기 위해 충분한 IAM 권한이 필요합니다.
액세스 포인트는 다음과 같은 목적으로 사용할 수 있습니다:
권한 관리 간소화: 각 액세스 포인트에 대해 POSIX 사용자 및 그룹을 정의함으로써 기존 파일 시스템 권한을 수정하지 않고도 다른 애플리케이션 또는 사용자의 액세스 권한을 쉽게 관리할 수 있습니다.
루트 디렉토리 강제: 액세스 포인트는 EFS 파일 시스템 내의 특정 디렉토리로의 액세스를 제한하여 각 애플리케이션이나 사용자가 지정된 폴더 내에서 작동하도록 보장합니다. 이를 통해 우연한 데이터 노출 또는 수정을 방지할 수 있습니다.
더 쉬운 파일 시스템 액세스: 액세스 포인트는 AWS Lambda 함수 또는 AWS Fargate 작업과 연결될 수 있어 서버리스 및 컨테이너화된 애플리케이션의 파일 시스템 액세스를 간소화할 수 있습니다.
Privesc
Post Exploitation
Persistence
htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 영웅이 될 때까지 AWS 해킹을 배우세요!
HackTricks를 지원하는 다른 방법:
회사를 HackTricks에서 광고하거나 PDF로 다운로드하려면 구독 요금제를 확인하세요!