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

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

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

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

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

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

참고

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

다음은 권한의 예제와 Amazon 의 NFS 권한 고려 사항에 대한 설명을 확인할 수 있습니다EFS.

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 액세스 포인트를 사용하여 NFS 클라이언트에서 IDs 사용하는 사용자 ID 및 그룹을 재정의할 수 있습니다. 사용자가 파일 및 디렉터리에 액세스하려고 하면 Amazon은 사용자IDs와 그룹을 EFS 확인하여 각 사용자에게 객체에 액세스할 수 있는 권한이 있는지 IDs 확인합니다. EFS 또한 Amazon은 이를 사용하여 사용자가 생성하는 새 파일 및 디렉터리의 소유자 및 그룹 소유자를 IDs 나타냅니다. AmazonEFS은 사용자 또는 그룹 이름을 검사하지 않으며 숫자 식별자만 사용합니다.

참고

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

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

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

  • 두 EC2 인스턴스 모두에서 사용자가 동일하지 않은 경우 AmazonIDs은 사용자를 다른 사용자로 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 Mapper라는 데몬이 포함됩니다IDs. Amazon Linux에서는 이 대몬(daemon)을 rpc.idmapd라고 하며, Ubuntu에서는 idmapd라고 합니다. 사용자와 그룹을 IDs 이름으로 변환하고 그 반대의 경우도 마찬가지입니다. 그러나 Amazon은 숫자 만 EFS 처리합니다IDs. EC2 인스턴스에서 이 프로세스를 끄는 것이 좋습니다. Amazon Linux에서는 일반적으로 ID 매퍼가 비활성화되어 있으므로 이러한 경우에는 ID 매퍼를 활성화하지 마세요. ID 매퍼를 끄려면 다음과 같은 명령을 사용합니다.

$ service rpcidmapd status $ sudo service rpcidmapd stop

루트 스쿼싱 사용 안 함

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

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

NFS 클라이언트에 대한 IAM 인증을 사용하여 루트 스쿼싱 활성화

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

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

  • EFS 파일 시스템에 대한 읽기 및 쓰기 액세스를 명시적으로 허용하고 루트 액세스를 암시적으로 거부하는 파일 시스템 정책을 생성합니다.

  • Amazon EC2 인스턴스 프로파일을 사용하여 파일 시스템에 대한 루트 액세스가 필요한 IAM 자격 증명을 Amazon EC2 관리 워크스테이션에 할당합니다. 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. 생성한 AmazonElasticFileSystemClientFullAccess EC2 역할에 AWS 관리형 정책을 할당합니다. 이 정책의 내용은 다음과 같습니다.

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

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