Vault Plugin简介及安装步骤
Vault 简介
Vault 是机密数据储存和管理解决方案,可将机密或敏感的资讯安全的储存,并且设定各个使用者可以获取的权限,每一个操作Vault的动作也都可以被audit记录下来,如有数据外泄的状况发生,可以即时查找问题。
安装指南在网络上已经有不少范例,大家可以参考官方文件或中文教学进行安装。
操作介面
当我们进入Vault GUI时,可以看到下列这个画面,上方的选单列就是常用的vault 功能,secret负责存放机密数据、Access 负责角色的权限、Policies 决定那些机密数据可以被角色读取或写入等操作,本篇文章要介绍的就是如何写一个ethereum HD wallet的plugin,此Plugin的类别归类在secrets下,利用此plugin可以产生注记词及相对应的derivation path 的Account。
Vault Web UI
Vault Plugin 简介
Vault Plugin是扩充功能的概念,就像乐高一样,你可以把不同的功能加入Vault,也能根据需求去建立客制化的功能。每个Plugin是完全是独立于Vault Core之外的,两者之间的沟通靠RPC,好处是Plugin如果出现问题,不会整个Vault都跟着当机,也因为它们是两个不同的process所以并不会共用存储器,外挂也只能取得Vault上特定的参数。
Vault Core 与Plugin的通讯靠的是Mutual TLS确保安全性及双方的身分,并且和Plugin的RPC 服务沟通,在执行Plugin时Vault 会传wrapping token 给外挂,解开token 之后就会得到给Plugin使用的TLS证书跟私钥,用以跟Vault沟通。从下图注册Plugin的流程,就可看出Vault 跟Plugin之间的互动关系。
Vault Plugin注册的流程图
Vault Plugin 安装步骤
安装Plugin主要分为两个步骤: 注册及启用,以下将会介绍如何安装。
建立Plugin 注册Plugin 启用Plugin
建立Plugin
Plugin用Golang撰写,用go build指令就可以建立可执行档了
go build -o <输出路径> *.go
可参考官方的Sample Plugin
注册Plugin
当我们把Plugin建立完成,打包成Plugin Binary档案后,要将该Plugin放到Vault设定中指定的资料夹,Vault只认定这个资料夹的里面的Plugin,只有资料夹中的Plugin才可以被Vault注册,资料夹路径可在Vault config中设定。(设定档官方文件)
# Config file (HCL format)plugin_directory = "/vault/plugins"
将Plugin放到设定的资料夹后,我们要将Plugin加入到Plugin catalog,也就是注册,Vault会去确认Plugin的杂凑值是不是跟Plugin是一样的,避免Plugin Binary是被骇客窜改过的,注册成功后就可以在列表中找Plugin
$ vault write sys/plugins/catalog/database/
查找Secret Plugin,以下会列出已经注册的Plugin名称
vault plugin list secret vault plugin list auth
启用Plugin
这时Plugin已经在Vault的列表上了,接着启用该Plugin,Vault会给Plugin一组mutual TLS加密的证书及金钥,现在Vault 跟Plugin就可以开始沟通了。
vault secrets enable
使用Plugin
vault write
结语
Vault近期越来越火红,也有人使用Plugin进行私钥的管理,例如、vault-etheruem和vault-blockchain,我也写了一份用HD Wallet管理私钥的Vault Plugin ,原始代码已经在GitHub上,下一篇文章会以此当作范例讲解Plugin的架构。
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。