Active Directory의 사용자 기반 서비스 계정 보안

온-프레미스 사용자 계정은 Windows에서 실행되는 서비스를 보호하는 데 도움이 되는 기존의 접근 방식이었습니다. 오늘날에는 gMSA(그룹 관리 서비스 계정) 및 sMSA(독립 실행형 관리 서비스 계정)가 서비스에서 지원되지 않는 경우에만 이러한 계정을 사용합니다. 사용할 계정 유형에 대한 자세한 내용은 온-프레미스 서비스 계정 보호를 참조하세요.

관리 ID 또는 서비스 사용자와 같은 Azure 서비스 계정 서비스를 이동할 수 있는지 조사합니다.

자세히 보기:

온-프레미스 사용자 계정을 만들어서 계정이 로컬 및 네트워크 리소스에 액세스하는 데 사용할 서비스 및 권한에 대한 보안을 제공할 수 있습니다. 온-프레미스 사용자 계정에는 다른 AD(Active Directory) 사용자 계정과 마찬가지로 수동 암호 관리가 필요합니다. 서비스 및 도메인 관리자는 계정을 안전하게 유지하기 위해 강력한 암호 관리 프로세스를 유지해야 합니다.

사용자 계정을 서비스 계정으로 생성하는 경우에는 단일 서비스용으로 사용합니다. 서비스 계정 및 관련 서비스를 명확히 하는 명명 규칙을 사용합니다.

이점 및 과제

온-프레미스 사용자 계정은 다용도 계정 유형입니다. 서비스 계정으로 사용되는 사용자 계정은 사용자 계정을 제어하는 정책에 따라 제어됩니다. MSA를 사용할 수 없는 경우에 사용합니다. 컴퓨터 계정이 더 나은 옵션인지 평가할 필요가 있습니다.

온-프레미스 사용자 계정 사용 문제는 다음 표에 요약되어 있습니다.

과제 완화 방법
암호 관리는 수동이며 보안 및 서비스 가동 중지 시간이 약화됨 - 일반 암호 복잡성과 강력한 암호를 유지하는 프로세스에 의해 변경 내용이 제어되는지 확인
- 서비스 암호로 암호 변경 내용을 조정하여 서비스 가동 중지 시간을 줄이는 데 도움이 됨
서비스 계정인 온-프레미스 사용자 계정을 식별하는 것은 어려울 수 있음 - 사용자 환경에 배포된 서비스 계정 문서화
- 액세스할 수 있는 계정 이름 및 리소스 추적
- 서비스 계정으로 사용되는 사용자 계정에 접두사 svc 추가 고려

서비스 계정으로 사용되는 온-프레미스 사용자 계정 찾기

온-프레미스 사용자 계정은 다른 AD 사용자 계정과 동일합니다. 해당 계정은 찾기 어려울 수 있습니다. 사용자 계정의 특성 중 서비스 계정으로 식별할 수 있는 특성이 없기 때문입니다. 서비스 계정으로 사용하는 사용자 계정에 대한 명명 규칙을 만드는 것이 좋습니다. 예를 들어 서비스 이름 svc-HRDataConnector에 접두사 svc를 추가합니다.

다음 조건 중 일부를 사용하여 서비스 계정을 찾습니다. 단, 이 방식은 다음과 같은 계정을 찾지 못할 수도 있습니다.

  • 위임에 대해 신뢰할 수 있음
  • 서비스 사용자 이름이 있는 계정
  • 만료되지 않도록 설정된 암호가 있는 계정

서비스에 대해 생성된 온-프레미스 사용자 계정을 찾으려면 다음 PowerShell 명령을 실행합니다.

위임용으로 트러스트 된 계정을 찾으려면 다음을 수행합니다.


Get-ADObject -Filter {(msDS-AllowedToDelegateTo -like '*') -or (UserAccountControl -band 0x0080000) -or (UserAccountControl -band 0x1000000)} -prop samAccountName,msDS-AllowedToDelegateTo,servicePrincipalName,userAccountControl | select DistinguishedName,ObjectClass,samAccountName,servicePrincipalName, @{name='DelegationStatus';expression={if($_.UserAccountControl -band 0x80000){'AllServices'}else{'SpecificServices'}}}, @{name='AllowedProtocols';expression={if($_.UserAccountControl -band 0x1000000){'Any'}else{'Kerberos'}}}, @{name='DestinationServices';expression={$_.'msDS-AllowedToDelegateTo'}}

서비스 사용자 이름이 있는 계정을 찾으려면 다음을 수행합니다.


Get-ADUser -Filter * -Properties servicePrincipalName | where {$_.servicePrincipalName -ne $null}

암호가 만료되지 않도록 설정된 계정을 찾으려면 다음을 수행합니다.


Get-ADUser -Filter * -Properties PasswordNeverExpires | where {$_.PasswordNeverExpires -eq $true}

중요한 리소스에 대한 액세스를 감사하고, SIEM(보안 정보 및 이벤트 관리) 시스템에 감사 로그를 보관할 수 있습니다. Azure Log Analytics 또는 Microsoft Sentinel을 사용하여 서비스 계정을 검색하고 분석할 수 있습니다.

온-프레미스 사용자 계정 보안 평가

다음 기준을 사용하여 서비스 계정으로 사용되는 온-프레미스 사용자 계정의 보안을 평가합니다.

  • 암호 관리 정책
  • 권한 있는 그룹의 멤버 자격이 있는 계정
  • 중요한 리소스에 대한 읽기/쓰기 권한

잠재적인 보안 문제 완화

잠재적인 온-프레미스 사용자 계정 보안 문제 및 완화에 대해서는 다음 표를 참조하세요.

보안 문제 완화 방법
암호 관리 - 암호 복잡성 및 암호 변경이 정기적인 업데이트 및 강력한 암호 요구 사항에 의해 제어되는지 확인
- 암호 업데이트를 통해 암호 변경 내용을 조정하여 서비스 가동 중지 시간 최소화
계정이 권한 있는 그룹의 멤버 - 그룹 멤버 자격 검토
- 권한 있는 그룹에서 계정 제거
- 해당 서비스를 실행할 수 있는 계정 권한 및 사용 권한 부여(서비스 공급업체에 문의)
- 예를 들어 로컬 또는 대화형 로그인 거부
계정에 중요한 리소스에 대한 읽기/쓰기 권한이 있음 - 중요한 리소스에 대한 액세스 감사
- SIEM에 감사 로그 보관: Azure Log Analytics 또는 Microsoft Sentinel
- 원치 않는 액세스 수준을 검색하는 경우 리소스 권한 수정

보안 계정 유형

온-프레미스 사용자 계정은 서비스 계정으로 사용하지 않는 것이 좋습니다. 이 계정 유형을 사용하는 서비스의 경우 gMSA 또는 sMSA를 사용하도록 구성될 수 있는지 평가합니다. 또한 서비스를 Azure로 이동하여 더 안전한 계정 유형을 사용할 수 있는지 평가합니다.

다음 단계

서비스 계정을 보호하는 방법에 대한 자세한 내용은 다음을 확인하세요.