네트워크 파일 시스템(NFS) 수준에서 사용자, 그룹 및 권한 사용 - Amazon Elastic File System

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

네트워크 파일 시스템(NFS) 수준에서 사용자, 그룹 및 권한 사용

파일 시스템을 만들면 기본적으로 루트 사용자(UID 0)에게만 읽기, 쓰기 및 실행 권한이 있습니다. 다른 사용자가 파일 시스템을 수정할 수 있게 하려면 루트 사용자가 다른 사용자에게 액세스 권한을 명시적으로 부여해야 합니다. 액세스 포인트를 사용하여 루트가 아닌 사용자가 쓰기 가능한 디렉터리를 자동으로 생성할 수 있습니다. 자세한 내용은 Amazon EFS 액세스 포인트 작업 단원을 참조하십시오.

Amazon EFS 파일 시스템 객체에는 연결된 Unix 스타일 모드가 있습니다. 이 모드 값은 해당 객체에 대한 작업을 수행할 수 있는 권한을 정의합니다. Unix 스타일 시스템에 익숙한 사용자는 이러한 권한과 관련된 Amazon EFS 작동 방식을 쉽게 이해할 수 있습니다.

또한 Unix 스타일 시스템에서 사용자 및 그룹은 Amazon EFS에서 파일 소유권을 나타내는 데 사용하는 숫자 식별자에 매핑됩니다. Amazon EFS의 경우 파일 시스템 객체(즉, 파일, 디렉터리 등)는 단일 소유자 및 그룹이 소유합니다. Amazon EFS는 매핑된 숫자 ID를 사용하여 사용자가 파일 시스템 객체에 액세스할 때 권한을 검사합니다.

다음에는 권한의 예제와 Amazon EFS에 대한 NFS 권한 고려 사항 관련 토론을 확인할 수 있습니다.

예: Amazon EFS 파일 시스템 사용 사례 및 권한

VPC에서 Amazon EFS 파일 시스템과 이 파일 시스템의 탑재 대상을 만들면 Amazon EC2 인스턴스에서 로컬로 원격 파일 시스템을 탑재할 수 있습니다. mount 명령은 파일 시스템에서 디렉터리를 얼마든지 탑재할 수 있습니다. 그러나 파일 시스템을 처음으로 만든 경우 /에는 루트 디렉터리가 하나뿐입니다.

다음 mount 명령은 /efs-mount-point 로컬 디렉터리에서 파일 시스템 DNS 이름으로 식별되는 Amazon EFS 파일 시스템의 루트 디렉터리를 탑재합니다.

sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.efs.aws-region.amazonaws.com:/ efs-mount-point

루트 사용자 및 루트 그룹이 탑재된 디렉터리를 소유합니다.

초기 권한 모드에서는 다음과 같이 허용됩니다.

  • 소유자 root에게 read-write-execute 권한이 허용됨

  • 그룹 root에게 read-execute 권한이 허용됨

  • 다른 사용자에게 read-execute 권한이 허용됨

루트 사용자만 이 디렉터리를 수정할 수 있습니다. 또한 루트 사용자는 다른 사용자에게 이 디렉터리에 쓸 수 있는 권한을 부여할 수도 있습니다. 예:

  • 쓰기 가능한 사용자별 하위 디렉터리를 만듭니다. 단계별 지침은 연습: 쓰기 가능한 사용자별 하위 디렉터리 만들기 및 재부팅 시 자동 다시 탑재 구성를 참조하십시오.

  • 사용자가 Amazon EFS 파일 시스템 루트에 쓸 수 있도록 합니다. 루트 권한이 있는 사용자는 다른 사용자에게 파일 시스템에 대한 액세스 권한을 부여할 수 있습니다.

    • Amazon EFS 파일 시스템 소유권을 root가 아닌 사용자에게로 변경하려면 다음 명령을 사용합니다.

      $ sudo chown user:group /EFSroot
    • 파일 시스템의 권한을 더욱 허용적으로 변경하려면 다음 명령을 사용합니다.

      $ sudo chmod 777 /EFSroot

      이 명령은 파일 시스템이 탑재된 모든 EC2 인스턴스에 대한 읽기-쓰기-실행 권한을 사용자 모두에게 부여합니다.

파일 시스템 내 파일 및 디렉터리에 대한 사용자 및 그룹 ID 권한

Amazon EFS 파일 시스템의 파일 및 디렉터리는 사용자 ID 및 그룹 ID를 기반으로 표준 Unix 스타일의 읽기, 쓰기 및 실행 권한을 지원합니다. NFS 클라이언트가 액세스 포인트를 사용하지 않고 EFS 파일 시스템을 탑재하면 클라이언트에서 제공한 사용자 ID와 그룹 ID를 신뢰할 수 있게 됩니다. EFS 액세스 포인트를 사용하여 NFS 클라이언트에서 사용하는 사용자 ID 및 그룹 ID를 재정의할 수 있습니다. 사용자가 파일 및 디렉터리에 액세스하려고 하면 Amazon EFS에서는 사용자의 사용자 ID 및 그룹 ID를 검사하여 각 사용자에게 객체에 액세스할 권한이 있는지 확인합니다. 또한 Amazon EFS에서는 이러한 ID를 사용하여 사용자가 만든 새 파일 및 디렉터리의 소유자 및 그룹 소유자를 나타냅니다. Amazon EFS에서는 사용자 또는 그룹 이름은 확인하지 않고 숫자 식별자만 사용합니다.

참고

