Azure Kubernetes 服务上的 gMSA

组托管服务帐户(gMSA)可用于 Azure Kubernetes 服务(AKS),以支持需要 Active Directory 进行身份验证的应用程序。 AKS 上的 gMSA 配置要求正确设置以下服务和设置:AKS、Azure Key Vault、Active Directory、凭据规范等。为了简化此过程,可以使用下面的 PowerShell 模块。 本模块专为简化在 AKS 上配置 gMSA 的过程而定制,消除了设置不同服务的复杂性。

环境要求

若要在 AKS 上部署 gMSA,需要满足以下条件:

在 AKS PowerShell 模块上安装 gMSA

若要开始,请从 PowerShell 库下载 PowerShell 模块:

Install-Module -Name AksGMSA -Repository PSGallery -Force

注意

AKS PowerShell 模块上的 gMSA 会不断更新。 如果在本教程中运行了这些步骤,现在又重新检查了新配置,请确保将模块更新为最新版本。 有关模块的详细信息,可以在 PowerShell 画廊页面上找到。

模块要求

AKS PowerShell 模块上的 gMSA 依赖于不同的模块和工具。 为了安装这些要求的模块和工具,请在提升的会话中运行以下命令:

Install-ToolingRequirements

使用 Azure 凭据登录

需要使用 AKS PowerShell 模块 gMSA 的凭据登录到 Azure,以正确配置 AKS 群集。 若要通过 PowerShell 登录到 Azure,请运行以下命令:

Connect-AzAccount -DeviceCode -Subscription "<SUBSCRIPTION_ID>"

还需要使用 Azure CLI 登录,因为 PowerShell 模块也在后台使用该模块:

az login --use-device-code
az account set --subscription "<SUBSCRIPTION_ID>"

设置 AKS 上的 gMSA 模块所需的输入

在 AKS 上配置 gMSA 时需要许多输入,例如:AKS 群集名称、Azure 资源组名称、区域以部署必要的资产、Active Directory 域名等。 为了简化以下过程,我们创建了一个输入命令,该命令将收集所有必要的值,并将其存储在随后将在以下命令上使用的变量上。

若要开始,请运行以下命令:

$params = Get-AksGMSAParameters

运行命令后,请提供必要的输入,直到命令完成。 从现在起,只需复制并粘贴此页所示的命令。

连接到 AKS 集群

在 AKS PowerShell 模块上使用 gMSA 时,将连接到要配置的 AKS 群集。 AKs PowerShell 模块上的 gMSA 依赖于 kubectl 连接。 若要连接群集,请运行以下命令:(请注意,由于提供了上述输入,因此只需将以下命令复制并粘贴到 PowerShell 会话中)。

 Import-AzAksCredential -Force `
 -ResourceGroupName $params["aks-cluster-rg-name"] `
 -Name $params["aks-cluster-name"]

下一步

使用 PowerShell 模块 在 AKS 上配置 gMSA