前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >部署企业私密信息管理平台Hashicorp vault集成kubernetes和AWS的密钥信息

部署企业私密信息管理平台Hashicorp vault集成kubernetes和AWS的密钥信息

作者头像
少羽大怪兽
发布2021-04-28 11:13:11
1.2K0
发布2021-04-28 11:13:11
举报
文章被收录于专栏:架构技术架构技术架构技术

一、需求

  目前公司内部网站、项目比较多,运维的密钥管理主要都是靠个人保存,其中包含数据库密钥信息、申请的TLS证书、AWS密钥信息、各管理平台的密钥等,管理混乱,容易丢失,希望有一个平台能统一收集管理、签发、授权、审计。

二、HashiCorp Vault介绍

HashiCorp Vault作为集中化的私密信息管理工具,具有以下特点:

  • 存储私密信息 不仅可以存放现有的私密信息,还可以动态生成用于管理第三方资源的私密信息。所有存放的数据都是加密的,任何动态生成的私密信息都有租期,并且到期会自动回收。
  • 滚动更新秘钥 用户可以随时更新存放的私密信息。Vault提供了加密即服务(encryption-as-a-service)的功能,可以随时将密钥滚动到新的密钥版本,同时保留对使用过去密钥版本加密的值进行解密的能力。 对于动态生成的秘密,可配置的最大租赁寿命确保密钥滚动易于实施。
  • 审计日志 保管库存储所有经过身份验证的客户端交互的详细审核日志:身份验证,令牌创建,私密信息访问,私密信息撤销等。 可以将审核日志发送到多个后端以确保冗余副本。

另外,HaishiCorp Vault提供了多种方式来管理私密信息。用户可以通过命令行、HTTP API等集成到应用中来获取私密信息。HashiCorp Vault也能与Ansible、Chef、Consul等DevOps工具链无缝结合使用。

HaishiCorp Vault官方网站

三、环境介绍

  kubernetes集群环境

四、部署HashiCorp Vault

  • 创建命名空间
kubectl create namespace vault
  • 添加helm repo
helm repo add hashicorp https://helm.releases.hashicorp.com
  • 安装
helm install vault hashicorp/vault -n vault
  • 初始化
kubectl exec -ti vault-0 -c vault -n vault -- vault operator init

Unseal Key 1: O67V+PZGr3OyQd2IjQgH2+7pXZLuIJss5ko+MXb8LcSm
Unseal Key 2: oEdjXv11XrgJqPMuOduda5ygIUdtvaCMoufKF3Fllh9i
Unseal Key 3: /doVpsSdTCnjvfTQL+wfrOgVWI/cMaOR/D0YasL8fV/c
Unseal Key 4: tp8VLTbnwD0p34dn0DBaHEKM/jmtJ0WU1Kp4WG9MvbCC
Unseal Key 5: d6j1CR6jVWEoKShjZ6wT9S5ZFyHo2XldBjb+NzJJRVUd

Initial Root Token: s.8AQ0XD8Yp5Q6IfdXtjsFPCSF

特别注意,这一步会输出5个Unseal Key和一个root token,Unseal Key在后面会用到,一定要记录下来,因为该值只会在初始化时出现。

  • 进行解封,随便取3个,只要达到key threashold即可
kubectl exec -ti vault-0 -n vault -- vault operator unseal # ... Unseal Key 1
kubectl exec -ti vault-0 -n vault -- vault operator unseal # ... Unseal Key 2
kubectl exec -ti vault-0 -n vault -- vault operator unseal # ... Unseal Key 3
  • 完成以上几步操作之后,查看pod是否正常运行
kubectl get pods -l app.kubernetes.io/name=vault -n vault
  • 添加service及ingress
apiVersion: v1
kind: Service
metadata:
  name: vault-portal
  namespace: vault
spec:
  ports:
  - name: "8200"
    port: 8200
    protocol: TCP
    targetPort: 8200
  type: ClusterIP

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
  name: dev.vault.arfront.cn
  namespace: vault
spec:
  rules:
  - host: dev.vault.arfront.cn
    http:
      paths:
      - backend:
          serviceName: vault
          servicePort: 8200
  tls:
  - hosts:
    - dev.vault.arfront.cn
    secretName: dev.vault.arfront.cn
  • 验证

打开网站 dev.vault.arfront.cn,输入上面初始化得到的Initial Root Token: s.8AQ0XD8Yp5Q6IfdXtjsFPCSF,即部署完成。

五、集成管理kubernetes密钥

待补充

六、集成管理AWS密钥

待补充

七、Vault的使用

待补充

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-04-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档