
Windows Server 2012 R2에서 IIS는 일반적인 조건에서 웹 서버로 실행됩니다. 그러나 웹 콘텐츠는 다른 폴더에서 가져온 것이 아니라 c:\inetpub\wwwroot\
다른 폴더에서 가져온 것입니다. 웹 애플리케이션은 defaultAppPool의 자체 사용자로 계속 실행 중입니다.
IIS_IUSRS
실제로 웹 콘텐츠 폴더에 대한 읽기/실행 권한을 부여하는 것을 잊어버렸습니다 . 그래도 폴더에 액세스 권한이 부여되었습니다 users
. IIS_IUSRS
하위 폴더에 쓰기가 가능해야 하는 경우 에만 읽기/실행/쓰기 권한을 추가했습니다 .
보안을 조금 강화하고 싶어서 웹 콘텐츠 폴더의 접근 권한을 살펴봤고, 시행착오를 통해 이제 에 대한 접근 권한이 없어졌고, 모든 것을 담당하는 그룹 IIS_IUSRS
에 대한 접근 권한이 계속 작동한다는 것을 알게 되었습니다. 그룹 users
에 대한 액세스 권한을 제거하면 users
애플리케이션 작동이 중지되기 때문입니다.
users
다른 계정/그룹에 대한 액세스 권한을 부여하려고 시도한 결과 두 계정에 대한 액세스 권한을 부여 하고 IIS_IUSRS
개별적으로 내 애플리케이션이 실행된다는 사실을 알게 되었습니다 . 액세스 권한을 부여하는 것은 IIS APPPOOL\
그렇지 않습니다. 하지만 내 특정 응용 프로그램 풀 사용자(EG IISAPPPOOL\nl-x-homepage
)에게 액세스 권한을 부여하면 됩니다. 그리고 이 마지막 부분은 제가 원하는 것입니다. 한 응용 프로그램이 다른 응용 프로그램의 파일에 액세스하는 것을 원하지 않기 때문입니다.
그런데 궁금하네요... IIS와 같은 계정은 정확히 어떻게 작동하나요? users
웹 콘텐츠 폴더에 액세스하기 위해 내 응용 프로그램 풀에 대한 액세스 권한 부여가 작동하는 이유는 무엇입니까 ? lusrmgr에서 내 특정 응용 프로그램 풀 사용자를 볼 수 없지만 내 특정 응용 프로그램 풀 사용자가 users
그룹에 있거나 그룹에 속한 다른 그룹에 있는 것 같습니다 users
. 누구든지 이것을 확인할 수 있습니까?
이 문제에 대한 마지막 질문으로 특정 폴더를 '비밀번호로 보호'하기 위해 Windows에서 일반 사용자를 생성하고 해당 사용자를 그룹에서 제거한 users
다음 IIS 관리자에서 해당 폴더로 이동하여 인증 -> 기본 인증을 수행했습니다. > 활성화됨을 선택하고 인증 규칙에서 새로 생성된 Windows 사용자 계정에 대해 허용 규칙을 설정했습니다. 이것은 작동합니다. 그러나 읽기/쓰기 액세스를 분석해 보면 응용 프로그램이 응용 프로그램 풀 사용자로 실행되고 있음에도 불구하고 응용 프로그램 풀 사용자에게는 읽기 권한만 필요하고(쓰기 권한은 없음) 새로 생성된 Windows 사용자에게는 읽기 및 쓰기 권한이 모두 필요하다는 사실에 놀랐습니다. 폴더에 쓸 수 있으려면 그 위에 쓰기 권한이 있어야 합니다. 이것이 왜 이런 식으로 작동하는지 설명하는 데 도움을 줄 수 있습니까?
답변1
당신이 직면하고 있는 행동은 나에게 매우 논리적인 것 같습니다.
IIS_IUSRS는 계정이 아닌 그룹으로, 해당 구성원을 앱 풀 ID로 할당할 수 있도록 하는 것이 유일한 목적이므로 자체적으로 추가하는 것만으로는 충분하지 않습니다.
사용자 그룹에는 웹 사이트가 작동하는 데 충분한 권한이 있는 ASPNET 계정이 포함되어 있으므로 이를 추가하면 기본 권한에 충분합니다. 저는 ASPNET 계정이 DefaultAppPool로 사용되는 계정이라고 생각합니다.
사용자가 만든 파일이나 폴더는 작성자가 소유자이고 모든 권한을 가지므로 항상 읽기 권한을 갖습니다. 다른 사용자가 파일이나 폴더를 생성한 경우 읽기 권한 없이 쓰기 권한만 부여하면 Windows에서는 작동하지 않습니다. 쓰기 전에 권한과 사용 가능한 공간 등을 확인하려면 읽기 액세스가 필요하기 때문입니다.
답변2
IIS_IUSRS는 IIS 작업자 프로세스 계정 그룹입니다. 이 기본 제공 그룹은 필요한 모든 파일 및 시스템 리소스에 액세스할 수 있으므로 계정이 이 그룹에 추가되면 원활하게 응용 프로그램 풀 ID 역할을 할 수 있습니다.
도메인을 마우스 오른쪽 버튼으로 클릭하고 권한 편집을 열면 나열된 그룹 및 권한이 표시됩니다. 보안 탭 아래에 MACHINE_NAME\IIS_IUSRS와 /Users도 표시됩니다. IIS는 자동으로 디렉터리에 대한 읽기 전용 권한을 갖습니다.
생성하는 모든 응용 프로그램 풀에 대해 새 응용 프로그램 풀의 ID 속성은 기본적으로 ApplicationPoolIdentity로 설정됩니다. IIS 관리 프로세스(WAS)는 새 응용 프로그램 풀의 이름으로 가상 계정을 만들고 기본적으로 이 계정으로 응용 프로그램 풀의 작업자 프로세스를 실행합니다. 새 응용 프로그램 풀이 만들어질 때마다 IIS 관리 프로세스는 응용 프로그램 풀 자체의 이름을 나타내는 SID(보안 식별자)를 만듭니다. 예를 들어 "MyFirstPool"이라는 이름의 응용 프로그램 풀을 만드는 경우 "MyFirstPool"이라는 이름의 보안 식별자가 Windows 보안 시스템에 생성됩니다. 이 시점부터 이 ID를 사용하여 리소스를 보호할 수 있습니다.그러나 해당 ID는 실제 사용자 계정이 아닙니다. Windows 사용자 관리 콘솔에는 사용자로 표시되지 않습니다.. 이는 정상적인 동작입니다. 특정 폴더에 대한 액세스를 제공하려면 권한을 편집하여 폴더에 추가하면 됩니다. 그러나 기본 인증 구성(익명 ID)을 확인하고 적절한 선택이 가능한지 확인하거나 액세스 오류가 발생하지 않도록 구성해야 합니다.
이 게시물나머지 질문을 다룹니다. 계승.
분명히 여기에 추가하는 Windows 사용자는 계정이 필요한 그룹으로부터 권한을 상속해야 하므로 권한이 필요합니다. 여기에서 읽기 권한이 중요합니다. 그러나 이는 로컬 리소스에 액세스하기 위한 것입니다.