Programing

IIS AppPoolIdentity 및 파일 시스템 쓰기 액세스 권한

lottogame 2020. 2. 25. 22:10
반응형

IIS AppPoolIdentity 및 파일 시스템 쓰기 액세스 권한


내가 연구하고 아무데도 가지지 않은 IIS 7.5 및 ASP.NET의 문제가 있습니다. 도움을 주시면 감사하겠습니다.

내 질문은 IIS 7.5에서 ASP.NET을 사용하면 IIS 및 / 또는 운영 체제 C:\dump가 완전히 신뢰할 수있는 상태에서 실행될 때 와 같이 웹 응용 프로그램이 폴더에 쓰는 것을 어떻게 허용 합니까? 응용 프로그램 풀 사용자 (이 경우 ApplicationPoolIdentity) 에 대한 쓰기 액세스 권한을 명시 적으로 추가 할 필요가없는 방법은 무엇입니까?

내가 아는 많은 것 :

  • IIS 7.5에서 응용 프로그램 풀의 기본 아이디는 ApplicationPoolIdentity입니다.
  • ApplicationPoolIdentity "IIS APPPOOL \ AppPoolName"이라는 Windows 사용자 계정을 나타냅니다.이 계정은 응용 프로그램 풀을 만들 때 만들어지며 여기서 AppPoolName은 응용 프로그램 풀의 이름입니다.
  • "IIS APPPOOL \ AppPoolName"사용자는 기본적으로 IIS_IUSRS그룹 의 구성원입니다 .
  • 당신이 완전 신뢰에서 실행하는 경우, 웹 응용 프로그램은 파일 시스템의 여러 분야 (제외 폴더처럼 쓸 수 C:\Users, C:\Windows등). 예를 들어, 응용 프로그램은와 같은 일부 폴더에 쓸 수있는 액세스 권한을 갖습니다 C:\dump.
  • 기본적으로 IIS_IUSRS그룹에는 읽기 또는 쓰기 액세스 권한이 부여되지 않습니다 C:\dump(적어도 Windows 탐색기의 "보안"탭을 통해 볼 수있는 액세스 권한 없음).
  • 에 대한 쓰기 액세스를 거부 IIS_IUSRS하면 예상대로 폴더에 쓰려고 할 때 SecurityException이 발생합니다.

따라서이 모든 것을 고려하면 "IIS APPPOOL \ AppPoolName"사용자에게 쓰기 액세스 권한이 어떻게 부여됩니까? w3wp.exe 프로세스는이 사용자로 실행되므로이 ​​사용자가 명시 적으로 액세스 할 수없는 폴더에 쓸 수있는 것은 무엇입니까?

완전 신뢰 하에서 실행중인 경우 사용자가 작성해야하는 모든 폴더에 대한 액세스 권한을 사용자에게 부여하기가 쉽지 않으므로 편의상이 작업이 수행되었음을 이해합니다. 이 액세스를 제한하려면 언제든지 중간 신뢰에서 응용 프로그램을 실행할 수 있습니다. 명시적인 파일 시스템 액세스 권한이 부여되지 않은 것처럼 보이지만 운영 체제 및 / 또는 IIS에서 이러한 쓰기 작업을 허용하는 방법에 대해 알고 싶습니다.


ApplicationPoolIdentity의 회원 할당 된 Users그룹뿐만 아니라 IIS_IUSRS그룹을. 언뜻보기에 이것은 다소 걱정스러워 보일 수 있지만 Users그룹은 NTFS 권한이 다소 제한되어 있습니다.

예를 들어 폴더에 폴더를 만들려고하면 폴더를 만들 C:\Windows수 없습니다. (가) ApplicationPoolIdentity여전히 윈도우 시스템 폴더에서 파일을 읽을 수 있어야합니다 (그렇지 않으면 어떻게 다른 작업자 프로세스 동적 필수 DLL의로드 할 수있을 것입니다).

c:\dump폴더 에 쓸 수있는 것에 대한 관찰과 관련하여 . 고급 보안 설정에서 권한을 살펴보면 다음과 같은 내용이 표시됩니다.

여기에 이미지 설명을 입력하십시오

