Konfigurowanie usługi gMSA w usłudze Azure Kubernetes Service przy użyciu modułu programu PowerShell
W tej sekcji omówimy sposób konfigurowania usługi gMSA w usłudze Azure Kubernetes Service przy użyciu modułu gMSA w usłudze AKS PowerShell. W poniższych krokach założono, że zainstalowano usługę gMSA w module programu PowerShell usługi AKS, nawiązano połączenie z klastrami usługi AKS i podano wymagane parametry. Jeśli jeszcze tego nie zrobiono, upewnij się, że wykonasz kroki opisane w pierwszej sekcji tego samouczka.
Upewnij się, że klaster usługi AKS ma prawidłowo skonfigurowaną funkcję GMSA
Klaster usługi AKS może lub nie został jeszcze skonfigurowany dla usługi gMSA. Aby sprawdzić, czy klaster jest gotowy do użycia usługi gMSA, uruchom następujące polecenie:
Confirm-AksGMSAConfiguration `
-AksResourceGroupName $params["aks-cluster-rg-name"] `
-AksClusterName $params["aks-cluster-name"] `
-AksGMSADomainDnsServer $params["domain-dns-server"] `
-AksGMSARootDomainName $params["domain-fqdn"]
Po skonfigurowaniu klastra można skonfigurować pozostałą infrastrukturę niezbędną do działania usługi gMSA.
Konfigurowanie środowiska usługi Active Directory
Pierwszym krokiem przygotowywania usługi Active Directory jest upewnienie się, że system dystrybucji kluczy jest skonfigurowany. W tym kroku należy wykonać polecenia z użyciem poświadczeń z właściwą delegacją na kontrolerze domeny. To zadanie można delegować do autoryzowanych osób.
W kontrolerze domeny uruchom następujące polecenie, aby włączyć klucz główny:
W środowiskach produkcyjnych:
# 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
W przypadku środowisk testowych:
# For single-DC test environments ONLY.
Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
W przypadku następujących poleceń można uruchomić je na kontrolerze domeny lub w zdalnej sesji programu PowerShell. Jeśli uruchamiasz z kontrolera domeny, usuń parametry "DomainControllerAddress", "DomainUser" i "DomainPassword" z polecenia.
W przypadku zdalnego uruchamiania upewnij się, że kontroler domeny jest skonfigurowany do zdalnego zarządzania.
Tworzenie użytkownika domeny standardowej
# 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"]
Utwórz 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"]
Konfigurowanie Azure Key Vault i przypisanej przez użytkownika tożsamości zarządzanej Azure
Usługa Azure Key Vault (AKV) będzie używana do przechowywania poświadczeń używanych przez węzły systemu Windows w usłudze AKS do komunikowania się z kontrolerami domeny usługi Active Directory. Tożsamość zarządzana (MI) będzie używana do zapewnienia odpowiedniego dostępu do usługi AKV dla węzłów systemu Windows.
Utwórz magazyn kluczy 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"]
Utwórz zarządzaną tożsamość przypisywaną przez użytkownika platformy Azure
New-GMSAManagedIdentity `
-ResourceGroupName $params["aks-cluster-rg-name"] `
-Location $params["azure-location"] `
-Name $params["ami-name"]
Udzielanie dostępu usługi AKV do hostów systemu Windows usługi AKS
# 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"]
Konfigurowanie specyfikacji poświadczeń usługi gMSA przy użyciu zasobów 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"]
Na tym etapie konfiguracja usługi gMSA w usłudze AKS jest zakończona. Teraz możesz wdrożyć swoje zadania na węzłach systemu Windows.