Konfigurace gMSA ve službě Azure Kubernetes Service pomocí modulu PowerShellu
V této části se podíváme, jak nastavit gMSA ve službě Azure Kubernetes Service pomocí gMSA v modulu PowerShellu AKS. Následující postup předpokládá, že jste nainstalovali gMSA do modulu AKS PowerShellu, připojili jste se ke clusterům AKS a zadali požadované parametry. Pokud jste to ještě neudělali, nezapomeňte postupovat podle kroků v první části tohoto kurzu.
Ověřte, že je v clusteru AKS správně nakonfigurovaná funkce gMSA.
Váš cluster AKS může nebo nemusí být už nakonfigurovaný pro gMSA. Pokud chcete ověřit, že je cluster připravený k využití gMSA, spusťte následující příkaz:
Confirm-AksGMSAConfiguration `
-AksResourceGroupName $params["aks-cluster-rg-name"] `
-AksClusterName $params["aks-cluster-name"] `
-AksGMSADomainDnsServer $params["domain-dns-server"] `
-AksGMSARootDomainName $params["domain-fqdn"]
Po konfiguraci clusteru můžete nakonfigurovat zbývající infrastrukturu potřebnou pro fungování gMSA.
Konfigurace prostředí Služby Active Directory
Prvním krokem při přípravě služby Active Directory je zajištění konfigurace systému distribuce klíčů. V tomto kroku je potřeba příkazy spouštět pomocí přihlašovacích údajů se správným delegováním na řadiči domény. Tuto úlohu lze delegovat autorizovaným osobám.
Spuštěním následujícího příkazu z řadiče domény povolte kořenový klíč:
Pro produkční prostředí:
# 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
Pro testovací prostředí:
# For single-DC test environments ONLY.
Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
U následujících příkazů je můžete spustit buď na řadiči domény, nebo ve vzdálené relaci PowerShellu. Pokud běží z řadiče domény, odeberte z příkazu parametry DomainControllerAddress, DomainUser a DomainPassword.
Pokud běží vzdáleně, ujistěte se, že je řadič domény nakonfigurovaný pro vzdálenou správu.
Vytvoření standardního uživatele domény
# 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"]
Vytvoření 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"]
Nastavení služby Azure Key Vault a spravované identity přiřazené uživatelem Azure
Azure Key Vault (AKV) se použije k ukládání přihlašovacích údajů používaných uzly Windows v AKS ke komunikaci s řadiči domény služby Active Directory. Spravovaná identita (MI) se použije k zajištění správného přístupu k AKV pro uzly Windows.
Vytvoření trezoru klíčů Azure
# 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"]
Vytvoření spravované identity přiřazené uživatelem Azure
New-GMSAManagedIdentity `
-ResourceGroupName $params["aks-cluster-rg-name"] `
-Location $params["azure-location"] `
-Name $params["ami-name"]
Udělení přístupu AKV k hostitelům AKS s Windows
# 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"]
Nastavení specifikace přihlašovacích údajů gMSA s využitím prostředků RBAC
# 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"]
V této fázi se dokončí konfigurace gMSA v AKS. Nyní můžete nasadit svou úlohu na uzly Windows.