我的应用程序运行在Kubernetes上,它需要一些敏感数据才能运行应用程序。例如,DB用户名和密码。目前,我将这些敏感值作为环境变量传递到Kubernetes定义文件中。
由于这种方式不安全,我部署了保险库,现在我需要用保险库验证我的应用程序。我还在保险库中创建了秘密,并使用'AppRole‘方法进行身份验证。我得到了RoleID和SecretID。
如何从我的应用程序中指定保险库并进行身份验证?在我的Kubernetes部署文件中将RoleID和SecretID作为环境变量传递是否足够?
发布于 2022-08-13 15:55:00
当然可以在用例中使用AppRole
auth方法,因为近似auth方法允许机器或应用程序使用Vault定义的角色进行身份验证。
启用AppRole
auth方法,为应用程序创建必要的policies
&Generaterole_id
,secret_id
。您可以创建包含这些值的K8s秘密。
apiVersion: v1
kind: Secret
metadata:
name: auth-secret
type: Opaque
data:
VAULT_APPROLE_ROLE_ID: <role_id>
VAULT_APPROLE_SECRET_ID: <secret_id>
现在,在您的应用程序中引用它:
spec:
containers:
- name: test-container
image: <image_name>
command: [ "/bin/sh", "-c", "env" ]
envFrom:
- secretRef:
name: auth-secret
https://stackoverflow.com/questions/72977456
复制相似问题