Freigeben über


Konfigurieren von gMSA für Azure Kubernetes Service mit dem PowerShell-Modul

In diesem Abschnitt wird erläutert, wie Sie gMSA im Azure Kubernetes-Dienst mit dem gMSA auf AKS PowerShell-Modul einrichten. In den folgenden Schritten wird davon ausgegangen, dass Sie das gMSA auf dem AKS PowerShell-Modul installiert haben, das mit Ihren AKS-Clustern verbunden ist und die erforderlichen Parameter bereitgestellt haben. Wenn Sie es noch nicht getan haben, sollten Sie sicherstellen, dass Sie die Schritte im ersten Abschnitt dieses Lernprogrammsausführen.

Vergewissern Sie sich, dass das AKS-Cluster die gMSA-Funktion ordnungsgemäß konfiguriert hat.

Ihr AKS-Cluster ist möglicherweise oder möglicherweise nicht für gMSA konfiguriert. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Cluster für die Verwendung von gMSA bereit ist:

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

Nach dem Konfigurieren des Clusters können Sie die verbleibende Infrastruktur konfigurieren, die für die Arbeit von gMSA erforderlich ist.

Konfigurieren Ihrer Active Directory-Umgebung

Der erste Schritt bei der Vorbereitung Ihres Active Directory besteht darin, sicherzustellen, dass das Schlüsselverteilungssystem konfiguriert ist. Für diesen Schritt müssen die Befehle mit Anmeldeinformationen mit der richtigen Delegierung für einen Domänencontroller ausgeführt werden. Diese Aufgabe kann an autorisierte Personen delegiert werden.

Führen Sie auf einem Domänencontroller Folgendes aus, um den Stammschlüssel zu aktivieren:

Für Produktionsumgebungen:

# 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 Testumgebungen:

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

Für die folgenden Befehle können Sie sie entweder auf Ihrem Domänencontroller oder in einer PowerShell-Remotesitzung ausführen. Wenn sie vom Domänencontroller ausgeführt wird, entfernen Sie die Parameter "DomainControllerAddress", "DomainUser" und "DomainPassword" aus dem Befehl.

Falls das System remote betrieben wird, stellen Sie sicher, dass Ihr Domänencontroller für die Remoteverwaltung konfiguriert ist.

Erstellen des Standarddomänenbenutzers

 # 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"]

Erstellen des 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"]

Einrichten von Azure Key Vault und azure vom Benutzer zugewiesener verwalteter Identität

Azure Key Vault (AKV) wird verwendet, um die anmeldeinformationen zu speichern, die von den Windows-Knoten auf AKS verwendet werden, um mit den Active Directory-Domänencontrollern zu kommunizieren. Eine verwaltete Identität (Managed Identity, MI) wird verwendet, um den richtigen Zugriff auf AKV für Ihre Windows-Knoten zu ermöglichen.

Erstellen des Azure Key Vault

 # 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"]

Erstellen der vom Azure-Benutzer zugewiesenen verwalteten Identität

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

Gewähren des AKV-Zugriffs auf die AKS Windows-Hosts

 # 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"]

Einrichten der gMSA-Anmeldeinformationsspezifikation mit den RBAC-Ressourcen

 # 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 dieser Phase wird die Konfiguration von gMSA auf AKS abgeschlossen. Sie können Ihre Workload jetzt auf Ihren Windows Knoten bereitstellen.

Nächster Schritt