IIS 7에서 Built-In 사용자 및 그룹 계정 이해
작성자 : Saad Ladki
소개
이전 버전의 IIS에서는 설치하는 동안 IUSR_MachineName 라는 로컬 계정이 만들어집니다. IIS는 익명 인증을 사용하도록 설정할 때마다 기본적으로 IUSR_MachineName 계정을 사용했습니다. FTP 및 HTTP 서비스에서 모두 사용되었습니다.
모든 애플리케이션 풀 ID에 대한 컨테이너로 사용된 IIS_WPG 그룹도 있었습니다. IIS를 설치하는 동안 시스템의 모든 적절한 리소스에 IIS_WPG 그룹에 대한 올바른 사용자 권한이 부여되었으므로 관리자는 새 애플리케이션 풀 계정을 만들 때 해당 그룹에 ID를 추가하기만 하면 됩니다.
이 모델은 잘 작동했지만 단점이 있었습니다: IUSR_MachineName 계정과 IIS_WPG 그룹은 모두 생성된 시스템에 로컬이었습니다. Windows 내의 모든 계정 및 그룹에는 다른 계정과 구별되는 SID(보안 식별자)라는 고유 번호가 제공됩니다. ACL이 만들어지면 SID만 사용됩니다. 이전 버전의 IIS에서 디자인의 일부로 IUSR_MachineName metabase.xml 파일에 포함되어 한 컴퓨터에서 다른 컴퓨터로 metabase.xml 복사하려고 하면 작동하지 않습니다. 다른 컴퓨터의 계정에는 다른 이름이 있습니다.
또한 SID가 컴퓨터와 컴퓨터 간 다르기 때문에 한 컴퓨터에서 다른 컴퓨터로 ACL을 'xcopy /o'할 수 없습니다. 한 가지 해결 방법은 도메인 계정을 사용하는 것이었지만 인프라에 Active Directory를 추가해야 했습니다. IIS_WPG 그룹에는 사용자 권한과 비슷한 문제가 있었습니다. 한 컴퓨터의 파일 시스템에서 IIS_WPG ACL을 설정하고 다른 컴퓨터로 'xcopy /o'를 시도하면 실패합니다. 이 환경은 기본 제공 계정 및 그룹을 사용하여 IIS 7 이상에서 개선되었습니다.
기본 제공 계정 및 그룹은 운영 체제에서 항상 고유한 SID를 갖도록 보장합니다. IIS 7 이상에서는 이를 추가로 수행하여 새 계정 및 그룹에서 사용하는 실제 이름이 지역화되지 않도록 했습니다. 예를 들어 설치하는 Windows 언어에 관계없이 IIS 계정 이름은 항상 IUSR이며 그룹 이름은 IIS_IUSRS.
요약하면 IIS 7 이상에서는 다음을 제공합니다.
- IUSR 기본 제공 계정은 IUSR_MachineName 계정을 대체합니다.
- IIS_IUSRS 기본 제공 그룹은 IIS_WPG 그룹을 대체합니다.
IUSR 계정은 기본 제공 계정이므로 더 이상 암호가 필요하지 않습니다. 논리적으로 NETWORKSERVICE 또는 LOCALSERVICE 계정과 동일하다고 생각할 수 있습니다. 새 IUSR 계정과 IIS_IUSRS 그룹 모두 아래 섹션에서 자세히 설명합니다.
새 IUSR 계정 이해
IUSR 계정은 IIS 7 이상에서 IUSR_MachineName 계정을 대체합니다. Windows Server 2008에 포함된 FTP 6 호환 서버를 설치하는 경우에도 IUSR_MachineName 계정이 만들어지고 사용됩니다. Windows Server 2008에 포함된 FTP 서버를 설치하지 않으면 이 계정이 만들어지지 않습니다.
이 기본 제공 계정에는 암호가 필요하지 않으며 익명 인증을 사용하도록 설정할 때 사용되는 기본 ID가 됩니다. applicationHost.config 파일을 보면 다음 정의가 표시됩니다.
<anonymousAuthentication enabled="true" userName="IUSR" defaultLogonDomain="" />
그러면 IIS에서 모든 익명 인증 요청에 대해 새 기본 제공 계정을 사용하도록 지시합니다. 가장 큰 장점은 다음을 수행할 수 있다는 것입니다.
- Windows Explorer 또는 여러 명령줄 도구를 사용하여 IUSR 계정에 대한 파일 시스템 권한을 설정합니다.
- 이 계정의 암호 만료에 대해 더 이상 걱정할 필요가 없습니다.
- xcopy /o를 사용하여 소유권 및 ACL 정보와 함께 파일을 다른 컴퓨터에 원활하게 복사합니다.
참고
IUSR 계정은 네트워크에서 익명으로 작동하는 방식으로 LOCALSERVICE와 유사합니다. NETWORKSERVICE 및 LOCALSYSTEM 계정은 컴퓨터 ID 역할을 할 수 있지만 IUSR 계정은 사용자 권한 상승이 필요하기 때문에 수행할 수 없습니다. 네트워크에 대한 권한이 있는 익명 계정이 필요한 경우 익명 인증을 위해 과거와 마찬가지로 새 사용자 계정을 만들고 사용자 이름과 암호를 수동으로 설정해야 합니다.
IIS 관리자를 사용하여 네트워크에 익명 계정 권한을 부여하려면 다음을 수행합니다.
- 시작을 클릭하고 INetMgr.exe입력한 다음 Enter 키를 클릭합니다. 메시지가 표시되면 계속 을 클릭하여 권한을 상승합니다.
- 연결 섹션에서 컴퓨터 이름 옆에 있는 단추를 클릭합니다+.
- IIS 관리자에서 관리하려는 사이트를 두 번 클릭합니다.
- 기능 보기에서 인증을 두 번 클릭합니다.
- 익명 인증을 선택한 다음 작업 창에서 편집을 클릭합니다.
- 익명 인증 자격 증명 편집 대화 상자에서 특정 사용자 옵션을 클릭한 다음 설정을 클릭합니다.
- 자격 증명 설정 대화 상자에서 원하는 사용자 이름과 암호를 입력한 다음 확인을 클릭합니다.
새 IIS_IUSRS 그룹 이해
IIS_IUSRS 그룹은 IIS_WPG 그룹을 대체합니다. 이 기본 제공 그룹은 이 그룹에 추가된 계정이 애플리케이션 풀 ID로 원활하게 작동할 수 있도록 필요한 모든 파일 및 시스템 리소스에 액세스할 수 있습니다.
기본 제공 계정과 마찬가지로 이 기본 제공 그룹은 여러 xcopy 배포 장애물을 해결합니다. IIS_WPG 그룹(IIS 6.0 시스템에서 사용 가능)에 대한 파일에 대한 권한을 설정하고 해당 파일을 다른 Windows 컴퓨터에 복사하려고 하면 그룹의 SID가 컴퓨터 간에 다르며 사이트의 구성이 끊어집니다.
IIS 7 이상의 그룹 SID는 Windows Server 2008을 실행하는 모든 시스템에서 동일하므로 컴퓨터에서 컴퓨터로 파일을 이동할 때 'xcopy /o'를 사용하여 ACL 및 소유권 정보를 유지할 수 있습니다. 이렇게 하면 xcopy 배포를 쉽게 수행할 수 있습니다.
또한 IIS 7 이상에서는 애플리케이션 풀 ID를 구성하고 필요한 모든 변경 내용을 더 쉽게 변경할 수 있습니다. IIS가 작업자 프로세스를 시작하면 프로세스에서 사용할 토큰을 만들어야 합니다. 이 토큰이 만들어지면 IIS는 런타임에 작업자 프로세스 토큰에 IIS_IUSRS 멤버 자격을 자동으로 추가합니다. '애플리케이션 풀 ID'로 실행되는 계정은 더 이상 IIS_IUSRS 그룹의 명시적 부분이 될 필요가 없습니다. 이러한 변경은 장애물이 적은 시스템을 설정하는 데 도움이 되며 전반적인 환경을 보다 유리하게 만듭니다.
이 기능을 사용하지 않도록 설정하고 IIS_IUSRS 그룹에 계정을 수동으로 추가하려면 manualGroupMembership 값을 'true'로 설정하여 이 새 기능을 사용하지 않도록 설정합니다. 다음 예제에서는 defaultAppPool에 대해 이 작업을 수행하는 방법을 보여줍니다.
<applicationPools>
<add name="DefaultAppPool">
<processModel manualGroupMembership="true" />
</add>
</applicationPools >