리소스 보안

Windows Installer가 서비스, 파일, 만든 폴더 및 레지스트리 항목에 대한 액세스 권한을 설정하는 기능은 설치 애플리케이션을 보다 안전하게 만드는 데 도움이 될 수 있습니다. MsiLockPermissionsEx 또는 LockPermissions 테이블을 사용하여 리소스를 보호하는 것은 권장되는 보안 설치 작성 지침 중 하나입니다. MsiLockPermissionsEx 테이블을 사용하면 패키지 작성자가 사용자 지정 작업을 작성하지 않고도 리소스를 보호할 수 있습니다.

Windows Installer 5.0용으로 개발된 패키지부터 MsiLockPermissionsEx 테이블은 LockPermissions 테이블의 사용을 대체해야 합니다. MsiLockPermissionsEx 테이블에서 제공하는 확장된 기능을 사용하면 패키지가 Windows 서비스, 파일, 폴더 및 레지스트리 키를 보호할 수 있습니다. 패키지에는 MsiLockPermissionsEx 및 LockPermissions는 둘 다 포함되어서는 안 됩니다.

Windows Installer 4.5 이하에서는 MsiLockPermissionsEx 테이블을 무시합니다. Windows Installer 5.0부터 패키지에 LockPermissions 테이블과 MsiLockPermissionsEx 테이블이 모두 포함된 경우 1941 오류 메시지와 함께 설치가 실패합니다. LockPermissions 테이블만 포함하는 기존 설치 패키지는 Windows Installer 5.0을 사용하여 계속 설치할 수 있습니다.

Windows Installer 5.0은 InstallFiles, InstallServices, WriteRegistryValuesCreateFolders 표준 작업을 실행할 때 MsiLockPermissionsEx 테이블의 정보를 처리합니다. 보안을 유지하려면 보안 개체를 설치하거나 다시 설치해야 하며 해당 개체를 다시 설치하지 않고 기존 개체에 ACL(액세스 제어 목록)을 추가할 수 없습니다.

보호될 서비스, 파일, 디렉터리 또는 레지스트리 키를 지정하려면 MsiLockPermissionsEx 테이블의 LockObject 및 테이블 필드에 식별 정보를 입력합니다. 개체는 ServiceInstall 테이블, 파일 테이블, 레지스트리 테이블 또는 CreateFolder 테이블의 기본 키로 식별됩니다.

지정한 권한이 개체에 적용되도록 요청하려면 유효한 SDDL(보안 설명자 정의 언어)을 사용하여 MsiLockPermissionsEx 테이블의 SDDLText 필드에 유효한 보안 설명자 문자열을 입력합니다. MsiLockPermissionsEx 테이블은 사용 권한을 거부하거나, 부모 리소스의 사용 권한 상속을 지정하거나, 새 계정의 사용 권한을 지정하는 보안 설명자를 지정할 수 있습니다. 부여, 거부 또는 상속될 수 있는 모든 권한 목록은 ACE 문자열을 참조하세요. Windows Installer 5.0은 사용 가능한 SID(보안 식별자) 집합을 확장합니다. 유효한 SID 목록은 SID 문자열을 참조하세요.

참고

부모 리소스의 보안 설명자를 구성하여 자식 개체에서 권한을 상속하도록 지정하려면 설치 관리자가 자식 개체를 만들기 전에 부모 리소스에 권한을 적용해야 합니다. 부모 리소스에 상속 가능한 권한을 적용하기 전에 설치 관리자가 자식 개체를 만드는 경우 부모 리소스의 사용 권한은 자식 개체에 전파되지 않습니다.

Windows Installer 5.0부터 FormattedSDDLText 데이터 형식은 서식 있는 데이터 형식을 확장합니다. Windows Installer는 MsiLockPermissionsEx 테이블의 SDDLText 열에 입력된 FormattedSDDLText 문자열이 보안 설명자 문자열 형식을 준수하는지 확인합니다.

Windows Installer 4.5 이전 버전에서는 지원되지 않습니다. MsiLockPermissionsEx 테이블 및 FormattedSDDLText 데이터 형식은 Windows Installer 5.0부터 사용할 수 있습니다.