다음을 통해 공유


KDS(키 배포 서비스) 루트 키 만들기

IT 전문가를 위한 이 문서에서는 Windows PowerShell을 사용하여 Windows Server 2012 이상에서 그룹 관리 서비스 계정 암호를 생성하여 도메인 컨트롤러에서 키 배포 서비스(kdssvc.dll) 루트 키를 만드는 방법을 설명합니다.

GMSA 암호 생성을 시작하려면 DC(도메인 컨트롤러)에 루트 키가 필요합니다. 도메인 컨트롤러는 gMSA 생성을 허용하기 전에 모든 도메인 컨트롤러가 Active Directory 복제를 수렴할 수 있도록 만든 시간부터 최대 10시간 동안 대기합니다. 최대 10시간을 기다리는 것은 환경의 모든 DC가 gMSA 요청에 응답할 수 있기 전에 비밀번호가 생성되는 것을 방지하기 위한 안전 조치입니다. gMSA 호스트가 암호를 검색하려고 할 때 키가 모든 도메인 컨트롤러에 복제되지 않았을 수 있으므로 gMSA를 너무 빨리 사용하려고 하면 실패할 수 있습니다. gMSA 암호 검색 실패는 복제 일정이 제한된 DC를 사용하거나 복제 문제가 있는 경우에도 발생할 수 있습니다.

Note

루트 키를 삭제하고 다시 만들면 키 캐싱으로 인해 삭제 후에도 이전 키가 계속 사용되는 문제가 발생할 수 있습니다. 루트 키를 다시 만드는 경우 모든 도메인 컨트롤러에서 KDC를 다시 시작해야 합니다.

이 절차를 완료하기 위한 최소 요구 사항은 Domain Admins 또는 Enterprise Admins 그룹의 멤버 자격 또는 이와 동등한 구성원입니다. 적절한 계정과 그룹 구성원 사용에 대한 자세한 내용은 로컬 및 도메인 기본 그룹을 참조하세요.

Note

그룹 관리 서비스 계정을 관리하는 데 사용되는 Windows PowerShell 명령을 실행하려면 64비트 아키텍처가 필요합니다.

Add-KdsRootKey cmdlet을 사용하여 KDS 루트 키를 만들려면

  1. Windows Server 2012 이상 도메인 컨트롤러의 작업 표시줄에서 Windows PowerShell을 실행합니다.

  2. Windows PowerShell Active Directory 모듈에 대한 명령 프롬프트에서 다음 명령을 입력한 다음 Enter 키를 선택합니다.

    Add-KdsRootKey -EffectiveImmediately

    Tip

    유효 시간 매개 변수를 사용하여 사용하기 전에 키를 모든 DC에 전파할 시간을 제공할 수 있습니다. Add-KdsRootKey -EffectiveImmediately 사용하면 KDS 서비스에서 즉시 사용할 대상 DC에 루트 키가 추가됩니다. 그러나 복제가 성공할 때까지 다른 도메인 컨트롤러는 루트 키를 사용할 수 없습니다.

KDS 루트 키는 컨테이너 CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=<forest name>;의 Active Directory에 저장됩니다. 개체를 만든 도메인 컨트롤러의 컴퓨터 계정에 연결되는 특성 msKds-DomainID가 있습니다. 이 도메인 컨트롤러가 도메인에서 강등되어 제거되면 이 값은 컴퓨터 계정의 묘비를 참조하게 됩니다. 끊어진 값은 관리자가 새로 만들 때 개체를 추적하는 데만 사용되므로 무시할 수 있습니다. 포리스트에 있는 다른 도메인 컨트롤러의 컴퓨터 개체를 가리키도록 특성 값을 변경할 수도 있습니다.

DC가 하나만 있는 테스트 환경의 경우 다음 절차를 사용하여 KDS 루트 키를 만들고 과거 시작 시간을 설정하여 키 생성에 대한 간격 대기를 방지할 수 있습니다. KDS 이벤트 로그에 4004 이벤트가 기록되었는지 확인합니다.

테스트 환경에서 즉시 적용되는 KDS 루트 키를 만들려면

  1. Windows Server 2012 이상 도메인 컨트롤러의 경우 작업 표시줄에서 Windows PowerShell을 실행합니다.

  2. Windows PowerShell Active Directory 모듈에 대한 명령 프롬프트에서 다음 명령을 입력한 다음 Enter 키를 선택합니다.

    $a=Get-Date

    $b=$a.AddHours(-10)

    Add-KdsRootKey –EffectiveTime $b

    또는 단일 명령을 사용합니다.

    Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))