azure - Aks pods 环境变量 keyvault

标签 azure kubernetes azure-aks

我希望有人能帮助我。

我在 azure 中有一个基本配置,其中包含 Web 应用程序和数据库。

网络应用程序能够使用托管身份连接到数据库,并且这里的一切都工作正常,但我想使用 aks 尝试相同的配置。

我部署了 AKS 并启用了托管身份。我将一个 pod 部署到集群中,如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: webapp-deployment
  labels:
    app: webapp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: webapp
  template:
    metadata:
      labels:
        app: webapp
    spec:
      containers:
        - name: webapp
          image: dockerimage
          ports:
            - containerPort: 80
          env:
            - name: "ConnectionStrings__MyDbConnection"
              value: "Server=server-url; Authentication=Active Directory Managed Identity; Database=database-name"
            - name: "ASPNETCORE_ENVIRONMENT"
              value: "Development"
          securityContext:
            allowPrivilegeEscalation: false
      restartPolicy: Always 

部署过程非常顺利,一切正常。但这就是我遇到问题的地方,无法找出最佳解决方案。

env block 是纯文本形式,我想通过将它们存储在 keyvault 中来保护这些环境变量。

我一直在浏览不同的论坛和文档,这些选项开始让我感到困惑。在这种情况下有什么好的方法可以实现安全吗?

在我的网络应用程序中,在配置下我启用了托管身份,使用它我可以访问 keystore 中的 secret 并检索它们。我可以使用 AKS 做同样的事情吗?

非常感谢您提供或提供的任何帮助。

如果我的问题不是 100% 清楚,请告诉我

最佳答案

  1. Upgrade an existing AKS cluster with Azure Key Vault Provider for Secrets Store CSI Driver support
  2. Use a user-assigned managed identity to access KV
  3. Set an environment variable to reference Kubernetes secrets

您需要阅读一些内容,但过程很简单。 KV key 将存储在 k8s key 中,您可以在 pods 环境变量中引用该 key 。

关于azure - Aks pods 环境变量 keyvault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75086432/

相关文章:

嵌入 Microsoft Team 时的 Azure Web App 授权问题

.net - WCF 服务卡在 SendResponse 中

azure - 已发布的 .net Core Azure 应用服务 (Linux) 没有权限

kubernetes - 在 DaemonSet 中处理 PersistentVolumeClaim

azure - : getting unauthorize error while trying to create load balancer

regex - 如何在 Azure Purview 中为数据分类创建列名称模式匹配?

kubernetes - Kubernetes Pod 收到 SIGTERM 后是否还会收到请求?

flask - NLP Flask应用程序启动节点在Google Kubernetes GKE上超时

azure - 重启后Kafka主题被删除

elasticsearch - 无法将索引插入AKS上的ElasticSearch DB容器