【问题标题】:AKS Created Service Principal Password ExpiryAKS 创建的服务主体密码到期
【发布时间】:2018-12-12 17:44:46
【问题描述】:

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

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

az ad app show --id <app Id>

... 是除了密码到期之外的帐户清单。我不需要看到密码本身,只要它过期。

但是,

passwordCredentials 是一个空数组。

我期望找到的是 startDateendDate 属性,就像我为自己创建的帐户所做的那样。

此处描述的 PasswordCredential 类:

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

AKS 群集创建过程在创建其服务主体凭据时是否执行了不同的操作,这意味着它们不会过期?我只是不允许看到细节吗?有什么基本的我误解了吗?

【问题讨论】:

  • 我认为您可以创建不会过期的应用程序密码,因此它不会做一些独特的事情
  • 感谢您查看我的问题。尊重 - 问题不在于更改我的集群的密码,而只是了解 AKS 创建的服务主体的凭据是否以及何时到期。如果 AKS 创建没有凭据到期的主体,这是值得知道的 - 从安全角度来看,这可能是不可取的。诚然 - 鉴于当前支持更改集群中的密码,这可能没有实际意义。至少我会知道何时启动新集群以避免服务失效。
  • 还有问题吗?或者,如果答案有帮助,您可以接受。

标签: azure-aks


【解决方案1】:

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

此外,当您部署 AKS 群集时,密码将永不过期。不过不用担心,您可以在设置中创建 App Registration 的密钥并为其设置过期时间。也可以重设时间和钥匙密码。

但在使用 CLI 命令az ad sp credential reset 重置密码时应小心。此命令将覆盖所有密钥,而不仅仅是重置到期时间和密码。意思是为你创建一个新的key,然后删除之前创建的所有key,或者直接创建一个新的key,参数--append

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

【讨论】:

  • 非常感谢 - 这真的很有帮助!
【解决方案2】:

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

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

30.01.2019 得到 Azure 支持的回复,他们正在 azure cli 中添加新选项以更新服务主体。

31.01.2019刚刚升级了我的 Azure CLI 以检查新功能,幸运的是它在那里并更新了我的测试集群及其工作!

az aks update-credentials --reset-service-principal --service-principal &lt;client-id&gt; --client-secret &lt;secret&gt;

注意:client-id 和 client-secret 应由您创建

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

也尝试过放大,效果很好!

【讨论】:

    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多