Konfigurera gMSA på Azure Kubernetes Service med PowerShell-modulen

I det här avsnittet går vi igenom hur du konfigurerar gMSA på Azure Kubernetes Service med hjälp av gMSA i AKS PowerShell-modulen. Stegen nedan förutsätter att du har installerat gMSA på AKS PowerShell-modulen, anslutit till dina AKS-kluster och angett de obligatoriska parametrarna. Om du inte redan har gjort det, se till att du följer stegen i det första avsnittet i den här självstudien.

Bekräfta att AKS-klustret har gMSA-funktionen korrekt konfigurerad

Ditt AKS-kluster kanske eller kanske inte redan har konfigurerats för gMSA. Kör följande kommando för att verifiera att klustret är redo för användning av gMSA:

 Confirm-AksGMSAConfiguration `
 -AksResourceGroupName $params["aks-cluster-rg-name"] `
 -AksClusterName $params["aks-cluster-name"] `
 -AksGMSADomainDnsServer $params["domain-dns-server"] `
 -AksGMSARootDomainName $params["domain-fqdn"]

När du har konfigurerat klustret kan du konfigurera den återstående infrastruktur som krävs för att gMSA ska fungera.

Konfigurera Din Active Directory-miljö

Det första steget i att förbereda Active Directory är att se till att nyckeldistributionssystemet har konfigurerats. I det här steget måste kommandona köras med autentiseringsuppgifter med rätt delegering, mot en domänkontrollant. Den här uppgiften kan delegeras till behöriga personer.

Från en domänkontrollant kör du följande för att aktivera rotnyckeln:

För produktionsmiljöer:

# You will need to wait 10 hours before the KDS root key is
# replicated and available for use on all domain controllers.
Add-KdsRootKey -EffectiveImmediately

För testmiljöer:

# For single-DC test environments ONLY.
Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)

För följande kommandon kan du antingen köra dem på domänkontrollanten eller på en fjärransluten PowerShell-session. Om du kör från domänkontrollanten tar du bort parametrarna "DomainControllerAddress", "DomainUser" och "DomainPassword" från kommandot.

Om du kör via fjärranslutning kontrollerar du att domänkontrollanten är konfigurerad för fjärrhantering.

Skapa standarddomänanvändaren

 # Creates the standard domain user.
 New-GMSADomainUser `
 -Name $params["gmsa-domain-user-name"] `
 -Password $params["gmsa-domain-user-password"] `
 -DomainControllerAddress $params["domain-controller-address"] `
 -DomainAdmin "$($params["domain-fqdn"])\$($params["domain-admin-user-name"])" `
 -DomainAdminPassword $params["domain-admin-user-password"]

Skapa gMSA

 # Creates the gMSA account, and it authorizes only the standard domain user.
 New-GMSA `
 -Name $params["gmsa-name"] `
 -AuthorizedUser $params["gmsa-domain-user-name"] `
 -DomainControllerAddress $params["domain-controller-address"] `
 -DomainAdmin "$($params["domain-fqdn"])\$($params["domain-admin-user-name"])" `
 -DomainAdminPassword $params["domain-admin-user-password"]

Konfigurera Azure Key Vault och azure-användartilldelad hanterad identitet

Azure Key Vault (AKV) används för att lagra de autentiseringsuppgifter som används av Windows-noderna i AKS för att kommunicera med Active Directory-domänkontrollanterna. En hanterad identitet (MI) används för att ge rätt åtkomst till AKV för dina Windows-noder.

Skapa Azure-nyckelvalvet

 # The Azure key vault will have a secret with the credentials of the standard
 # domain user authorized to fetch the gMSA.
 New-GMSAAzureKeyVault `
 -ResourceGroupName $params["aks-cluster-rg-name"] `
 -Location $params["azure-location"] `
 -Name $params["akv-name"] `
 -SecretName $params["akv-secret-name"] `
 -GMSADomainUser "$($params["domain-fqdn"])\$($params["gmsa-domain-user-name"])" `
 -GMSADomainUserPassword $params["gmsa-domain-user-password"]

Skapa den azure-användartilldelade hanterade identiteten

 New-GMSAManagedIdentity `
 -ResourceGroupName $params["aks-cluster-rg-name"] `
 -Location $params["azure-location"] `
 -Name $params["ami-name"]

Bevilja AKV-åtkomst till AKS Windows-värdarna

 # Appends the user-assigned managed identity to the AKS Windows agent pools given as input parameter.
 # Configures the AKV read access policy for the user-assigned managed identity.
 Grant-AkvAccessToAksWindowsHosts `
 -AksResourceGroupName $params["aks-cluster-rg-name"] `
 -AksClusterName $params["aks-cluster-name"] `
 -AksWindowsNodePoolsNames $params["aks-win-node-pools-names"] `
 -VaultResourceGroupName $params["aks-cluster-rg-name"] `
 -VaultName $params["akv-name"] `
 -ManagedIdentityResourceGroupName $params["aks-cluster-rg-name"] `
 -ManagedIdentityName $params["ami-name"]

Konfigurera gMSA-autentiseringsspecifikation med RBAC-resurserna

 # Creates the gMSA credential spec.
 # Configures the appropriate RBAC resources (ClusterRole and RoleBinding) for the spec.
 # Executes AD commands to get the appropriate domain information for the credential spec.
 New-GMSACredentialSpec `
 -Name $params["gmsa-spec-name"] `
 -GMSAName $params["gmsa-name"] `
 -ManagedIdentityResourceGroupName $params["aks-cluster-rg-name"] `
 -ManagedIdentityName $params["ami-name"] `
 -VaultName $params["akv-name"] `
 -VaultGMSASecretName $params["akv-secret-name"] `
 -DomainControllerAddress $params["domain-controller-address"] `
 -DomainUser "$($params["domain-fqdn"])\$($params["gmsa-domain-user-name"])" `
 -DomainUserPassword $params["gmsa-domain-user-password"]

I det här skedet slutförs konfigurationen av gMSA på AKS. Nu kan du distribuera din arbetsbelastning på dina Windows-noder.

Nästa steg