다음에서 특별 권한이 상속됨을 참조하십시오 c:\.

여기에 이미지 설명을 입력하십시오

이것이 귀하의 사이트 가 해당 폴더를 ApplicationPoolIdentity읽고 있는 이유 입니다. 그 권리는 c:\드라이브 에서 상속됩니다 .

각각 고유 한 응용 프로그램 풀과 응용 프로그램 풀 ID가있는 수백 개의 사이트가있는 공유 환경에서는 사이트 폴더를 Users그룹이 제거 된 폴더 나 볼륨에 저장하고 관리자와 SYSTEM 계정에 액세스 권한이 있습니다 (상 속됨).

그런 다음 IIS AppPool\[name]사이트 루트 폴더 각각에 필요한 필수 권한을 개별적으로 할당 합니다.

또한 잠재적으로 중요한 파일이나 데이터를 저장하는 위치에 생성 한 모든 폴더에 Users그룹이 제거되어 있는지 확인해야합니다 . 또한 설치하는 모든 응용 프로그램이 c:\program files\[app name]폴더에 중요한 데이터를 저장하지 않고 사용자 프로필 폴더를 대신 사용 하는지 확인해야합니다 .

그렇습니다. 언뜻보기에는 필요한 것 ApplicationPoolIdentity보다 더 많은 권리가 있는 것처럼 보이지만 실제로 그룹 구성원이 지시하는 것보다 더 많은 권리가 없습니다.

ApplicationPoolIdentity의 그룹 구성원은 시스 인 터널을 사용하여 검사 할 수 Explorer의 도구를 처리합니다 . 관심있는 응용 프로그램 풀 ID로 실행중인 작업자 프로세스를 찾으십시오. User Name표시 할 열 목록에 열을 추가 해야합니다.

여기에 이미지 설명을 입력하십시오

예를 들어, 여기 900300에는 Application Pool Identity가 인 풀이 있습니다 IIS APPPOOL\900300. 프로세스의 속성을 마우스 오른쪽 버튼으로 클릭하고 보안 탭을 선택하십시오.

여기에 이미지 설명을 입력하십시오

우리가 볼 수 있듯이 그룹 IIS APPPOOL\900300의 구성원입니다 Users.


  1. 폴더를 마우스 오른쪽 버튼으로 클릭하십시오.

  2. 속성을 클릭하십시오

  3. 보안 탭을 클릭하십시오. 다음과 같은 것을 보게 될 것입니다 :

여기에 이미지 설명을 입력하십시오

  1. 위 화면에서 "편집 ..."버튼을 클릭하십시오. 다음과 같은 것을 보게 될 것입니다 :

여기에 이미지 설명을 입력하십시오

  1. 위 화면에서 "추가 ..."버튼을 클릭하십시오. 다음과 같은 것을 보게 될 것입니다 :

여기에 이미지 설명을 입력하십시오

  1. 위 화면에서 "위치 ..."버튼을 클릭하십시오. 이와 같은 것을 보게 될 것입니다. 이제이 트리 구조의 맨 위로 이동하여 컴퓨터 이름을 선택한 다음 확인을 클릭하십시오.

여기에 이미지 설명을 입력하십시오

  1. Now type "iis apppool\your_apppool_name" and click "Check Names" button. If the apppool exists, you will see your apppool name in the textbox with underline in it. Click OK button.

여기에 이미지 설명을 입력하십시오

  1. Check/uncheck whatever access you need to grant to the account

  2. Click Apply button and then OK.


Each application pool in IIs creates its own secure user folder with FULL read/write permission by default under c:\users. Open up your Users folder and see what application pool folders are there, right click, and check their rights for the application pool virtual account assigned. You should see your application pool account added already with read/write access assigned to its root and subfolders.

따라서 파일 스토리지 액세스 유형이 자동으로 수행되므로 앱 풀 사용자 계정 폴더에 원하는 것을 무엇이든 쓸 수 있어야합니다. 그렇기 때문에 각 응용 프로그램 풀에 대한 가상 사용자 계정이 만들어졌습니다.

참고 URL : https://stackoverflow.com/questions/5437723/iis-apppoolidentity-and-file-system-write-access-permissions



반응형