您现在的位置:首页 > >

edgexfoundry 安全模块实现详解 vault kong (shell版)

发布时间:

一、安全功能流程概述
?


    ? ? vault:生成root CA 证书与私钥、edgex-vault证书与私钥(支持https用)? ? vault-worker:(若不存在)生成kong证书与私钥,并保存到vault中去;向consul发起心跳检测,看vault是否存活? ? security-api-gateway:根据token,从vault服务器中获取证书,并上传到kong服务器;管理kong用户、生成JWT字串? ? kong:实现edgexfoundry各微服务的安全访问(获取了JWT,通JWT字串访问后端微服务)

    ?


    ? ?1、vault启动时,生成root CA 证书与私钥,并生成edgex-vault证书与私钥


    ?


    ? ?2、worker启动时,每定时(3分钟)执行如下动作


    ?


    ? ?? ?1.1、探测试vault是否活着,并注册到consul


    ?


    ? ?? ?1.2、上面vault活着的话,则执行vault-kong.sh脚本,它主要动作如下:


    ?


    ? ?? ?? ???1. 2.1 看是vault服务器上是否存在edgex-kong证书(如果本地edgex-kong证书没有,则先生成edgex-kong证书),没有的话就上传到vault


    ? ?


    ? ?3、security-api-gateway :初始化kong(从vault获取证书密钥,并上传到kong)



    二、功能代码详细解读
    2.1 镜像edgexfoundry/docker-edgex-vault制作过程
    ? ?
    2.1.1??Dockerfile.vault文件
    2.1.1??local-tls.json文件
    2.1.2??pki-setup.sh 与 pki-setup-config-vault.env文件?
    2.1.2.1 pki-setup.sh文件
    ? ?? ????#openssl是否存在
    ? ?? ?? ?

      自建了CA,并用此CA签发了vault证书,另外一个kong证书也类似生成local-tls.json定义了vault采用tls 方式访问,注册到consul


      2.2 镜像edgexfoundry/docker-edgex-vault-worker制作过程
      2.2.1??Dockerfile.vault-worker文件
      2.2.2??vault-worker.sh文件
      2.2.3??vault-init-unseal.sh文件
      ? ??? ? # http响应状态码为200时,说明成功,将返回内容中的keys的值放入_INIT_KEY ,root_token的值放入 _ROOT_TOKEN
      ? ?? ?? ?# http响应状态码为400时,说明Vault 已经初始化过,直接从resp-init.json取出_INIT_KEY 与 _ROOT_TOKEN
      ? ???# http响应状态码为200时,说明成功

        docker exec -it bb28361c0bac /bin/sh

      复制代码



      2.2.4??vault-kong.sh文件
      ? ??#查看证书信息
      ? ?? ????#如果返回http 状代码为204,说明保存到vault成功
      2.3 edgexfoundry/docker-edgex-proxy-go镜像

        myEdgex@instance-nbpv5z80:~/gopath/src$ lsedgexsecurity??github.com?myEdgex@instance-nbpv5z80:~/gopath/src/edgexsecurity$ lsbuild.bat??CONTRIBUTING.md??Docker? ?? ?Dockerfile.orgin??glide.yaml??Makefile? ?vendor? ?version.gobuild.sh? ?core? ?? ?? ?? ? Dockerfile??glide.lock? ?? ???LICENSE? ???README.md??VERSION

      复制代码




        glide install

      复制代码



      2.3.1??Dockerfile.gobuildinside文件
      我们采用在镜像内编译的方法,所以解读一下这个文件,此文件我作了修改,内容如下:
      2.3.2??security-api-gateway (简称edgexproxy) 是如何工作的及使用?
      ?


热文推荐
猜你喜欢
友情链接: 大学学习资料 人文社科 经营营销资料 工程资料大全 IT文档 自然科学