Computer >> 컴퓨터 >  >> 체계 >> Windows Server

Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

관리 서비스 계정 (MSA )은 서비스, 응용 프로그램 및 예약된 작업을 안전하게 실행하는 데 사용할 수 있는 특수한 유형의 Active Directory 계정입니다. 기본 아이디어는 이러한 계정의 암호가 Active Directory에서 완전히 관리된다는 것입니다. 길이가 240자인 복잡한 비밀번호가 자동으로 생성되며 자동으로 변경됩니다(기본적으로 30일마다). Kerberos만 인증에 사용되며(NTLM 보안 문제 없음), 대화형 로그온이 허용되지 않으며, 암호는 누구에게도 알려져 있지 않으며 로컬 시스템에 저장되지 않습니다(mimikatz 또는 이와 유사한 것으로 LSASS 시스템 프로세스에서 암호를 추출할 수 없습니다. 도구). 이렇게 하면 서비스 또는 무인 작업을 시작하기 위해 AD에서 개별 서비스 사용자를 만들고 암호를 관리할 필요가 없습니다.

관리 서비스 계정 Windows Server 2008 R2(개체 유형 msDS-ManagedServiceAccount ). 주요 제한 사항은 이러한 계정을 하나의 서버에서만 사용할 수 있다는 것입니다(클러스터 및 NLB 서비스에서는 사용할 수 없음). 따라서 Windows Server 2012는 그룹 관리 서비스 계정/gMSA(유형 msDS-GroupManagedServiceAccount ). gMSA 계정은 여러 호스트에서 동시에 사용할 수 있습니다.

MSA 및 gMSA를 사용하여 Active Directory의 서버 및 워크스테이션에서 서비스 및 작업을 시작하는 기능을 살펴보겠습니다.

MSA/gMSA 서비스 계정 사용을 위한 요구 사항:

관리 서비스 계정 그룹 관리 서비스 계정
AD 도메인 및 포리스트 기능 수준 Windows Server 2008 R2 이상 Windows Server 2012 이상
KDC Microsoft 키 배포 서비스(KdsSvc)가 활성화된 도메인 컨트롤러
파워쉘 서비스 AD 계정을 만들고 관리하려면 Windows PowerShell용 Active Directory 모듈을 설치해야 합니다.
.Net 프레임워크 .NET Framework 3.5 이상이 서버에 설치되어 있어야 합니다.
지원되는 Windows 버전 Windows 7/Windows Server 2008 R2 이상 Windows Server 2012/Windows 8 이상

키 배포 서비스(KDS) 키 생성

MSA/gMSA 계정 만들기를 시작하기 전에 일회성 작업을 수행하고 KDS 루트 키를 만들어야 합니다. 이를 수행하려면 도메인 컨트롤러에서 다음 PowerShell 명령을 실행합니다(Microsoft Key Distribution Services가 설치되어 실행 중이어야 함).

Add-KdsRootKey –EffectiveImmediately

이 경우 키가 생성되어 AD 복제가 끝난 후 10시간 이내에 사용 가능하게 됩니다.

팁. 테스트 환경에서 키를 즉시 사용하려면 다음 명령을 실행할 수 있습니다.
Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))

KDS 루트 키가 성공적으로 생성되었는지 확인합니다.
Get-KdsRootKey
Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

다음 명령을 사용하여 KDS 키를 확인하십시오.

Test-KdsRootKey -KeyId (Get-KdsRootKey).KeyId

Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

Active Directory에서 관리되는 MSA 계정을 만드는 방법

AD에서 새 MSA 관리 계정을 만들려면 다음 명령을 사용하세요.

New-ADServiceAccount -Name msaMunSrv1 –RestrictToSingleComputer

기본적으로 MSA 및 gMSA는 CN=관리되는 서비스 계정 컨테이너에 생성됩니다. 하지만 경로를 사용하여 OU를 변경할 수 있습니다. 매개변수.

MSA 서비스 계정을 대상 컴퓨터에 연결:

$Identity = Get-ADComputer -identity mun-srv01
Add-ADComputerServiceAccount -Identity $identity -ServiceAccount msaMunSrv1

참고로 하나의 AD 호스트에서만 MSA 계정을 사용할 수 있습니다.

ADUC(Active Directory 사용자 및 컴퓨터) 콘솔을 열고 msDS-ManagedServiceAccount 유형의 새 계정이 관리되는 서비스 계정에 나타나는지 확인합니다. 컨테이너(OU).

Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

이 AD 컨테이너는 기본적으로 숨겨져 있습니다. 이를 보려면 고급 기능 을 활성화하십시오. 보기 에서 스냅인 메뉴입니다.

다음 명령을 사용하여 MSA 계정 정보를 얻을 수 있습니다.

Get-ADServiceAccount msaMunSrv1

Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

Active Directory에서 그룹 관리 서비스 계정(gMSA) 만들기

gMSA 계정을 만들기 전에 도메인 보안 그룹을 만들고 이 그룹 서비스 계정의 암호를 사용할 수 있는 서버를 여기에 추가합니다. 그룹을 만들고 채우는 가장 쉬운 방법은 PowerShell을 사용하는 것입니다.
New-ADGroup grMunSQL1 -path 'OU=Groups,OU=Munich,OU=DE,dc=woshub,DC=com' -GroupScope Global -PassThru –Verbose
Add-AdGroupMember -Identity grMunSQL1 -Members mun-sql01$, mun-sql02$, mun-sql03$

Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

그룹 관리 서비스 계정(gMSA)을 만들려면 다음 명령을 사용하십시오.

