代码之家  ›  专栏  ›  技术社区  ›  atkayla

如何为一组具有多个字段的用户设置机密?

  •  0
  • atkayla  · 技术社区  · 6 年前
    apiVersion: v1
    kind: Secret
    metadata:
      name: john-secret
    data:
      USERNAME: abc=
      PASSWORD: def=
    
    apiVersion: v1
    kind: Secret
    metadata:
      name: jane-secret
    data:
      USERNAME: ghi=
      PASSWORD: jkl=
    

    env:
      - name: JOHN_USERNAME
        valueFrom:
          secretKeyRef:
            name: john-secret
            key: USERNAME
      - name: JOHN_PASSWORD
        valueFrom:
          secretKeyRef:
            name: john-secret
            key: PASSWORD
      - name: JANE_USERNAME
        valueFrom:
          secretKeyRef:
            name: jane-secret
            key: USERNAME
      - name: JANE_PASSWORD
        valueFrom:
          secretKeyRef:
            name: jane-secret
            key: PASSWORD
    

    在Node.js应用程序中使用它们 process.env.JOHN_USERNAME 等等。。

    这是可行的,但是有没有一种更干净/更简单的方法来为一组将有多个字段的用户设置机密?我想如果有100个用户x 5个字段的话,这会变得很混乱。

    1 回复  |  直到 6 年前
        1
  •  3
  •   David Maze    6 年前

    你可以 mount the secret as a volume . 改编链接的Kubernetes文档中的示例:

    apiVersion: v1
    kind: Pod
    metadata:
      name: secret-test-pod
    spec:
      containers:
        - name: test-container
          image: nginx
          volumeMounts:
              - name: john-secret
                mountPath: /etc/john-secret
      volumes:
        - name: secret-volume
          secret:
            secretName: john-secret
    

    如果你有一堆秘密,你需要把它们都安装到pod规范中。这本身就是一个可维护性问题。

    我不认为有什么能阻止你使用更结构化的数据对象,比如JSON或YAML文件,作为秘密的值。这可以合理地与安装它作为一个卷相结合。

    Vault 管理起来可能很复杂,但要将此内容的实际安全性作为优先事项,并且您可以对谁可以访问实际机密进行更严格的控制。

    推荐文章