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

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

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

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

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

참고

이 NFS 프로토콜은 사용자당 최대 16개의 그룹 IDs (GIDs) 을 지원하며, 클라이언트 요청에서 추가된 GIDs 그룹은 잘립니다. NFS 자세한 내용은 파일 시스템에서 허용된 NFS 파일에 대한 액세스가 거부되었습니다. 단원을 참조하십시오.

아래에서는 Amazon의 권한 고려 사항과 권한 관련 예시를 확인할 수 EFS 있습니다. NFS

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

Amazon EFS 파일 시스템을 생성하고 의 파일 시스템에 대한 대상을 탑재한 후에는 Amazon EC2 인스턴스에 로컬로 원격 파일 시스템을 마운트할 수 있습니다. VPC 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

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

  • 소유자 루트에 대한 read-write-execute 권한

  • 그룹 루트에 대한 read-execute 권한

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

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

  • 쓰기 가능한 사용자별 하위 디렉터리를 만듭니다. step-by-step 지침은 을 참조하십시오자습서: 쓰기 가능한 사용자별 하위 디렉터리 만들기.

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

    • Amazon EFS 파일 시스템 소유권을 루트가 아닌 사용자 및 그룹으로 변경하려면 다음을 사용하십시오.

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

      $ sudo chmod 777 /EFSroot

      이 명령은 파일 시스템이 마운트된 모든 EC2 인스턴스의 모든 사용자에게 read-write-execute 권한을 부여합니다.

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

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

참고

EC2인스턴스에서 사용자를 생성할 때 사용자에게 임의의 숫자 사용자 ID (UID) 및 그룹 ID () 를 할당할 수 있습니다. GID Linux 시스템의 경우 /etc/passwd 파일에 숫자 사용자가 IDs 설정됩니다. 숫자 그룹은 파일에 IDs 있습니다. /etc/group 이 파일은 이름과 사이의 매핑을 정의합니다. IDs EC2인스턴스 외부에서 EFS Amazon은 루트 ID 0을 IDs 포함하여 이러한 인스턴스에 대한 인증을 수행하지 않습니다.

사용자가 서로 다른 두 인스턴스에서 Amazon EFS 파일 시스템에 액세스하는 경우, 해당 EC2 인스턴스에서 해당 사용자의 인스턴스가 동일한지 다른지에 따라 다음과 같이 동작이 달라집니다. UID

  • 사용자가 두 EC2 인스턴스에서 동일한 경우 IDs Amazon은 사용된 EC2 인스턴스와 상관없이 동일한 사용자를 나타내는 EFS 것으로 간주합니다. 파일 시스템에 액세스할 때의 사용자 경험은 두 EC2 인스턴스에서 동일합니다.

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

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

인스턴스 간 EC2 사용자 ID 매핑을 일관되게 관리하는 것을 고려할 수 있습니다. 사용자는 id 명령을 사용하여 자신의 숫자 ID를 확인할 수 있습니다.

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

ID 매퍼 끄기

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

$ service rpcidmapd status $ sudo service rpcidmapd stop

루트 스쿼싱 사용 안 함

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

자세한 내용은 파일 시스템 IAM 데이터 액세스를 제어하는 데 사용 단원을 참조하십시오.

클라이언트에 대한 권한 부여를 사용하여 루트 스쿼싱을 활성화합니다. IAM NFS

단일 관리 워크스테이션을 제외한 모든 AWS 보안 주체에 대해 Amazon EFS 파일 시스템에 대한 루트 액세스를 EFS 방지하도록 Amazon을 구성할 수 있습니다. 네트워크 파일 시스템 () 클라이언트에 대한 구성 AWS Identity and Access Management (IAM) 권한 부여를 통해 이를 수행할 수 있습니다. NFS

