Windows PowerShell에서 스크립트에 디지털 서명
프로덕션 환경에서 Windows PowerShell 스크립트를 사용하는 경우 해당 스크립트가 테스트되었는지 확인하는 승인 프로세스가 있어야 합니다. 승인 프로세스는 조직의 규모와 관료 체계 수준에 따라 달라지지만 몇 가지 승인 프로세스가 있어야 합니다.
프로덕션 환경에서 사용되는 스크립트에 대한 승인 프로세스를 공식화하는 한 가지 방법은 스크립트에 디지털 방식으로 서명하고 AllSigned 스크립트 실행 정책을 사용하는 것입니다. 이 정책을 구현할 때 수정된 스크립트는 새 디지털 서명으로 업데이트해야 합니다. 이렇게 하면 관리자 또는 다른 직원이 임의 스크립트를 변경할 수 없습니다. 예를 들어 조직에 AD DS(Active Directory Domain Services) 사용자를 관리하기 위해 승인된 스크립트 집합이 있는 경우 이 구성은 기술 지원팀 직원이 의도적으로 또는 실수로 스크립트를 수정할 수 없습니다.
스크립트에 디지털 서명을 추가하려면 스크립트를 실행할 모든 컴퓨터에서 신뢰할 수 있는 코드 서명 인증서가 있어야 합니다. 공용 인증 기관에서 신뢰할 수 있는 코드 서명 인증서를 가져올 수 있습니다. 컴퓨터에서 신뢰하는 내부 인증 기관에서 코드 서명 인증서를 가져올 수도 있습니다.
다음 코드와 같이 Set-AuthenticodeSignature cmdlet을 사용하여 디지털 서명을 추가합니다.
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My" -CodeSigningCert
Set-AuthenticodeSignature -FilePath "C:\Scripts\MyScript.ps1" -Certificate $cert