Azure Kubernetes 服务上的 gMSA

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

环境要求

为了部署 AKS 上的 gMSA,将需要以下内容:

  • 一个启动并运行 Windows 节点的 AKS 群集。 如果还未准备好 AKS 群集,请查看 Azure Kubernetes 服务文档
  • 已为 gMSA 正确配置 Active Directory 环境。 下面将提供有关如何配置域的详细信息。
    • AKS 上的 Windows 节点必须能够连接到 Active Directory 域控制器。
  • 具有对设置 gMSA 和标准域用户的委托授权的 Active Directory 域凭据。 可将该任务委托给获得授权的人员(如果需要)。

安装 AKS 上的 gMSA PowerShell 模块

首先,从 PowerShell 库下载 PowerShell 模块:

Install-Module -Name AksGMSA -Repository PSGallery -Force

注意

AKS 上的 gMSA PowerShell 模块会不断更新。 如果你之前运行过本教程中的步骤,并且现在正在检查新配置,请确保将该模块更新到最新版本。 有关该模块的详细信息,请参阅 PowerShell 库页面

模块要求

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

Install-ToolingRequirements

使用 Azure 凭据登录

需使用 AKS 上的 gMSA PowerShell 模块的凭据登录到 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 上的 gMSA PowerShell 模块时,将连接到要配置的 AKS 群集。 AKS 上的 gMSA PowerShell 模块依赖 kubectl 连接。 若要连接群集,请运行以下命令:(注意,由于已提供了上面的输入,因此可以简单地将下面的命令复制并粘贴到 PowerShell 会话中)。

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

后续步骤