EC2 인스턴스에서 사용자를 만드는 경우 만든 사용자에게 임의의 숫자 사용자 ID(UID) 및 그룹 ID(GID)를 할당할 수 있습니다. 숫자 사용자 ID는 Linux 시스템의 /etc/passwd 파일에서 설정합니다. 숫자 그룹 ID는 /etc/group 파일에 있습니다. 이러한 파일은 이름과 ID 간의 매핑을 정의합니다. EC2 인스턴스 외부에서 Amazon EFS는 루트 ID 0을 비롯하여 이러한 ID를 인증하지 않습니다.

사용자가 서로 다른 두 EC2 인스턴스에서 Amazon EFS 파일 시스템에 액세스하는 경우 이러한 인스턴스에서 사용자의 UID가 동일한지 혹은 다른지 여부에 따라 다음과 같이 다르게 동작할 수 있습니다.

  • 두 EC2 인스턴스에서 사용자 ID가 동일한 경우, Amazon EFS는 사용하는 EC2 인스턴스와 상관없이 해당 ID가 동일한 사용자를 나타내는 것으로 간주합니다. 따라서 어느 쪽 EC2 인스턴스에서 파일 시스템에 액세스하든 사용자 환경이 동일합니다.

  • 두 EC2 인스턴스에서 사용자 ID가 동일하지 않은 경우, Amazon EFS는 사용자를 서로 다른 사용자로 간주합니다. 서로 다른 두 EC2 인스턴스에서 Amazon EFS 파일 시스템에 액세스할 때는 사용자 환경이 동일하지 않습니다.

  • 다른 EC2 인스턴스에 있는 서로 다른 두 사용자가 ID를 공유하는 경우, Amazon EFS는 이들을 동일한 사용자로 간주합니다.

EC2 인스턴스에서 일관된 사용자 ID 매핑 관리를 고려할 수 있습니다. 사용자는 다음과 같이 id 명령을 사용하여 자신의 숫자 ID를 확인할 수 있습니다.

$ id uid=502(joe) gid=502(joe) groups=502(joe)

ID 매퍼 끄기

운영 체제의 NFS 유틸리티에는 사용자 이름과 ID 간의 매핑을 관리하는 ID 매퍼라는 데몬이 포함되어 있습니다. Amazon Linux에서는 이 데몬을 rpc.idmapd라고 하며, Ubuntu에서는 idmapd라고 합니다. ID 매퍼는 사용자 및 그룹 ID를 이름으로 전환하고 그 반대로도 전환합니다. 그러나 에서는 숫자 ID만 처리합니다. EC2 인스턴스에서는 이 프로세스를 끄는 것이 좋습니다. Amazon Linux에서는 일반적으로 ID 매퍼가 비활성화되어 있으므로 이러한 경우에는 ID 매퍼를 활성화하지 마십시오. ID 매퍼를 끄려면 다음과 같은 명령을 사용합니다.

$ service rpcidmapd status $ sudo service rpcidmapd stop

루트 스쿼싱 사용 안 함

기본적으로 EFS 파일 시스템에서는 루트 스쿼싱이 비활성화됩니다. Amazon EFS는 no_root_squash가 있는 Linux NFS 서버처럼 동작합니다. 사용자 또는 그룹 ID가 0이면 Amazon EFS에서는 해당 사용자를 root 사용자로 취급하고 권한 검사를 우회하여 모든 파일 시스템 객체에 대한 액세스 및 수정을 허용합니다. AWS Identity and Access Management(AWS IAM) 자격 증명 또는 리소스 정책에서 ClientRootAccess 작업에 대한 액세스를 허용하지 않는 경우 클라이언트 연결에서 루트 스쿼싱을 활성화할 수 있습니다. 루트 스쿼싱이 활성화되어 있으면 루트 사용자가 NFS 서버에 대한 권한이 제한되는 사용자로 전환됩니다.

권한 캐싱

Amazon EFS에서는 짧은 기간 동안 파일 권한을 캐싱합니다. 따라서 파일 시스템 객체에 액세스할 수 있었으나 최근에 액세스 권한이 취소된 사용자가 짧은 기간 동안 해당 객체에 계속해서 액세스하게 될 수 있습니다.

파일 시스템 객체 소유권 변경

Amazon EFS에서는 POSIX chown_restricted 속성을 강제합니다. 즉, 루트 사용자만 파일 시스템 객체의 소유자를 변경할 수 있습니다. 루트 사용자 또는 소유자는 파일 시스템 객체의 소유자 그룹을 변경할 수 있습니다. 그러나 사용자가 루트 사용자가 아닌 경우 그룹은 소유자가 멤버인 그룹으로만 변경할 수 있습니다.

EFS 액세스 포인트

액세스 포인트는 운영 체제 사용자, 그룹 및 파일 시스템 경로를 액세스 포인트를 사용하여 수행된 모든 파일 시스템 요청에 적용합니다. 액세스 포인트의 운영 체제 사용자 및 그룹은 NFS 클라이언트에서 제공하는 모든 자격 증명 정보를 재정의합니다. 파일 시스템 경로는 액세스 포인트의 루트 디렉터리로 클라이언트에 노출됩니다. 이렇게 하면 공유 파일 기반 데이터 세트에 액세스할 때 각 애플리케이션이 항상 올바른 운영 체제 자격 증명과 올바른 디렉터리를 사용할 수 있습니다. 액세스 포인트를 사용하는 애플리케이션은 자체 디렉터리 및 해당 하위 디렉터리의 데이터에만 액세스할 수 있습니다. 액세스 포인트에 대한 자세한 내용은 Amazon EFS 액세스 포인트 작업 단원을 참조하십시오.