KDS root key count should be acceptable
AD-CFG-22InfoActive DirectoryDirectory configuration
Part of Active Directory · Active Directory · Directory configuration · All checks
Invoke-Maester -TestId AD-CFG-22Overview
Section titled “Overview”KDS root keys are used to generate keys required for Group Managed Service Accounts (gMSA) and related group-managed credential operations.
If KDS root keys are missing, misconfigured, or unexpectedly changed, service account provisioning can fail—potentially causing insecure workarounds or prolonged downtime.
Monitoring the count of KDS root keys helps identify:
- Missing keys that prevent proper gMSA key derivation
- Exactly two keys, which can cause gMSA authentication failures in some scenarios
Control Type
Section titled “Control Type”Operational
Security Recommendation
Section titled “Security Recommendation”- Ensure one or three (or more) KDS root keys exist per forest. Exactly two keys can cause gMSA authentication failures in some sorting scenarios.
- If exactly two keys exist, Microsoft’s recommended workaround is to create a third key. Do not remove existing keys.
- Validate the expected number of keys for your environment and alert on deviations.
- Restrict administrative access to actions that can modify KDS root keys.
How the Test Works
Section titled “How the Test Works”The test enumerates KDS root keys present in Active Directory and evaluates the count:
- 0 keys: gMSAs are not in use; the test is skipped.
- 1 key: The recommended configuration; the test passes.
- 2 keys: Can cause gMSA authentication failures in some scenarios; the test returns Investigate.
- 3+ keys: Acceptable per Microsoft guidance (the workaround for the sorting issue is to add a third key); the test passes.
References
Section titled “References”Details
Section titled “Details”Every attribute of this check
| Field | Value |
|---|---|
| Test ID | AD-CFG-22 |
| Severity | Info |
| Suite | Active Directory |
| Product | Active Directory |
| Feature | Directory configuration |
| Area | Infrastructure hardening |
| Resource type | Tenant |
| MITRE ATT&CK | None |
| PowerShell test | Test-MtAdKdsRootKeysCount |
| Services | ActiveDirectory |
| Permissions | ActiveDirectory:Ldap:Configuration/*:ReadProperty |
Source
Section titled “Source”- Test:
tests/ad/config/Test.AD-CFG-22.ps1 - Documentation:
tests/ad/config/Test.AD-CFG-22.md
About this check
- Severity
- Info
- Product
- Active Directory
- Feature
- Directory configuration
- Area
- Infrastructure hardening
- Suite
- Active Directory