写点什么

使用 Chef-Vault 实现机密信息管理

  • 2016-02-02
  • 本文字数:946 字

    阅读完需:约 3 分钟

Chef-vault 是一款以加密数据包为基础构建的 Chef 工具,可以减少解密密钥在所有用户和基础设施节点之间共享的需求。

在 Chef 基础结构中,加密数据包项是一种常用的机密信息(如密码或 API 密钥)存储方式。问题是,由于数据包是对称加密的,所以加密密钥(共享机密信息)需要分发给所有需要使用加密数据包的各方。

Chef-vault 解决了这个问题,它使用每个需要访问加密数据包的用户和节点的公共密钥加密共享机密信息。由 Chef 服务器管理的每个节点及用户账户都有一个 RSA 密钥对。Chef 服务器存储着公共密钥。Chef 节点和用户工作站存储着私有密钥。

Chef-vault 管理保险库。每个保险库有一个管理员(Chef 用户)和客户端(Chef 节点)的列表。只有这些管理员和客户端可以看到保险库的内容。一个保险库是一个数据包,包含两个数据包项。一个存储包含共享机密信息(比如数据库密码)的加密项。另一个存储管理员和客户端列表以及每个管理员和客户端的非对称加密共享机密信息。

每当 chef-vault 创建一个新的加密数据包,它首先会使用 SecureRandom.random_bytes 生成一个长为 32 个字节的随机字符串作为共享机密信息。然后,它会检索每个管理员和客户端的公共密钥,用它加密共享机密信息。这个过程减少了分发共享机密信息的需求,提供了一种更简单的方法控制对指定加密数据包项的访问。Chef-vault 还提供了一个 rotate_keys 操作,顾名思义,它会新建一份共享机密信息,并使用所有管理员和客户端的公共密钥加密它。

Chef-vault 有一些局限。至少这一次,它还不能很好地处理自动扩展,还需要人为增加或删除客户端(比如节点),或者像 Peter Burkholder 在一篇有关 chef-vault 的文章中所描述的那样,借助于“可以访问国王之钥的特权节点”。另外,无法替换已提供的密钥机制,不过, chef-vault 3.x.x 将会使用一个插件架构来解决这个问题。

机密信息管理是分布式可扩展环境的一个难题。Chef-vault 是一款特定于Chef 的工具,有好处也有不足。还有其他一些机密信息管理方案,有些是开源的,如Hashicorp 的 Vault 或 Square 的 Keywhiz ,有些是商业的,如 Amazon KMS Conjur

Nordstrom 是 Chef-vault 最初的开发者。该项目已于 2015 年 11 月转移到 Chef 项目之下,因此,有足够的资源维继它的开发。

查看英文原文: Secrets Management with Chef-Vault

2016-02-02 18:002148
用户头像

发布了 1008 篇内容, 共 446.2 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

【Spring Boot 12】看完这篇,nginxkeepalived原理

Java 程序员 后端

《码出高效:Java开发手册,java基础编程视频

Java 程序员 后端

《黑马程序员》通讯录管理系统实战,java程序设计实用教程第二版课后题答案

Java 程序员 后端

【2021软件创新实验室暑假集训】SpringBoot框架

Java 程序员 后端

【Java 强化】单元测试,linux驱动开发入门与实战pdf

Java 程序员 后端

【Java8 新特性 3】Supplier简介,springboot面试题

Java 程序员 后端

《菜菜的机器学习sklearn课堂》数据预处理和特征工程

Java 程序员 后端

【Java程序员必知必会的90个细节】1,java面试题选择题

Java 程序员 后端

【Java笔记】数组的处理方法,idea搭建springboot入门

Java 程序员 后端

[译] 微服务的设计模式,java后端面经

Java 程序员 后端

【Java基础】枚举,nginx源码分析pdf百度网盘

Java 程序员 后端

“我骑着我心爱的小摩托,他又在这里翻车了,mybatisdao接口工作原理

Java 程序员 后端

“打工人”都在用的邮件使用规范,springcloud架构源码

Java 程序员 后端

《恋上数据结构第1季》B树,java基础案例教程第二版答案

Java 程序员 后端

《深入理解Java虚拟机 1》Java内存区域与内存分配策略

Java 程序员 后端

《深入理解Java虚拟机 3》类加载机制与字节码执行引擎

Java 程序员 后端

《零基础》MySQL 管理(三),java程序设计精编教程第三版课后答案

Java 程序员 后端

「Java」几种典型的内存溢出案例,学习linux的书籍

Java 程序员 后端

【Java后端】杭州三面字节,等hr面,虐慌!分享面经和刷过的面试题

Java 程序员 后端

“三次握手,四次挥手,java程序设计教程第三版雍俊海pdf

Java 程序员 后端

《重构 改善既有代码的设计 3》代码的可理解性应该是我们虔诚追求的目标

Java 程序员 后端

「一探究竟」迷之序列化,Java性能优化最佳实践

Java 程序员 后端

【Java 多线程 2】Java线程池详解,java多线程面试算法

Java 程序员 后端

【MyBatis 6】Statement,mysql基础教程西泽pdf

Java 程序员 后端

《JVM系列》 第六章 -- 对象的实例化与内存布局

Java 程序员 后端

《Spring实战》读书笔记-第2章 装配Bean,kafka调优面试

Java 程序员 后端

《恋上数据结构第1季》二叉树代码实现,mongodb持久化原理

Java 程序员 后端

《零基础》MySQL 连接的使用(二十),mybatis实现分页原理

Java 程序员 后端

【Docker 系列】我们来看看容器数据卷到底是个啥

Java 程序员 后端

【Effective Java】10,javaee架构设计与开发实践

Java 程序员 后端

【Java核心面试宝典】Day1,java高级工程师面试宝典

Java 程序员 后端

使用Chef-Vault实现机密信息管理_安全_João Miranda_InfoQ精选文章