이렇게 하려면 다음과 같이 두 가지 IAM 권한 정책을 구성해야 합니다.

  • EFS파일 시스템에 대한 읽기 및 쓰기 액세스는 명시적으로 허용하고 루트 액세스는 암시적으로 거부하는 파일 시스템 정책을 만드십시오.

  • Amazon EC2 인스턴스 프로필을 사용하여 파일 시스템에 대한 루트 액세스가 필요한 Amazon EC2 관리 워크스테이션에 IAM ID를 할당합니다. Amazon EC2 인스턴스 프로필에 대한 자세한 내용은 사용 AWS Identity and Access Management 설명서의 인스턴스 프로필 사용을 참조하십시오.

  • AmazonElasticFileSystemClientFullAccess AWS 관리형 정책을 관리 워크스테이션의 IAM 역할에 할당하십시오. 의 AWS 관리형 정책에 대한 자세한 내용은 EFS 을 참조하십시오Amazon의 자격 증명 및 액세스 관리 EFS.

NFS클라이언트에 대한 IAM 권한 부여를 사용하여 루트 스쿼싱을 활성화하려면 다음 절차를 사용하십시오.

파일 시스템에 대한 루트 액세스를 차단하려면
  1. 에서 Amazon Elastic File System 콘솔을 엽니다 https://console.aws.amazon.com/efs/.

  2. 파일 시스템을 선택합니다.

  3. 루트 스쿼싱을 활성화하려는 파일 시스템을 선택합니다.

  4. 파일 시스템 세부 정보 페이지에서 파일 시스템 정책을 선택한 다음 편집을 선택합니다. 파일 시스템 정책 페이지가 나타납니다.

  5. 정책 옵션에서 기본적으로 루트 액세스 차단*을 선택합니다. 정책 JSON 개체는 정책 편집기에 표시됩니다.

  6. 저장을 선택하여 파일 시스템 정책을 저장합니다.

익명이 아닌 클라이언트는 자격 증명 기반 정책을 통해 파일 시스템에 대한 루트 액세스를 얻을 수 있습니다. AmazonElasticFileSystemClientFullAccess관리형 정책을 워크스테이션의 역할에 연결하면 ID 정책을 기반으로 워크스테이션에 대한 루트 액세스 권한을 IAM 부여합니다.

관리 워크스테이션에서 루트 액세스를 활성화하려면
  1. 에서 IAM 콘솔을 엽니다. https://console.aws.amazon.com/iam/

  2. EC2라는 Amazon 역할을 생성합니다EFS-client-root-access. IAM생성한 EC2 역할과 동일한 이름으로 인스턴스 프로필을 생성합니다.

  3. 생성한 EC2 역할에 AWS 관리형 정책을 AmazonElasticFileSystemClientFullAccess 할당합니다. 이 정책의 내용은 다음과 같습니다.

    { "Version”: "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientRootAccess", "elasticfilesystem:ClientWrite", "elasticfilesystem:DescribeMountTargets" ], "Resource": "*" } ] }
  4. 다음 설명에 따라 관리 워크스테이션으로 사용 중인 EC2 인스턴스에 인스턴스 프로필을 연결합니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서의 인스턴스에 IAM 역할 연결을 참조하십시오.

    1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

    2. 탐색 창에서 Instances(인스턴스)를 선택합니다.

    3. 인스턴스를 선택합니다. [작업] 에서 [인스턴스 설정] 을 선택한 다음 [역할 연결/교체 IAM] 를 선택합니다.

    4. 첫 번째 단계에서 만든 IAM 역할을 선택하고 [적용] EFS-client-root-access 을 선택합니다.

  5. 관리 워크스테이션에 EFS 마운트 도우미를 설치합니다. EFS마운트 도우미 및 amazon-efs-utils 패키지에 대한 자세한 내용은 을 참조하십시오. Amazon EFS 클라이언트 설치

  6. 마운트 옵션과 함께 다음 명령을 사용하여 관리 워크스테이션에 EFS 파일 시스템을 iam 마운트합니다.

    $ sudo mount -t efs -o tls,iam file-system-id:/ efs-mount-point

    IAM승인을 받아 파일 시스템을 자동으로 마운트하도록 Amazon EC2 인스턴스를 구성할 수 있습니다. IAM권한 부여를 통한 EFS 파일 시스템 마운트에 대한 자세한 내용은 을 참조하십시오승인을 통한 마운팅 IAM.

권한 캐싱

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

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

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

EFS액세스 포인트

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