파일 시스템 인증 및 권한 부여

완료됨

워크로드의 전반적인 성능 및 트래픽 특징을 이해한 후에는 보안 측면을 고려해야 합니다. 환자의 방사선 이미지와 같이 중요한 데이터일 수 있습니다. 여러 가지 이유로 데이터 액세스를 제한하는 것이 좋습니다. 또한 데이터를 로드하고 HPC 분석과 시뮬레이션을 수행할 수 있는 “홈 디렉터리”를 각 연구원에게 제공하는 것이 좋습니다.

클라우드 HPC 스토리지를 선택할 때는 현재 보안 태세와 통합되는 방법에 유의하세요. 파일 시스템이 파일에 대한 액세스를 인증하고 권한을 부여하는 방법을 이해합니다. 적용이 로컬인지 또는 원격인지(또는 둘 다) 여부와 인증 및 권한 부여가 제공되는 위치를 확인합니다. 원격 공유 파일 시스템을 사용하는 경우 표준 NAS 방법을 통해 액세스를 제어하는 방법을 이해해야 합니다. 마지막으로, 사용자를 위한 고유한 작업 공간(홈 디렉터리)을 제공하는 경우 해당 공간을 할당하는 방법을 이해해야 합니다.

이 단원에서는 보안 고려 사항과 이러한 고려 사항이 스토리지 아키텍처에 미치는 영향을 살펴봅니다.

인증 및 권한 부여 개요

인증: 파일 시스템에 대한 액세스를 제공하는 경우 신뢰할 수 있는 일부 자격 증명을 사용하여 요청자를 인증해야 합니다. 많은 클라이언트/서버 아키텍처에서는 사용자 또는 컴퓨터 계정과 같은 해당 자격 증명에 대해 챌린지를 실행합니다. 그런 다음, 이 자격 증명을 검사하여 환경에 유효한지 확인합니다. 인증 후에는 요청자(사용자 또는 컴퓨터/프로세스)에 권한이 부여됩니다. 사용자 환경에 필요한 액세스 프로토콜은 솔루션에 대한 인증을 제한할 수 있습니다. 예를 들어 Windows 환경을 사용하는 경우 SMB(서버 메시지 블록)를 네트워크 파일 액세스 프로토콜로 사용할 가능성이 큽니다. SMB 인증 요구 사항은 NFS 요구 사항과 동일하지 않습니다.

권한 부여: 환경에 대한 사용자 또는 컴퓨터 액세스를 허용한다고 해도 어떤 액세스 ‘수준’으로 허용해야 할까요? 예를 들어 사용자 A는 파일 시스템에서 파일을 읽을 수 있는 한편, 사용자 B는 파일을 읽고 쓸 수 있습니다. 권한 부여를 통해 읽기 및 쓰기 외에 다양한 권한을 부여할 수 있습니다. 예를 들어 사용자 C는 파일을 수정할 수 있지만 지정된 디렉터리에 새 파일을 만들 수는 없습니다.

권한 부여 수준은 지정된 파일에 대한 ‘사용 권한’으로 표현되는 경우가 많습니다. 여기에는 읽기, 쓰기, 실행이 포함됩니다.

사용자 및 그룹: 사용자 수가 많을 때는 리소스 세트에 대한 액세스 권한을 부여하는 일이 번거로울 수 있습니다. 여러 사용자 세트에 각기 다른 액세스 수준을 부여하려는 경우 복잡해지기도 합니다. 이 경우 ‘그룹’을 사용해야 합니다. 사용자를 특정 그룹 또는 그룹 집합에 할당하게 되면 해당 그룹 ID에 따라 리소스에 대한 액세스 권한을 부여할 수 있습니다.

인증과 권한 부여를 함께 사용하면 리소스(여기서는 파일)에 부여할 사용자 수준, 그룹 수준, 컴퓨터 수준의 액세스 권한을 나타냅니다.

Linux OS는 개별 사용자 계정에 UID(‘사용자 ID’)를 할당합니다. UID는 정수입니다. 시스템에서 특정 사용자가 액세스할 수 있는 시스템 리소스(파일 및 폴더 포함)를 결정하는 데 사용됩니다.

Linux OS는 GID(‘그룹 식별자’)를 그룹 할당에 사용합니다. 각 사용자가 단일 주 그룹과 연결됩니다. 대부분의 최신 Linux 시스템에서는 사용자가 65,536개 한도 내에서 사실상 원하는 개수의 보조 그룹 할당과 연결될 수 있습니다.

로컬 및 원격 인증과 권한 부여

로컬 인증 및 권한 부여는 컴퓨터에도 로컬인 사용자/컴퓨터 계정의 로컬 파일 시스템 액세스를 나타냅니다. 예를 들어 사용자 계정을 만들어 로컬 파일 시스템에 있는 /data 디렉터리에 대한 액세스 권한을 부여할 수 있습니다. 디렉터리에 대한 모든 액세스 권한 부여와 마찬가지로 해당 사용자 계정은 로컬입니다. 그룹 할당을 사용하여 액세스를 제어할 수도 있습니다. 사용자 및 그룹 권한 부여가 결합하여 파일 또는 폴더에 대한 ‘유효’ 권한을 사용자에게 부여합니다.

ls -al 디렉터리 명령의 일반적인 출력을 보면 다음과 같은 내용이 표시됩니다.

drwxr-xr-x  4 root root 4096 Dec 31 19:43.
drwxr-xr-x 13 root root 4096 Dec 11 05:53 ..
drwxr-xr-x  6 root root 4096 Dec 31 19:43 microsoft
drwxr-xr-x  8 root root 4096 Dec 31 19:43 omi
-rw-r--r--  1 root root    0 Jan 21 15:10 test.txt

