【发布时间】:2021-11-14 12:45:57
【问题描述】:
我正在使用 azure key vault 来保存机密并在 deployment.yaml 中用作环境变量。
但问题是我可以在 azure 门户中的 azure kubernetes 集群中看到这些秘密。
我在 kubernetes 文档中读到,我们可以将这些变量用作文件而不是 env 变量,以实现更安全的部署。
我需要做哪些改变才能实现这一目标
这是我的舵图 -
SecretProviderClass.yaml
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
name: azure-keyvault
spec:
provider: azure
secretObjects:
- secretName: database-configs
type: Opaque
data:
- objectName: DB-URL
key: DB-URL
parameters:
usePodIdentity: "false"
useVMManagedIdentity: "true"
userAssignedIdentityID: {{ .Values.spec.parameters.userAssignedIdentityID }}
resourceGroup: {{ .Values.spec.parameters.resourceGroup }}
keyvaultName: {{ .Values.spec.parameters.keyvaultName }}
tenantId: {{ .Values.spec.parameters.tenantId }}
objects: |
array:
- |
objectName: DB-URL
objectType: secret
objectAlias: DB-URL
deployment.yaml
env:
- name: DB-URL
valueFrom:
secretKeyRef:
name: database-configs
key: DB-URL
volumeMounts:
- mountPath: "/mnt/azure"
name: volume
- mountPath: "mnt/secrets-store"
name: secrets-mount
readOnly: true
volumes:
- name: volume
persistentVolumeClaim:
claimName: azure-managed-disk
- name: secrets-mount
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: "azure-keyvault"
在部署时 helm 替换这些值的文件-
settings.ini -
[server]
hostname = "localhost"
hot_deployment = false
url = "$env{DB-URL}"
[user_store]
type = "read_only_ldap"
任何帮助将不胜感激。
我正在寻找同时使用密钥库和 kubernetes 的安全方式
【问题讨论】:
标签: azure kubernetes-helm azure-aks azure-keyvault kubernetes-secrets