NFS 권한 설정 - NFS gwonhan seoljeong

주제

  • 파일 및 디렉터리 권한
  • Amazon EFS 파일 시스템 사용 사례 및 권한 예
  • 파일 시스템 내 파일 및 디렉터리에 대한 사용자 및 그룹 ID 권한
  • 루트 스쿼싱 없음
  • 권한 캐싱
  • 파일 시스템 객체 소유권 변경
  • EFS 액세스 포인트

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

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

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

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

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

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

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

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

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

NFS 권한 설정 - NFS gwonhan seoljeong

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

  • read-write-execute소유자에 대한 권한뿌리

  • read-execute그룹에 대한 권한뿌리

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

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

  • 쓰기 가능한 사용자별 하위 디렉터리를 만듭니다. 용 step-by-step 지침, 참조연습: 쓰기 가능한 사용자별 하위 디렉토리 생성 및 재부팅 시 자동 재장착 구성.

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

    • Amazon EFS 파일 시스템 소유권을뿌리사용자 및 그룹의 경우 다음을 사용합니다.

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

      $ sudo chmod 777 /EFSroot

      이 명령은 read-write-execute 파일 시스템이 탑재된 모든 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를 이름으로 전환하고 그 반대로도 전환합니다. 그러나 Amazon EFS에서는 숫자 ID만 처리합니다. EC2 인스턴스에서는 이 프로세스를 끄는 것이 좋습니다. Amazon Linux에서는 일반적으로 ID 매퍼가 비활성화되어 있으므로 이러한 경우에는 ID 매퍼를 활성화하지 마십시오. ID 매퍼를 끄려면 다음과 같은 명령을 사용합니다.

$  service rpcidmapd status
$  sudo service rpcidmapd stop

루트 스쿼싱 없음

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

자세한 내용은 IAM을 사용하여 파일 시스템 데이터 액세스 제어 및 연습: NFS 클라이언트에 대한 IAM 권한 부여를 사용하여 루트 스쿼싱 활성화 섹션을 참조하세요.

권한 캐싱

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

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

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

EFS 액세스 포인트

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