LDAP 옵션을 사용하여 로컬 NFS 사용자 허용 이해 Azure NetApp Files에서 LDAP를 사용하여 이름 매핑 이해
사용자가 NFS를 통해 Azure NetApp Files 볼륨에 액세스하려고 하면 요청이 숫자 ID로 제공됩니다. 기본적으로 Azure NetApp Files는 NFS 사용자에 대한 확장된 그룹 멤버 자격을 지원합니다(표준 16개 그룹 제한을 초과). 결과적으로 Azure NetApp 파일은 해당 숫자 ID를 가져와서 RPC 패킷에서 그룹 멤버 자격을 전달하는 대신 사용자에 대한 그룹 멤버 자격을 확인하기 위해 LDAP(경량 디렉터리 액세스 프로토콜) 에서 조회하려고 시도합니다. 이 동작으로 인해 LDAP에서 사용자에게 해당 숫자 ID를 확인할 수 없는 경우 조회가 실패하고 액세스가 거부됩니다. 이 거부는 요청하는 사용자에게 볼륨 또는 데이터 구조에 액세스할 수 있는 권한이 있는 경우에도 발생합니다.
Active Directory 연결에서 LDAP를 사용하여 로컬 NFS 사용자 허용 옵션은 확장된 그룹 기능을 사용하지 않도록 설정하여 NFS 요청에 대해 이러한 LDAP 조회를 사용하지 않도록 설정하기 위한 것입니다. Azure NetApp Files 내에서는 "로컬 사용자 만들기/관리"를 제공하지 않습니다.
"LDAP를 사용하여 로컬 NFS 사용자 허용" 옵션을 사용하도록 설정하면 숫자 ID가 Azure NetApp Files에 전달되고 LDAP 조회가 발생하지 않습니다. 이렇게 하면 아래와 같이 다양한 시나리오에 대해 다양한 동작이 생성됩니다.
UNIX 보안 스타일 볼륨이 있는 NFSv3
숫자 ID는 사용자 이름으로 변환할 필요가 없습니다. "LDAP를 사용하여 로컬 NFS 사용자 허용" 옵션은 볼륨에 대한 액세스에 영향을 주지 않습니다. 사용자/그룹 소유권(이름 변환)이 NFS 클라이언트에 표시되는 방식에 영향을 줄 수 있습니다. 예를 들어 숫자 ID 1001이 LDAP의 user1이지만 NFS 클라이언트의 로컬 passwd 파일의 user2인 경우 숫자 ID가 1001일 때 클라이언트는 파일의 소유자로 "user2"를 표시합니다.
UNIX 보안 스타일 볼륨이 있는 NFSv4.1
숫자 ID는 사용자 이름으로 변환할 필요가 없습니다. 기본적으로 NFSv4.1은 인증에 이름 문자열(user@CONTOSO.COM)을 사용합니다. 그러나 Azure NetApp Files는 NFSV4.1에서 숫자 ID를 사용하도록 지원합니다. 즉, NFSv4.1 요청이 숫자 ID를 사용하여 NFS 서버에 도착합니다. Azure NetApp Files 볼륨에 대한 LDAP와 같은 로컬 파일 또는 이름 서비스에 사용자 이름 변환에 숫자 ID가 없으면 해당 숫자가 클라이언트에 표시됩니다. 숫자 ID가 사용자 이름으로 변환되는 경우 이름 문자열이 사용됩니다. 이름 문자열이 일치하지 않으면 클라이언트는 클라이언트의 idmapd.conf 파일에 지정된 익명 사용자로 이름을 스쿼시합니다. "LDAP를 사용하여 로컬 NFS 사용자 허용" 옵션을 사용하도록 설정해도 NFSv4.1 액세스에는 영향을 주지 않습니다. Azure NetApp Files가 로컬 NFS 사용자 데이터베이스의 사용자 이름으로 숫자 ID를 확인할 수 없는 한 Access는 표준 NFSv3 동작으로 돌아갑니다. Azure NetApp Files에는 일부 클라이언트에 문제가 될 수 있는 기본 UNIX 사용자 집합이 있으며 도메인 ID 문자열이 일치하지 않는 경우 "아무도" 사용자로 스쿼시할 수 있습니다.
- 로컬 사용자는 루트(0), pcuser(65534), 아무도(65535)를 포함합니다.
- 로컬 그룹에는 루트(0), 디먼(1), pcuser(65534), 아무도(65535)가 포함됩니다.
가장 일반적으로 루트는 NFSv4.1 도메인 ID가 잘못 구성된 경우 NFSv4.1 클라이언트 탑재에서 잘못 표시할 수 있습니다. NFSv4.1 ID 도메인에 대한 자세한 내용은 Azure NetApp Files에 대한 NFSv4.1 ID 도메인 구성을 참조 하세요.
NFSv4.1 ACL은 이름 문자열 또는 숫자 ID를 사용하여 구성할 수 있습니다. 숫자 ID를 사용하는 경우 이름 변환이 필요하지 않습니다. 이름 문자열을 사용하는 경우 적절한 ACL 확인을 위해 이름 변환이 필요합니다. NFSv4.1 ACL을 사용하는 경우 "LDAP를 사용하여 로컬 NFS 사용자 허용"을 사용하도록 설정하면 ACL 구성에 따라 잘못된 NFSv4.1 ACL 동작이 발생할 수 있습니다.
이중 프로토콜 구성에서 NTFS 보안 스타일 볼륨이 있는 NFS(NFSv3 및 NFSv4.1)
UNIX 보안 스타일 볼륨은 UNIX 스타일 권한(모드 비트 및 NFSv4.1 ACL)을 활용합니다. 이러한 유형의 볼륨에 대해 NFS는 위에 나열된 시나리오에 따라 숫자 ID 또는 이름 문자열을 활용하는 UNIX 스타일 인증만 활용합니다.
그러나 NTFS 보안 스타일 볼륨은 NTFS 스타일 권한을 사용합니다. 이러한 권한은 Windows 사용자 및 그룹을 사용하여 할당됩니다. NFS 사용자가 NTFS 스타일 권한이 있는 볼륨에 액세스하려고 하면 적절한 액세스 제어를 보장하기 위해 UNIX-Windows 이름 매핑이 발생해야 합니다. 이 시나리오에서는 NFS 숫자 ID가 여전히 Azure NetApp Files NFS 볼륨에 전달되지만 초기 인증을 위해 Windows 사용자 이름에 매핑될 수 있도록 숫자 ID를 UNIX 사용자 이름으로 변환해야 합니다. 예를 들어 숫자 ID 1001이 Windows 사용자 "user1"에 대한 액세스를 허용하는 NTFS 보안 스타일 권한으로 NFS 탑재에 액세스하려고 하면 LDAP에서 1001을 "user1" 사용자 이름으로 확인하여 예상된 액세스 권한을 얻어야 합니다. 숫자 ID가 "1001"인 사용자가 LDAP에 없거나 LDAP가 잘못 구성된 경우 UNIX에서 Windows로의 이름 매핑이 시도를 1001@contoso.com완료합니다. 대부분의 경우 해당 이름을 가진 사용자가 존재하지 않습니다. 따라서 인증이 실패하고 액세스가 거부됩니다. 마찬가지로 숫자 ID 1001이 잘못된 사용자 이름(예: user2)으로 확인되면 NFS 요청이 잘못된 Windows 사용자에게 매핑됩니다(이 시나리오에서는 user1이 user2에 대한 액세스 권한을 부여합니다).
"LDAP를 사용하여 로컬 NFS 사용자 허용"을 사용하도록 설정하면 숫자 ID의 모든 LDAP 변환을 사용자 이름으로 사용할 수 없습니다. 이 작업은 NTFS 보안 스타일 볼륨에 대한 액세스를 효과적으로 중단합니다. 따라서 NTFS 보안 스타일 볼륨에서 이 옵션을 사용하지 않는 것이 좋습니다.