Поделиться через


Настройка gMSA в Службе Azure Kubernetes с помощью модуля PowerShell

Из этого раздела вы узнаете, как настроить gMSA в Службе Azure Kubernetes с помощью модуля PowerShell для gMSA в AKS. В описанных ниже инструкциях предполагается, что вы установили модуль PowerShell для gMSA в AKS, подключенный к кластерам AKS, и указали необходимые параметры. Если вы еще этого не сделали, обязательно выполните инструкции из первого раздела этого руководства.

Проверка надлежащей настройки компонента gMSA в кластере AKS

Ваш кластер AKS может быть уже настроен для gMSA. Чтобы проверить готовность кластера к использованию gMSA, выполните следующую команду:

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

После настройки кластера вы можете настроить остальную необходимую инфраструктуру для работы gMSA.

Настройка среды Active Directory

Первый шаг в подготовке Active Directory заключается в настройке системы рассылки ключей. Для этого для контроллера доменов необходимо выполнить команды с учетными данными с надлежащим делегированием. Эту задачу можно делегировать авторизованным сотрудникам.

На контроллере доменов выполните следующее, чтобы включить ключ корня:

Для рабочих сред:

# 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

Для сред тестирования:

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

Следующие команды вам нужно выполнить на контроллере доменов или в удаленном сеансе PowerShell. При выполнении на контроллере доменов удалить параметры DomainControllerAddress, DomainUser и DomainPassword из команды.

При выполнении удаленно убедитесь, что контроллер доменов настроен для удаленного управления.

Создание стандартного пользователя домена

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

Создание 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"]

Настройка Azure Key Vault и назначаемого пользователем управляемого удостоверения Azure

Azure Key Vault (AKV) используется для хранения учетных данных, используемых узлами Windows в AKS, для обмена данными с контроллерами доменов Active Directory. Управляемое удостоверение используется для предоставления надлежащего уровня доступа к AKV для узлов Windows.

Создание хранилища ключей 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"]

Создание назначаемого пользователем управляемого удостоверения Azure

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

Предоставление AKV доступа к узлам Windows 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"]

Настройка спецификации учетных данных gMSA с помощью ресурсов 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"]

На этом этапе настройка gMSA в AKS завершена. Теперь вы можете развернуть рабочую нагрузку на узлах Windows.

Следующие шаги