drwxr-xr-x 문자는 파일 또는 디렉터리에 대해 권한이 부여된 사용자 및 그룹의 액세스 수준을 나타냅니다. d는 항목이 디렉터리임을 나타냅니다. (첫 번째 값이 -이면 파일 항목입니다.) 나머지 문자는 읽기(r), 쓰기(w), 실행(x)의 권한 그룹 권한 부여를 나타냅니다. 처음 세 값은 파일이나 디렉터리의 “소유자”를 나타냅니다. 두 번째 세 값은 파일 또는 디렉터리에 할당된 그룹 권한을 나타냅니다. 마지막 세 값은 시스템의 다른 모든 사용자에게 허용되는 권한을 나타냅니다.

예를 들면 다음과 같습니다.

-rw-r--r-- 1 root root 0 Jan 21 15:10 test.txt

  • -은 해당 리소스가 파일임을 나타냅니다.
  • rw-은 소유자에게 읽기 및 쓰기 권한이 있음을 나타냅니다.
  • r--은 할당된 그룹에 읽기 권한만 있음을 나타냅니다.
  • r--은 나머지 사용자에게 읽기 권한만 있음을 나타냅니다.
  • 또한 담당 사용자 및 할당된 그룹은 두 개의 root 열에 표시됩니다.

UID와 기본 및 보조 GID는 로컬 컴퓨터에서 인증된 사용자를 나타냅니다. 관련 값은 해당 컴퓨터에 로컬입니다. 컴퓨터가 5대 또는 심지어 50대가 있으면 어떻게 해야 할까요? 각 컴퓨터에서 UID 및 GID 할당을 복제해야 합니다. 잘못된 사용자에게 파일 또는 폴더 액세스 권한을 실수로 부여할 가능성이 커짐에 따라 사용자 관리의 복잡성 수준도 높아집니다.

NFS를 통한 원격 파일 액세스

단일 사용자/그룹 할당으로 모든 항목을 실행하는 경우 로컬 UID 및 GID 할당이 제대로 작동합니다. 여러 이해 관계자가 실행 중인 HPC 클러스터를 사용하고 각 이해 관계자에게 중요한 데이터와 데이터의 여러 소비자가 있는 경우 어떻게 해야 할까요?

파일 서버 또는 NAS 환경에 데이터를 배치하면 원격으로 데이터에 액세스할 수 있습니다. 이 방법을 사용하면 로컬 디스크 비용을 줄이는 데 도움이 되며 모든 사용자의 데이터가 최신 상태로 유지되고 전반적인 사용자 및 그룹 관리가 감소합니다.

Diagram that shows the relationships among compute, storage, and directory services.

중앙에서 파일을 찾는 경우 사용자 및 그룹 구성이 포함된 ‘디렉터리 서비스’가 필요할 수 있습니다. Active Directory 또는 LDAP(Lightweight Directory Access Protocol) 같은 디렉터리 서비스를 사용하여 모든 원격 시스템에서 사용할 수 있는 사용자/그룹 매핑을 만들 수 있습니다. 원격 컴퓨터와 NAS 환경을 디렉터리 서비스의 클라이언트로 구성합니다. Windows 사용자 계정과 특정 UID 및 GID 조합 간에 Active Directory 매핑을 사용할 수도 있습니다.

원격으로 파일에 액세스하는 일반적인 방법은 NFS나 SMB 또는 병렬 파일 시스템(예: Lustre)과 같은 네트워크 파일 시스템을 사용하는 것입니다. 해당 프로토콜은 데이터에 액세스하기 위한 클라이언트 및 서버 API를 정의합니다. NFS 작업은 “파일 시스템 성능 고려 사항” 단원에서 설명했습니다. NFS 사용은 다음 단원에서 자세히 설명합니다.

참고

NFS를 사용하는 경우 디렉터리 서비스가 필요하지 않습니다. 그러나 해당 서비스를 사용하지 않는 경우에는 사용자와 시스템 수가 많을 때 여전히 UID 및 GID 관리가 어렵습니다.

홈 디렉터리

여러 연구원이 사용하는 HPC 환경이 있지만 각 연구원의 고유 데이터를 별도로 보관해야 한다고 가정해 보겠습니다. 또한 연구원이 자신의 데이터를 지속해서 수정하고 이 데이터에 항목을 추가한다고 가정해 보겠습니다. 연구원에게 개별 홈 디렉터리를 제공하는 것은 데이터를 분리하는 효율적인 방법입니다.

각 연구원은 홈 디렉터리 내의 권한을 처리하므로 원하는 경우 협업을 수행할 수 있습니다.

이 환경에서 발생하는 주요 문제 중 하나는 스토리지 공간입니다. 500TB의 NAS 환경이 있다고 가정해 보겠습니다. 한 연구원이 모든 공간을 사용할 수 없게 하려면 어떻게 해야 할까요?

개별 디렉터리에 ‘할당량’을 할당할 수 있습니다. 할당량은 허용되는 최대 데이터양을 반영합니다. 할당량에 도달하면 추가 데이터를 거부하거나, 연구원이 제한을 초과했다고 관리자에게 경고할 수 있습니다. 예를 들어 NAS 시스템이 있는 경우 각 연구원에게 할당량을 할당할 수 있습니다. 또한 연구원의 액세스 권한을 홈 디렉터리로 분리하면 간단하게 사용량을 구성하고 모니터링할 수 있게 됩니다.