| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 微服务架构系列主题:HashiCorp Vault介绍 -> 正文阅读 |
|
[系统运维]微服务架构系列主题:HashiCorp Vault介绍 |
目录 HashiCorp Vault是一款企业级私密信息管理工具。说起Vault,不得不提它的创造者HashiCorp公司。HashiCorp是一家专注于DevOps工具链的公司,其旗下明星级产品包括Vagrant、Packer、Terraform、Consul、Nomad等,再加上Vault,这些工具贯穿了持续交付的整个流程。 HashiCorp Vault在2016年四月进入了ThoughtWorks技术雷达,位于Tools分类,处于ACESS级别。在2017年3月份最新一起Tech Radar中,HashiCorp Vault已经处于TRIAL级别。 HashiCorp Vault | Technology Radar | Thoughtworks 为什么要使用HashiCorp Vault?在企业级应用开发过程中,团队每时每刻都需要管理各种各样的私密信息,从个人的登陆密码、到生产环境的SSH Key以及数据库登录信息、API认证信息等。通常的做法是将这些秘密信息保存在某个文件中,并且放置到git之类的源代码管理工具中。个人和应用可以通过拉取仓库来访问这些信息。但这种方式弊端很多,比如跨团队分享存在安全隐患、文件格式难以维护、私密信息难以回收等。 尤其是微服务大行其道的今天,如何让开发者添加私密信息、应用程序能轻松的获取私密信息、采用不同策略更新私密信息、适时回收私密信息等变得越来越关键。所以企业需要一套统一的接口来处理私密信息的方方面面,而HashiCorp Vault就是这样的一款工具。 HashiCorp Vault的特性HashiCorp Vault作为集中化的私密信息管理工具,具有以下特点:
另外,HaishiCorp Vault提供了多种方式来管理私密信息。用户可以通过命令行、HTTP API等集成到应用中来获取私密信息。HashiCorp Vault也能与Ansible、Chef、Consul等DevOps工具链无缝结合使用。 HashiCorp 架构HashiCorp对私密信息的管理进行了合理的抽象,通过优良的架构实现了很好的扩展性和高可用。
Vault提供了各种Backend来实现对各种私密信息的集成和管理。比如Authentication Backend提供鉴权,Secret Backend用于存储和生成私密信息等。 Secret类型Vault支持一系列不同的秘密类型,可以解决不同的用例:
每种秘密类型由以下属性定义:
可以通过路径访问给定的秘密实例 ,非常类似于文件系统中的目录树。此路径的第一个组件对应于此类型的所有机密所在的安装点。 例如,字符串 secret / my-application 对应于我们可以在其中找到my-application的键值对的路径 。 Key-Value Secrets顾名思义,键值Secrets是指在给定路径下可用的简单键值对。例如,我们可以在path / secret / my-application下 存储foo = bar对 。 稍后,我们使用相同的路径来检索相同的一对或多对 - 多对可以存储在同一路径下。 Vault支持三种Key-Value机密:
密钥值秘密本质上是静态的,因此没有到期的概念与它们相关联。这种秘密的主要使用场景是存储凭证以访问外部系统,例如API密钥。 在这种情况下,凭据更新是半手动过程,通常需要有人获取新凭据并使用Vault的命令行或其UI来输入新值。 动态生成的Secrets当应用程序请求时,Vault会动态生成动态机密。Vault支持多种类型的动态机密,包括以下几种:
所有这些都遵循相同的使用模式。首先,我们使用连接到关联服务所需的详细信息配置secret引擎。然后,我们定义一个或多个角色, 描述实际的secret创建。 我们以数据库secret引擎为例。首先,我们必须使用所有用户数据库连接详细信息配置Vault,包括来自具有管理员权限的预先存在的用户的凭据以创建新用户。 然后,我们创建一个或多个角色(Vault角色,而不是数据库角色),其中包含用于创建新用户的实际SQL语句。这些通常不仅包括用户创建语句,还包括访问模式对象(表,视图等)以及所有必需的 grant语句。 当客户端访问相应的API时,Vault将使用提供的语句在数据库中创建新的临时用户并返回其凭据。然后,客户端可以使用这些凭据在请求角色的生存时间属性定义的时间段内访问数据库。 凭证到达其到期时间后,Vault将自动撤消与此用户关联的任何权限。客户端还可以请求Vault续订这些凭据。只有在特定数据库驱动程序支持且相关策略允许的情况下,才会进行续订过程。 加密密钥这个类型的秘密引擎处理加密,解密,签名等加密功能。所有这些操作都使用Vault内部生成和存储的加密密钥。除非明确告知,否则Vault将永远不会公开给定的加密密钥。 关联的API允许客户端发送Vault纯文本数据并接收其加密版本。相反的情况也是可能的:我们可以发送加密数据并取回原始文本。 目前,只有一种这种类型的引擎:Transit引擎。此引擎支持流行的密钥类型,如RSA和ECDSA,还支持 Convergent Encryption。使用此模式时,给定的明文值始终会产生相同的密文结果,这种属性在某些应用程序中非常有用。 例如,我们可以使用此模式加密事务日志表中的信用卡号。使用收敛加密,每次插入新事务时,加密的信用卡值都是相同的,因此允许使用常规SQL查询进行报告,搜索等。 总结HashiCorp Vault作为私密信息管理工具,比传统的1password等方式功能更强大,更适合企业级的应用场景。在安全问题越来越严峻的今天,值得尝试HashiCorp Vault。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 23:00:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |