Configurare l'account del servizio gestito del gruppo in servizio Azure Kubernetes con il modulo PowerShell
In questa sezione verrà illustrato come configurare l'account del servizio gestito del gruppo in servizio Azure Kubernetes usando il modulo gMSA in PowerShell del servizio Azure Kubernetes. La procedura seguente presuppone che l'account del servizio gestito del gruppo sia stato installato nel modulo PowerShell del servizio Azure Kubernetes, connesso ai cluster del servizio Azure Kubernetes e abbia fornito i parametri necessari. Se non è già stato fatto, assicurarsi di seguire la procedura descritta nella prima sezione di questa esercitazione.
Verificare che la funzionalità GMSA del cluster del servizio Azure Kubernetes sia configurata correttamente
Il cluster del servizio Azure Kubernetes potrebbe essere già configurato per l'account del servizio gestito del gruppo. Per verificare che il cluster sia pronto per l'utilizzo dell'account del servizio gestito del gruppo, eseguire il comando seguente:
Confirm-AksGMSAConfiguration `
-AksResourceGroupName $params["aks-cluster-rg-name"] `
-AksClusterName $params["aks-cluster-name"] `
-AksGMSADomainDnsServer $params["domain-dns-server"] `
-AksGMSARootDomainName $params["domain-fqdn"]
Dopo aver configurato il cluster, è possibile configurare l'infrastruttura rimanente necessaria per il funzionamento dell'account del servizio gestito del gruppo.
Configurare l'ambiente Active Directory
Il primo passaggio per preparare Active Directory consiste nel garantire che il sistema di distribuzione delle chiavi sia configurato. Per questo passaggio, i comandi devono essere eseguiti con le credenziali con la delega appropriata, rispetto a un controller di dominio. Questa attività può essere delegata alle persone autorizzate.
Da un controller di dominio eseguire quanto segue per abilitare la chiave radice:
Per gli ambienti di produzione:
# 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
Per gli ambienti di test:
# For single-DC test environments ONLY.
Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
Per i comandi seguenti, è possibile eseguirli nel controller di dominio o in una sessione remota di PowerShell. Se si esegue dal controller di dominio, rimuovere i parametri "DomainControllerAddress", "DomainUser" e "DomainPassword" dal comando.
Se si esegue in modalità remota, assicurarsi che il controller di dominio sia configurato per la gestione remota.
Creare l'utente di dominio standard
# 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"]
Creare l'account del servizio gestito del gruppo
# 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"]
Configurare Azure Key Vault e identità gestita assegnata dall'utente di Azure
Azure Key Vault (AKV) verrà usato per archiviare le credenziali usate dai nodi Windows nel servizio Azure Kubernetes per comunicare con i controller Dominio di Active Directory. Verrà usata un'identità gestita (MI) per fornire l'accesso appropriato a AKV per i nodi Windows.
Creare l'insieme di credenziali delle chiavi di 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"]
Creare l'identità gestita assegnata dall'utente di Azure
New-GMSAManagedIdentity `
-ResourceGroupName $params["aks-cluster-rg-name"] `
-Location $params["azure-location"] `
-Name $params["ami-name"]
Concedere l'accesso AKV agli host Windows del servizio Azure Kubernetes
# 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"]
Configurare le specifiche delle credenziali del servizio gestito del gruppo con le risorse controllo degli accessi in base al ruolo
# 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"]
In questa fase viene completata la configurazione del servizio gestito del gruppo nel servizio Azure Kubernetes. È ora possibile distribuire il carico di lavoro nei nodi Windows.