【问题标题】:How to connect Azure-key-vault with a AKS pod?如何将 Azure-key-vault 与 AKS pod 连接?
【发布时间】:2021-06-20 00:59:06
【问题描述】:

我在 AKS 中使用 HelmChart 部署了带有 docker 文件的 nodeJs 应用程序,并且我在 Azure 门户中有带有一些密钥的 azure key vault,我需要将正在运行的 POD 与该 KeyVault 连接。

【问题讨论】:

  • 有关于这个问题的更新吗?
  • 实际上我正在寻找示例应用程序,我将在其中尝试上述场景谢谢...
  • 查看我发布的文档中的快速入门页面。

标签: node.js azure kubernetes azure-keyvault


【解决方案1】:

我使用akv2k8s。

Akv2k8s 包含两个主要组件:

  1. akv2k8s 控制器将 Azure Key Vault 对象作为本机 Secret 同步到 Kubernetes
  2. akv2k8s 注入器将 Azure Key Vault 对象作为环境变量直接注入到您的应用程序中。

图表:

在开始安装之前,我建议阅读How it works? 页面。

稍后,关注installation overview页面以设置环境。

如果你想用 helm 安装 akv2k8s。我为我的 CI\CD 进程创建了这个代码 sn-p:

# Create a dedicated namespace for akv2k8s
kubectl create ns akv2k8s

# Add Helm repository
helm repo add spv-charts http://charts.spvapi.no
helm repo update

# Install the Controller (and the "AzureKeyVaultSecret" CRD)
helm install azure-key-vault-controller spv-charts/azure-key-vault-controller --namespace akv2k8s

# Install the Env-Injector
helm install azure-key-vault-env-injector spv-charts/azure-key-vault-env-injector --set installCrd=false --namespace akv2k8s

简单的example:

cat << EOF | kubectl apply -f -
apiVersion: spv.no/v1alpha1
kind: AzureKeyVaultSecret
metadata:
  name: secret-sync 
  namespace: $(K8S_NAMESPACE)
spec:
  vault:
    name: ${KEY_VAULT_NAME} # name of key vault
    object:
      name: $(KEY_VALUT_OBJECT_NAME)  # name of the akv object
      type: $(KEY_VALUT_TYPE) # akv object type
EOF

【讨论】:

    【解决方案2】:

    现有答案的替代方案(我认为这个现有答案是可行的方法)将使用AAD Pod Identity。基本上,它是一种让您在 pod 内拥有应用程序身份的方式。这样您就不必对身份进行微观管理,也不必将凭据传递给应用程序(只需使用内部端点)。类似于 Kubernetes 之外的 Azure 中的托管标识。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-12
      • 2019-08-11
      • 1970-01-01
      • 2020-02-09
      • 2021-11-07
      • 2021-10-22
      • 2021-10-09
      • 2021-02-18
      相关资源
      最近更新 更多