AKS创建的服务主体密码到期

时间:2018-12-12 17:44:46

标签: azure-kubernetes azure-aks

我使用“创建Kubernetes群集”功能在Azure门户中创建了AKS群集,并允许它创建新的服务主体。
我开始怀疑此委托人使用的凭证是否过期。为了避免K8s在凭据到期时与Azure进行对话,我开始查看已创建的帐户。

如果我跑步,我会看到什么:

az ad app show --id <app Id>

...是除密码有效期以外的帐户清单。我不需要密码本身,只要密码过期即可。

passwordCredentials ,但是,它是一个空数组。

我希望找到的是 startDate endDate 属性,就像我创建自己的帐户一样。

此处描述的PasswordCredential类:

https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.graph.rbac.fluent.models.passwordcredential?view=azure-dotnet

当AKS群集创建其服务主体凭据时,它的创建过程是否有所不同,这意味着它们不会过期?我只是不允许看到细节吗?有我误解的基本知识吗?

2 个答案:

答案 0 :(得分:0)

首先,我需要对您引用的 passwordCredentials 进行解释。它是有关“应用程序注册”密钥的属性。创建AKS群集时,没有创建任何密钥,因此 passwordCredentials 显示为空。如果您在“应用程序注册”中创建密钥,它将显示如下:

enter image description here enter image description here

此外,当您部署AKS群集时,密码将永不过期。但请放心,您可以在设置中为“应用注册”创建密钥,并为其指定有效时间。还可以重置时间和密钥密码。

enter image description here

但是,使用CLI命令az ad sp credential reset重设密码时,请务必小心。此命令将覆盖所有密钥,而不是仅重置到期时间和密码。这意味着为您创建一个新密钥并删除之前创建的所有密钥,或者仅使用参数--append创建一个新密钥。

您可以查看文档Azure Kubernetes Service (AKS) with Azure AD。希望对您有帮助。

答案 1 :(得分:0)

遇到了与AKS相同的服务原则到期问题。

作为一种快速的解决方法,使用Azure门户创建了新密钥,并使用新的客户端密钥手动更新了所有AKS节点(/etc/kubernetes/azure.json)并重新启动了一个主节点,此外,主节点未使用新的client_secret(明显)。因此,新扩展的节点提出了过期的客户端密码!!(问题)

2019年3月31日,得到了Azure支持的答复,即他们正在azure cli中添加新选项来更新服务主体。

2019年1月31日刚刚升级了我的Azure CLI来检查新功能,幸运的是它在那里并更新了我的测试群集及其作品!

az aks update-credentials --reset-service-principal --service-principal <client-id> --client-secret <secret>

注意:客户端ID和客户端秘密应由您创建

基本上,它会更新所有节点上的/etc/kubernetes/azure.json文件,然后一步一步地重新启动它!

也尝试过扩大规模,并且有效!