다음을 통해 공유


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

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

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

참고 항목

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

이 절차를 수행하려면 최소한 Domain Admins 또는 Enterprise Admins 그룹의 구성원이거나 이와 동등한 자격이 있어야 합니다. 적절한 계정과 그룹 구성원 사용에 대한 자세한 내용은 로컬 및 도메인 기본 그룹을 참조하세요.

참고 항목

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

Add-KdsRootKey cmdlet을 사용하여 KDS 루트 키를 만들려면 다음과 같이 하세요.

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

  2. Windows PowerShell Active Directory 모듈에 대한 명령 프롬프트에서 다음 명령을 입력하고 Enter 키를 누릅니다.

    Add-KdsRootKey –EffectiveImmediately

    유효 시간 매개 변수를 사용하여 키가 사용 전에 모든 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))

참고 항목

그룹 관리 서비스 계정 시작