繁体   English   中英

如何从部署在 Azure Kubernetes 服务 (AKS) 中作为 pod 的 Asp.net Core Docker 容器访问 Azure KeyVault?

[英]How to access Azure KeyVault from Asp.net Core Docker container deployed in Azure Kubernetes Service (AKS) as pod?

我有一个配置为使用 Visual Studio 2019 连接服务连接到 Azure KeyVault 的 Asp.Net Core 应用程序:

https://docs.microsoft.com/en-us/azure/key-vault/general/vs-key-vault-add-connected-service

我使用 Docker 将应用程序容器化,并将其作为 Pod 部署到 Kubernetes 中。 KeyVault 连接不起作用,可能是因为未设置托管标识。

我试过:

  1. 将 Kubernetes 代理托管标识添加到 KeyVault 访问策略,就像我对应用服务或容器服务所做的那样,但不允许连接。
  2. 遵循此处的文档: https : //docs.microsoft.com/en-us/azure/key-vault/general/key-vault-integrate-kubernetes

我想知道“Kubernetes 上 Secrets Store CSI 驱动程序的 Azure Key Vault 提供程序”是否是从 pod 使用 KeyVault 的正确方法,或者是否有更简单的解决方案,例如直接连接。

对于处于我这种情况的人,解决方案是使用AAD-Pod Identity

不需要附加 CSI 驱动程序,除非您需要 Kubernetes 配置中的 Secrets,想要完全控制自定义配置,或者在 Azure 之外拥有集群。

对于部署到 AKS 的 Asp.Net Core 应用程序,最简单的方法是使用托管身份,并将其提供给您的 Kubernetes 集群,您需要 AAD-Pod 身份。

目前还没有文档页面,但是按照 GitHub 上的入门说明进行操作就足够了。

我设法使用托管标识从我的 pod 中的 Azure 密钥保管库中获取了一个秘密。 只需添加 AKS 集群的 .identityProfile.kubeletidentity.clientId 作为 Key Vault 策略即可读取机密。 您必须通过 Azure 门户设置此策略,因为“az keyvault set-policy”期望 --object-id 是 principalId 我猜...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM