Skip to main content
Version: Next

Task 03: Security Groups Applied to Nodes

Runbook Cluster Deployment

Optional

DOCUMENT CATEGORY: Implementation Runbook SCOPE: Azure Local post-deployment node configuration PURPOSE: Add domain security groups to local Administrators and Remote Management Users on every cluster node to enforce least-privilege RBAC

Status: Active Applies To: All cluster nodes following Phase 05 cluster deployment Last Updated: 2026-03-10

Add domain Active Directory security groups to the local Administrators and Remote Management Users groups on each cluster node. This enforces least-privilege access so domain identities inherit consistent cluster permissions without using shared local accounts.

Optional Task

This task is optional but strongly recommended for production environments. Without it, cluster node access relies on individual local accounts or Domain Admins only — neither of which provides the scoped, auditable access model required for production operations.


Security Group Requirements

The following groups must exist in Active Directory before running this task (created in Phase 01 Task 02). Groups are sourced from active_directory.security_groups in variables.yml. Only the 5 groups with non-empty local_groups arrays are applied to cluster nodes — WAC groups are applied on the WAC server only.

YAML KeyExample AD GroupLocal Group(s) AssignedAccess Level
azure_local_adminsSG-IIC-clus01-AZL-AdministratorsAdministratorsFull node admin
operationsSG-IIC-clus01-AZL-OperationsRemote Management Users, Remote Desktop UsersPSRemoting + RDP
read_onlySG-IIC-clus01-AZL-ReadOnlyRemote Desktop Users, Performance Monitor Users, Event Log ReadersView-only
hyperv_adminsSG-IIC-clus01-AZL-HyperV-AdministratorsHyper-V Administrators, Remote Management UsersVM management
storage_adminsSG-IIC-clus01-AZL-Storage-AdministratorsAdministratorsStorage + CSV
wac_adminsSG-IIC-clus01-AZL-WAC-Administrators(WAC server only — local_groups: [])WAC full admin
wac_usersSG-IIC-clus01-AZL-WAC-Users(WAC server only — local_groups: [])WAC standard
Idempotent Operation

Both scripts handle the "already a member" condition gracefully — re-running on a node where groups are already applied is safe and will not produce errors.


Variables from variables.yml

PathTypeDescription
active_directory.security_groups.<key>.namestringAD security group name
active_directory.security_groups.<key>.local_groups[]arrayLocal group mappings
compute.cluster_nodes[].management_ipstringNode management IPs
identity.ad.domain_netbiosstringDomain NetBIOS name

Execution Options

Local Users and Groups (lusrmgr.msc)

When to use: Single node verification, confirming group membership, or manual remediation on one node

Prerequisites

  • RDP or console access to each cluster node
  • Domain credentials with local admin rights

Procedure

Repeat the following steps on every cluster node:

  1. Connect to the node via RDP or console

  2. Open Local Users and Groups:

  • Press Win + R, type lusrmgr.msc, press Enter
  • Navigate to Groups
  1. For each of the 5 node-applied groups, add the AD group to the corresponding local group:
AD Group (from active_directory.security_groups.<key>.name)Local Group
azure_local_admins.nameAdministrators
operations.nameRemote Management Users, Remote Desktop Users
read_only.nameRemote Desktop Users, Performance Monitor Users, Event Log Readers
hyperv_admins.nameHyper-V Administrators, Remote Management Users
storage_admins.nameAdministrators

For each entry: double-click the local group → Add... → enter <domain-netbios>\<AD group name>Check NamesOK

  1. Repeat on all remaining cluster nodes

Validation

  • All 5 AD groups are present in their respective local groups on every node
  • PSRemoting works for an operations group member: Enter-PSSession -ComputerName <node>
  • RDP works for a read_only group member

Validation Summary

CheckCommandExpected Result
Administrators membershipGet-LocalGroupMember -Group 'Administrators' | Where-Object ObjectClass -eq 'Group'azure_local_admins and storage_admins groups listed on every node
Remote Management UsersGet-LocalGroupMember -Group 'Remote Management Users' | Where-Object ObjectClass -eq 'Group'operations and hyperv_admins groups listed on every node
Remote Desktop UsersGet-LocalGroupMember -Group 'Remote Desktop Users' | Where-Object ObjectClass -eq 'Group'operations and read_only groups listed on every node
Hyper-V AdministratorsGet-LocalGroupMember -Group 'Hyper-V Administrators' | Where-Object ObjectClass -eq 'Group'hyperv_admins group listed on every node
PSRemoting testEnter-PSSession -ComputerName <node> -Credential <ops-user>Session opens without error

Troubleshooting

IssueCauseResolution
Security group not listed in local group membershipGPO not applied or AD replication delayRun gpupdate /force on the node; verify AD group exists: Get-ADGroup -Identity <groupname>
PSRemoting test fails with access deniedUser not in Remote Management Users groupAdd the user's group to Remote Management Users: Add-LocalGroupMember -Group "Remote Management Users" -Member "<domain>\<group>"
Group membership shows SID instead of nameDomain controller unreachable for name resolutionVerify DC connectivity: Test-ComputerSecureChannel; check DNS resolution to domain controllers

PreviousUpNext
Task 02: Cluster QuorumPhase 06 IndexTask 04: SSH Connectivity