Azure Kubernetes 服务上的 gMSA
组托管服务帐户(gMSA)可用于 Azure Kubernetes 服务(AKS),以支持需要 Active Directory 进行身份验证的应用程序。 AKS 上的 gMSA 配置要求正确设置以下服务和设置:AKS、Azure Key Vault、Active Directory、凭据规范等。为了简化此过程,可以使用下面的 PowerShell 模块。 本模块专为简化在 AKS 上配置 gMSA 的过程而定制,消除了设置不同服务的复杂性。
环境要求
若要在 AKS 上部署 gMSA,需要满足以下条件:
- 具有 Windows 节点并正在运行的 AKS 群集。 如果尚未准备好 AKS 群集,请查看 Azure Kubernetes 服务文档。
- 群集必须获得 AKS 上的 gMSA 的授权。 有关详细信息,请参阅为 Azure Kubernetes 服务 (AKS) 群集上的 Windows Server 节点启用组托管服务帐户 (GMSA)。
- 已为 gMSA 正确配置 Active Directory 环境。 下面提供了有关如何配置域的详细信息。
- AKS 上的 Windows 节点必须能够连接到 Active Directory 域控制器。
- 具有委派授权的 Active Directory 域凭据,用于设置 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