我使用天蓝色密钥库来保存秘密,并在deployment.yaml中作为env变量使用。
但问题是,我可以在蔚蓝的库伯内特斯群中看到这些秘密。
我在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-URLdeployment.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"任何帮助都是非常感谢的。
我正在寻找安全的方法来使用金库和库伯奈特斯。
发布于 2021-09-20 22:30:14
这些秘密出现在Azure Portal Kubernetes资源视图中,因为SecretProviderClass azure-keyvault有spec.secretObjects字段。在某些情况下,您可能希望创建一个Kubernetes秘密来反映已装入的内容。使用可选的secretObjects字段来定义同步的Kubernetes秘密对象的所需状态。参考文献
删除spec.secretObjects将阻止挂载的秘密内容与AKS集群同步。
环境变量是一个动态命名的值,可以影响在计算机上运行进程的方式。它们是运行进程的环境的一部分。不应将这些与文件混淆。
Kubernetes文件说,秘密可以通过以下三种方式与Pod一起使用:
我看到您的Helm图表已经设置了秘密卷挂载。这就离开了这里的最后一步
修改您的图像或命令行,以便程序在显示机密的目录中查找文件(在本例中,它看起来像/mnt/secrets-store)。秘密data映射中的每个键都成为mountPath下的文件名。
备注:假设您错过了/:
发布于 2022-04-23 00:00:13
我仍然在寻找一个更好的答案,但这是我尝试过的。
部署一个小虚拟部署,将所有秘密映射到卷映射和环境变量,并与SecretProviderClass匹配。这会在K8S中创建秘密。
现在,使用这些秘密部署头盔图是可行的。
我知道这是部署不必要的东西的开销+它需要高度可用。但却找不到任何解决办法。
寻找更好的答案!
https://stackoverflow.com/questions/69260696
复制相似问题