获取本地开发集群的 Azure Key Value 机密

Getting Azure Key Value secrets for local dev clusters

我正在努力集成 AKV 和 AKS,尽管我遇到了一些

无论如何,我最终想做的是自动为本地开发集群从中提取凭据和 API 密钥。这样,开发人员就不必为“去这里”、“做 x”等问题而烦恼。他们只需启动他们的开发集群,密钥和凭据就会被提取自动并且可以从中央位置进行管理。

AKV 和 AKS 的集成,如果我能让它工作的话,是有道理的,因为它们是相同的上下文。本地开发环境将完全不同,minikube,集群因此上下文不同。

我正在努力思考如何获取本地开发集群中的密钥:

下面的 secrets-store.csi.k8s.io 是否可用于本地开发集群(取自 AKV-AKS integration documentation)?

apiVersion: v1
kind: Pod
metadata:
  name: nginx-secrets-store-inline
  labels:
    aadpodidbinding: azure-pod-identity-binding-selector
spec:
  containers:
    - name: nginx
      image: nginx
      volumeMounts:
        - name: secrets-store-inline
          mountPath: "/mnt/secrets-store"
          readOnly: true
  volumes:
    - name: secrets-store-inline
      csi:
        driver: secrets-store.csi.k8s.io
        readOnly: true
        volumeAttributes:
          secretProviderClass: azure-kvname

或者我是否需要按照概述的方式执行以下操作 here

az keyvault secret show --name "ExamplePassword" --vault-name "<your-unique-keyvault-name>" --query "value"

Will the secrets-store.csi.k8s.io in the following be available to use for local dev clusters (as taken from the AKV-AKS integration documentation)?

不,它不会在本地可用。

secrets-store.csi.k8s.io 使用 managed identity(MSI) 访问密钥库,本质上是对 azure 实例元数据端点进行 API 调用以获取访问令牌,然后使用令牌获取密钥自动,它仅在支持 MSI 的 Azure 环境中可用。

Or do I need to do something like the following as it is outlined here?

是的,要从本地的 azure keyvault 获取机密,您的选择是手动执行此操作,例如使用您提到的 Azure CLI az keyvault secret show