보편적인 EFS 액세스 포인트 구성에는 어떤 것이 있나요?

최종 업데이트 날짜: 2022년 7월 13일

올바로 작동하거나 마운팅 오류를 일으키는 보편적인 Amazon Elastic File System(Amazon EFS) 액세스 포인트 구성에는 어떤 것이 있나요?

해결 방법

액세스 포인트 구성을 검토하기 전에 다음 정보를 알고 있어야 합니다.

Amazon EFS가 클라이언트를 인증하거나 필요한 경우 인증을 재정의 하는 방법

  • EFS 파일과 디렉터리는 사용자 ID와 그룹 ID에 따라 일반적인 Unix 방식 읽기, 쓰기와 실행 권한을 지원합니다.
  • 액세스 포인트 없이 NFS 클라이언트가 파일 시스템을 마운트하는 경우, 클라이언트가 제공한 사용자 및 그룹 ID를 신뢰하고 사용하게 됩니다.
  • 기본적으로 루트 스쿼싱은 켜져 있지 않습니다. Amazon EFS는 no_root_squash를 포함한 Linux NFS 서버처럼 동작합니다. 자세한 내용은 루트 스쿼싱 안 함을 참조하세요.
  • 사용자 또는 그룹 ID가 0인 경우, Amazon EFS는 해당 사용자를 루트 사용자로 취급하고, 권한 검사를 무시합니다. NFS 클라이언트가 사용하는 사용자 ID 및 그룹 ID를 재정의하려면 EFS 액세스 포인트를 사용하면 됩니다. Amazon EFS는 액세스 포인트 ID를 사용하여 사용자가 생성하는 새 파일과 디렉터리의 사용자와 그룹 사용자를 나타냅니다. 이것은 '모두 스쿼싱(all squash)' 매핑 동작입니다.
    참고: Amazon EFS는 사용자나 그룹 이름을 검사하지 않습니다. 오로지 숫자 식별자만 사용합니다.

NFS 매핑 동작, 예: no_root_squash, root_squash 및 all_squash

  • root_squash: UID 또는 GID 0의 요청을 익명 UID나 GID로 매핑합니다. 이 옵션은 사용자 bin이나 그룹 스태프처럼 중요도가 똑같은 다른 모든 UID나 GID에는 해당하지 않습니다.
  • no_root_squash: 루트 스쿼싱을 끕니다. 이 옵션은 디스크 없는 클라이언트에 유용합니다.
  • all_squash: 모든 UID와 GID를 익명 사용자에게 매핑합니다. 이 옵션은 NFS에서 내보낸 퍼블릭 FTP 디렉터리, 뉴스 풀 디렉터리 등에 유용합니다. 반대 옵션은 no_all_squash로, 이 옵션이 기본 설정입니다.

루트가 아닌 경로를 포함한 액세스 포인트와 기타 구성

액세스 포인트에 이전에 없었던(예: /test), 루트가 아닌 경로가 있습니다. POSIX 사용자와 생성 정보 필드가 비어 있습니다.

보편적인 문제: 파일 시스템을 액세스 포인트를 통해 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 마운트하려 합니다. 해당 액세스 포인트의 경로 디렉터리(이 예시에서는 /test)가 해당 파일 시스템에 존재하지 않으면 마운트가 실패합니다.

해결 방법: 액세스 포인트를 사용하지 않고 파일 시스템을 사용하거나 마운트하기 전에 디렉터리를 만듭니다. 아니면 액세스 포인트를 만들거나 수정할 때 생성 정보(Creation Info)를 지정합니다.

액세스 포인트에 이전에 없었던(예: /test), 루트가 아닌 경로가 있습니다. POSIX 사용자가 구성되어 있습니다(예: 1000:1000). 생성 정보 필드가 비어 있습니다.

보편적인 문제: 파일 시스템을 액세스 포인트를 통해 EC2 인스턴스에 마운트하려 하면 마운트가 실패합니다. 해당 액세스 포인트의 경로 디렉터리(이 예시에서는 /test)가 해당 파일 시스템에 존재하지 않기 때문입니다.

해결 방법: 액세스 포인트를 사용하지 않고 파일 시스템을 사용하거나 마운트하기 전에 디렉터리를 만듭니다. 아니면 액세스 포인트를 만들거나 수정할 때 생성 정보(Creation Info)를 지정합니다.

액세스 포인트에 이전에 없었던(예: /test), 루트가 아닌 경로가 있습니다. POSIX 사용자(예: 1000:1000)와 생성 정보 필드가 작성되어 있습니다(예: 1000:1000 (0755)).

이 구성을 사용하면 마운트 문제가 발생하지 않습니다.

루트 경로를 포함한 액세스 포인트와 기타 구성

