NFS 파일 공유에 대한 권한은 Azure Files 서비스가 아닌 클라이언트 OS에 의해 적용됩니다. 루트 Squash는 NFS의 관리 보안 기능으로, 클라이언트 컴퓨터가 NFS 서버에 대한 허가되지 않은 루트 수준 액세스를 방지합니다. 이 기능은 신뢰할 수 없거나 손상된 클라이언트가 사용자 데이터와 시스템 설정을 조작하는 것을 방지하는 데 중요한 부분입니다.
관리자는 여러 사용자 또는 시스템이 NFS 공유에 액세스하는 환경, 특히 클라이언트 컴퓨터를 완전히 신뢰할 수 없는 시나리오에서 루트 Squash를 사용하도록 설정해야 합니다. 루트 사용자를 익명 사용자로 변환함으로써 루트 Squash는 클라이언트 컴퓨터가 손상되더라도 공격자가 루트 권한을 악용하여 NFS 서버의 중요한 파일에 액세스하거나 수정할 수 없도록 보장합니다.
이 문서에서는 NFS Azure 파일 공유에 대한 루트 Squash 설정을 구성하고 변경하는 방법을 알아봅니다.
적용 대상
파일 공유 유형
SMB
NFS
표준 파일 공유(GPv2), LRS/ZRS
표준 파일 공유(GPv2), GRS/GZRS
프리미엄 파일 공유(FileStorage), LRS/ZRS
Azure Files에서 루트 Squash가 작동하는 방식
루트 Squash는 루트 사용자의 UID(사용자 ID) 및 GID(그룹 ID)를 서버의 익명 사용자에 속한 UID와 GID로 다시 매핑하여 작동합니다. 파일 시스템에 액세스하는 루트 사용자는 자동으로 제한된 권한을 가진 익명의 낮은 권한 사용자/그룹으로 전환됩니다.
루트 Squash는 NFS의 기본 동작이지만 NFS Azure 파일 공유를 만들 때의 기본 옵션은 아닙니다. 파일 공유에서 루트 squash를 명시적으로 사용하도록 설정해야 합니다. NFS Azure 파일 공유를 만들 때나 나중에 이 작업을 수행할 수 있습니다.
루트 Squash 설정
세 가지 루트 Squash 설정 중에서 선택할 수 있습니다.
루트 Squash 안 함: 루트 Squash를 끕니다. 이 옵션은 주로 워크로드 설명서에 지정된 대로 디스크 없는 클라이언트나 워크로드에 유용합니다. 이는 새 NFS Azure 파일 공유를 만들 때의 기본 설정입니다.
모든 Squash: 모든 UID와 GID를 익명 사용자에게 매핑합니다. 모든 클라이언트에게 읽기 전용 액세스 권한을 요구하는 공유에 유용합니다.
루트 Squash: UID/GID 0(루트)의 요청을 익명 UID/GID로 매핑합니다. 이는 사용자 bin이나 그룹 담당자 등 똑같이 중요할 수 있는 다른 UID나 GID에는 적용되지 않습니다.
다음 표는 특정 루트 Squash 옵션이 구성될 때 서버에서 관찰되는 UID 동작을 강조 표시하여 보여 줍니다.
옵션
클라이언트 UID
서버 UID
root_squash
0
65534
root_squash
1000
1000
no_root_squash
0
0
no_root_squash
1000
1000
all_squash
0
65534
all_squash
1000
65534
기존 NFS 파일 공유에서 루트 Squash 구성
Azure Portal, Azure PowerShell 또는 Azure CLI를 통해 루트 Squash 설정을 구성할 수 있습니다.