簡體   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