在容器中使用证书(.pem)文件的最佳实践

时间:2020-09-03 19:40:27

标签: docker kubernetes certificate

我正在学习docker / k8s;我想将.pem文件传递/存储到在k8s集群上运行的boostrap容器中。此容器使用.pem来创建k8s秘密(kubectl创建秘密...),通过安装kubernetes秘密,该文件将由在k8s上运行的其他应用程序使用。

我可以想到以下选项,

  • 我可以将.pem详细信息作为ENV传递给容器。
  • 我可以使用.pem文件构建图像。
  • 我可以将.pem文件存储在S3中,然后从容器中下载它。

想了解其中哪种是完成此任务的最佳实践/安全方法。

1 个答案:

答案 0 :(得分:0)

我已经看到它以多种方式完成,但是我建议使用配置映射,这样pem文件就可以驻留在您的k8s集群中,而您不必在s3之内处理加密。此外,如果您将其包含在Docker代码中,那么这将允许您的devops团队而不是应用程序开发人员来处理维护工作

Config Map Kubernetes Docs

  1. 创建配置图

    kubectl -n <namespace-for-config-map-optional> create configmap ca-pemstore — from-file=my-cert.pem
    
  2. 将新配置添加到您的pod yaml文件

     apiVersion: v1 
     kind: Pod
     metadata:
       name: <some metadata name>
     spec:
         containers:
         - name: <container name>
           image: <container image>
           volumeMounts:
           - name: ca-pemstore
             mountPath: /etc/ssl/certs/my-cert.pem
             subPath: my-cert.pem
             readOnly: false
           ports:
           - containerPort: 80
           command: ...
           args: ...
         volumes:
         - name: ca-pemstore
           configMap:
             name: ca-pemstore