액세스 포인트를 만들 때 '경로' 값을 지정하지 않으면 EFS는 파일 시스템의 루트 디렉터리를 해당 액세스 포인트로 가는 경로로 사용합니다. 이 경우, 파일 시스템은 OS의 루트 계정만 읽기, 쓰기 및 실행과 같은 파일 시스템 작업을 수행하도록 허용합니다. 파일 시스템의 루트 디렉터리 권한 중 이렇게 설정되지 않은 것을 변경하도록 허용되지 않기 때문입니다.

하지만 사용자 적용이 켜져 있는 경우, Amazon EFS가 NFS 클라이언트의 사용자와 그룹 ID를 모든 파일 시스템 작업의 액세스 포인트에 대하여 구성한 자격 증명(identity)으로 대체합니다. 이 옵션은 파일 시스템의 EFS 서버 측에서 충돌을 일으킵니다.

액세스 포인트에 루트 경로 ' / '가 있고 POSIX 사용자와 생성 정보 필드가 비어 있습니다.

이 구성을 사용하면 마운트 문제가 발생하지 않습니다. 이 구성은 액세스 포인트 없이 EFS 파일 시스템을 사용하는 것과 같습니다. 루트 사용자만 파일을 만들거나 수정할 수 있습니다.

액세스 포인트에 루트 경로 ' / '가 있고 POSIX 사용자가 0:0으로 설정되어 있습니다. 생성 정보 필드가 비어 있습니다.

이 구성을 사용하면 마운트 문제가 발생하지 않습니다. 이는 all_squash 매핑 때문에 모든 작업이 루트 계정을 사용해 수행되는 것처럼 보이기 때문입니다. 이 경우 사용자 자격 증명을 적용합니다. 이 구성은 액세스 포인트 없이 EFS 파일 시스템을 사용하는 것과 같습니다. 루트 사용자만 파일을 만들거나 수정할 수 있습니다.

액세스 포인트에 루트 경로 ' / '가 있고 POSIX 사용자가 1000:1000으로 설정되어 있습니다. 생성 정보 필드가 비어 있습니다.

이 구성을 사용하면 마운트 문제가 발생하지 않습니다. 이는 all_squash 매핑 때문에 모든 작업이 1000 UID/GID 숫자 ID를 가진 계정으로 수행되는 것처럼 보이기 때문입니다. 이 구성으로는 sudo 명령을 사용한다 해도 파일을 만들거나 수정할 수 없습니다.

액세스 포인트에 루트 경로 ' / '가 있고 POSIX 사용자가 1000:1000으로 설정되어 있습니다. 생성 정보 필드가 1000:1000 0755로 설정되어 있습니다.

디렉터리가 이미 존재하지 않는 경우, EFS가 이러한 권한을 가지고 자동으로 지정된 루트 디렉터리를 만듭니다. 하지만 all_squash 매핑 때문에 사용자는 파일 시스템에 쓰기 작업을 전혀 할 수 없습니다.

참고: 생성 정보(Creation info)는 EFS 파일 시스템에 아무런 영향을 미치지 않습니다. 루트 디렉터리(/)가 이미 존재하기 때문입니다.

보편적인 문제: 소유권 충돌 때문에 사용자가 아무런 파일 작업도 수행할 수 없습니다.

해결 방법:

  • 액세스 포인트 경로로 '/'를 사용하지 마세요.
  • POSIX 사용자0:0을 사용하고 생성 정보(Creation info)는 필요 없으므로 사용하지 않습니다.

루트가 아닌 경로(예: /test)를 포함하고 POSIX 사용자가 0:0, 생성 정보가 0:0(0755)으로 설정된 액세스 포인트

이 구성을 사용하면 all_squash 매핑 때문에 마운트 문제가 발생하지 않습니다. all_squash 매핑 때문에 모든 작업이 루트 계정을 사용해 수행되는 것으로 보입니다(사용자 자격 증명 적용). 사용자가 루트 사용자가 아니라도 마찬가지입니다.

루트가 아닌 경로(예: /test)를 포함하고 POSIX 사용자가 1000:1000, 생성 정보 필드가 비어 있음으로 설정된 액세스 포인트

참고: 액세스 포인트에 /test 경로를 생성하세요.

이 구성을 사용하면 마운트 문제가 발생하지 않습니다. 단, 모든 파일과 디렉터리는 숫자 ID UID 1000, GID 1000인 계정이 소유한다는 점을 유의하세요.

루트가 아닌 경로(예: /test)를 포함하고 생성 정보 필드가 0:0(0755)이며 POSIX 사용자가 비어 있는 액세스 포인트

이 구성을 사용하면 마운트 문제가 발생하지 않습니다. 다만 파일 작업에 반드시 sudo를 사용해야 합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?