New-ADServiceAccount -name gmsaMunSQL1 -DNSHostName gmsaMunSQL1.woshub.com -PrincipalsAllowedToRetrieveManagedPassword grMunSQL1 –verbose

Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

gMSA 계정은 관리 서비스 계정 OU에서도 기본적으로 생성됩니다.

Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

Windows에 그룹 관리 서비스 계정 설치

대상 서버 또는 워크스테이션에서 MSA/gMSA 서비스 계정을 사용하려면 먼저 Active Directory PowerShell 모듈을 설치해야 합니다.

Add-WindowsFeature RSAT-AD-PowerShell

서버에 MSA(gMSA) 서비스 계정 설치:

Install-ADServiceAccount -Identity gmsaMunSQL1

서비스 계정이 올바르게 설치되었는지 확인하십시오.

Test-ADServiceAccount gmsaMunSQL1

명령이 True를 반환하는 경우 , 모든 것이 올바르게 구성되었습니다.

Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

명령이 False를 반환하는 경우 , 대부분 MSA 계정이 서버에 설치되어 있지 않거나 이 컴퓨터에 사용 권한이 없습니다.

Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

WARNING: Test failed for Managed Service Account gmsaMunSQL1. If standalone Managed Service Account, the account is linked to another computer object in the Active Directory. If group Managed Service Account, either this computer does not have permission to use the group MSA or this computer does not support all the Kerberos encryption types required for the gMSA.

표준 RunAs를 사용하여 서비스와 스크립트가 MSA 서비스 계정에서 실행될 수 있는지 확인할 수 없습니다. 대신 PsExec 도구를 사용하십시오(이전에 psexec를 사용하여 NT Authority\System 대신 명령 프롬프트를 실행하는 방법을 보여주었습니다).

  1. 관리자 권한으로 명령 프롬프트를 엽니다.
  2. 명령 실행:PsExec64.exe -i -u woshub\gmsaMunSQL1$ -p ~ cmd.exe 비밀번호를 ~으로 바꾸세요. . 이는 암호를 AD에서 얻어야 함을 의미합니다.
  3. 열린 cmd 창에서 whoami를 실행합니다. 콘솔이 gMSA 계정으로 실행 중인지 확인하는 명령 Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용
  4. 관리 서비스 계정에서 스크립트, 프로그램 또는 서비스가 올바르게 실행되고 있는지 확인합니다.

이제 MSA/gMSA 사용자로 실행하기 위해 필요한 Windows 서비스, 작업 스케줄러 작업, IIS 풀 등을 구성하는 일만 남았습니다.

관리 서비스 계정으로 Windows 서비스를 실행하는 방법

이제 MSA/gMSA 계정에서 실행되도록 필요한 Windows 서비스를 구성할 수 있습니다.

  1. 서비스 관리 콘솔(services.msc );
  2. 필요한 서비스의 속성을 열고 "로그온 " 탭;
  3. 이 계정 선택 옵션을 선택하고 MSA 계정의 이름을 입력합니다. $를 추가해야 합니다. 계정 이름 끝에 있는 기호(계정 비밀번호를 입력할 필요 없음)
  4. MSA 서비스 계정에는 서비스로 로그온이 자동으로 부여됩니다. 권한; Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용
  5. 변경 사항을 저장한 후 서비스를 다시 시작해야 합니다.
gMSA로 복잡한 서비스를 실행하려면 설명서에서 지원되는지 확인하세요. 현재 gMSA는 SQL Server, IIS, AD LDS, Exchange Server에서 지원됩니다.

관리 서비스 계정/gMSA로 예약된 작업 실행

gMSA 서비스 계정으로 작업을 실행하도록 Windows 작업 스케줄러를 구성할 수 있습니다. gMSA 계정의 비밀번호는 스크립트에 저장되지 않고 암호화하거나 보호할 필요가 없기 때문에 편리합니다. 비밀번호가 변경되면 작업을 다시 구성할 필요가 없습니다.

MSA/gMSA 계정에 권한을 부여하려면 필요한 보안 그룹에 추가하면 됩니다. 예를 들어, 로컬 관리자 그룹, Domain Admins, DNS Admins 등에

PowerShell을 사용하여 gMSA 계정으로 실행하도록 작업을 구성할 수 있습니다. 예를 들어 다음 스크립트는 데이터베이스를 백업하기 위해 매일 오후 11시에 PowerShell 스크립트를 실행하는 새 예약된 작업을 생성합니다.

$action = New-ScheduledTaskAction -Execute powershell.exe  -Argument "-file C:\PS\Scripts\DBBackup.ps1 -executionpolicy bypass -NoProfile"
$trigger = New-ScheduledTaskTrigger -At 23:00 -Daily
$principal = New-ScheduledTaskPrincipal -UserID woshub\gmsaMunSQL1$ -LogonType Password
Register-ScheduledTask DBBackup –Action $action –Trigger $trigger –Principal $principal

Active Directory에서 관리 서비스 계정(MSA 및 gMSA) 사용

팁. 예약된 작업을 실행하려면 gMSA 계정에 "일괄 작업으로 로그온 권한을 부여해야 합니다. " 허가.

'-LogonType Password ' 인수는 이 gMSA 계정의 암호가 도메인 컨트롤러에서 검색되도록 지정합니다.

PowerShell로 예약된 작업을 관리하는 방법에 대해 자세히 알아보세요.

taskschd.msc를 사용하여 원하는 설정으로 예약된 작업을 생성할 수도 있습니다. GUI. 그런 다음 schtasks.exe 도구를 사용하여 관리 서비스 계정에서 실행하도록 재구성할 수 있습니다.

schtasks /Change /TN BackupDB /RU "woshub\gmsaMunSQL1$" /RP ""