Vault: 基础教程之密码引擎及动态密码生成
二、密码引擎
在前面看到的所有密码的写入和读出,你可能发现他们都是以secret/
开头的,尝试一下不同的前缀:
vault write foo/bar a=b
会得到一个错误:no handler for route 'foo/bar'
。
因此,前缀代表的是vault所用的密码引擎,默认为secret/
。
启动密码引擎
使用命令vault secrets enable -path=kv kv
可以启动密码引擎kv/
。
也可以使用命令vault secrets list
查看系统中含有的其他引擎。
禁用密码引擎
命令vault secrets disable kv/
可以关闭。
做了以上这些后,到底什么是密码引擎呢?
vault在不同的文件系统上的表现都一致,read/write/delete/list操作都会被转递到这个密码引擎,而密码引擎则会决定如何回应这些操作。
三、动态密码生成
接下来开始体验vault的其他特性了:动态秘钥。和kv(键值对)方式需要你把数据放入不同,动态密码在访问时自动生成,它在你读取之前都不存在,所以也不会有被盗取的风险,因为vault有内置的过期管理办法,动态秘钥可以随时过期。
注意:在开始这一部分前,请先注册好AWS的账户,这里的所有特性都是免费的,但注意你可能产生的任何费用。
启用并配置AWS密码引擎
使用命令vault secrets enable -path=aws aws
可以启用AWS密码引擎。不同的引擎允许不同的行为。
在配置好密码引擎后,需要配置并启用使得它能够和AWS通信,这需要有权限的账户认证,你也可以用root账户秘钥。
$ vault write aws/config/root \
access_key=AKIAI4SGLQPBX6CSENIQ \
secret_key=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
Success! Data written to: aws/config/root
现在上面的信息都被存储在密码引擎中,这个引擎会在将来和AWS通信时使用这些信息。
创建一个角色
接下来我们配置一个角色,角色是友好的标识。vault知道怎么通过AWS的API创建一个IAM用户,不过他也不知道你想在这个用户里使用什么权限,组和权限。这是配置在 - roles的配置选项下的。
举个例子,这里是一个IAM策略,这个策略允许所有的对EC2的操作。当vault生成一个可访问的键时,会自动添加这些策略。生成的一个秘钥具有对EC2的完全访问权限,除了IAM和其他AWS的服务。如果你不熟悉AWS的IAM策略,那也可以,先使用这个先。
{"Version": "2012-10-17","Statement": [{"Sid": "Stmt1426528957000","Effect": "Allow","Action": ["ec2:*"],"Resource": ["*"]}]
}
按照线面所说,我们需要把这个策略文件写入到一个命名的role下,我们将它写入到aws/roles/:name
:
$ vault write aws/roles/my-role policy=-<<EOF
{"Version": "2012-10-17","Statement": [{"Sid": "Stmt1426528957000","Effect": "Allow","Action": ["ec2:*"],"Resource": ["*"]}]
}
EOF
Success! Data written to: aws/roles/my-role
使用上面aws/roles/:name
就是告诉vault,当我请求my-role的验证时,创造并添加IAM的策略{ "Version": "2012..." }
。
生成秘钥和废弃
现在AWS密码引擎是启用的,并配置了角色,我们可以请求vault生成一个可访问的密钥对,通过读取aws/creds/:name
,:name
是一个存在的角色的名字。
$ vault read aws/creds/my-role
Key Value
--- -----
lease_id aws/creds/my-role/0bce0782-32aa-25ec-f61d-c026ff22106e
lease_duration 768h
lease_renewable true
access_key AKIAJELUDIANQGRXCTZQ
secret_key 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
security_token <nil>
现在这个access和secretkey可以用来在AWS部署所有的EC2操作,这些key是心生成的,每次运行这个命令都会重新生成key。注意一下lease_id
,可以用来刷新、废弃和检查。
现在可以使用:
$ vault lease revoke aws/creds/my-role/0bce0782-32aa-25ec-f61d-c026ff22106e
Vault: 基础教程之密码引擎及动态密码生成相关推荐
- Vault: 基础教程之入门及使用介绍
vault介绍 vault 是一个强大的密码管理工具,它基于命令行,是开源的. vault是非常强大的,它具有如下特性: 1. 安全密码存储 2. 动态密码生成 3. 数据加密 4. 租期及更新 5. ...
- Vault: 基础教程之内置帮助及认证
四.内置帮助 现在你已经使用过键值对的密码引擎及AWS下的动态密码生成了,在两个例子之中,结构是使用都是不一样的,那么你要如何记住使用什么路径呢,vault里面有内置的帮助系统,可以通过api或者命令 ...
- Spring Boot 2.x基础教程:Swagger静态文档的生成
前言 通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后,我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了.如果您还不熟悉这块,可以先阅读: Spring Boo ...
- LTspice基础教程-022.从MOS管提取参数生成spice模型
纵向双扩散器件 VDMOS(Vertical Double-diffused Metal Oxide Semiconductor)和横向双扩散器件LDMOS(Lateral Double-diffus ...
- php单独使用blade模板引擎,laravel 基础教程 —— Blade 模板引擎
Blade 模板引擎 简介 Blade 是 laravel 提供的一个简单强大的模板引擎.它不像其他流行的 PHP 模板引擎那样限制你在视图中使用原生的 PHP 代码,事实上它就是把 Blade 视图 ...
- 用友软件动态密码安全认证解决方案
宁盾为用友NC.U8用户在账号密码认证基础之上,增加DKEY动态密码认证选项,提升身份认证安全,与以往方案不同,DKEY动态密码安全认证方案可以为用户提供动态令牌和短信密码两种动态密码形式,无需二次开 ...
- 动态密码算法介绍与实现
动态密码,亦称一次性密码(One Time Password, 简称 OTP),是一种高效简单又比较安全的密码生成算法,在我们的生活以及工作中随处可见,身为开发者,也或多或少在自己的业务系统中集成了二 ...
- 【IoT】加密与安全:动态密码 OTP 算法详解
动态密码,亦称一次性密码(One Time Password, 简称 OTP),是一种高效简单又比较安全的密码生成算法,在我们的生活以及工作中随处可见. 1.动态密码背景介绍 动态密码是指随着某一事件 ...
- OWA动态密码短信认证方案,解决outlook邮件双因子认证问题
OWA(Outlook Web Access),是Exchange邮件的Web访问形式.OWA作为Exchange的Web访问客户端,负责提供邮件Web访问页面.用户只需要使用浏览器通过互联网就能访问 ...
最新文章
- Android Studio快捷键——编辑篇
- spring-data-redis 使用过程中需要注意的地方
- 算法总结之编码(C++)
- android四个组件的跨进程通信
- python socket编程_最基础的Python的socket编程入门教程
- 使用高级管理控制台获得对Windows Home Server的扩展访问
- python3 最简单的实现 模版设计模式
- 北海计算机职称考试地点,【2017年广西北海职称计算机考试报名时间9月1日-5日】- 环球网校...
- java初始化数据报_java – 如何在Docker中初始化数据库后启动flyway
- python 广告滚动,使用python客户端弹性搜索滚动
- 三菱电机NC monitor 序列号申请
- 带头节点的链式存储栈基本操作(进栈、出栈、获取栈顶元素)
- vlan 的三种模式
- 电阻、电感和电容的原理
- 计算机excel插入公式,Excel输入公式
- 怎样把pdf格式转换成jpg
- 程序员副业赚钱之道,实现月收入增加20K
- 名帖288 董其昌 行书《岳阳楼记》
- 人工智能为什么要做全栈工程师
- UE4 安卓手机launch报错
热门文章
- 自增ID有什么坏处?什么样的场景下不使用自增ID? 1
- 安装Redis使用make命令出现make /bin/sh: cc: 未找到命令 make[1]: 离开目录“/usr/local/mytools/redis-5.0.0/src“
- 阿克曼转向几何的设计原理及解决的问题
- Vue3+node.js网易云音乐实战项目(五)
- 修改elementui 的datepicker日期选择器自然周从周一至周日
- VR全景展现预装修,让传统的家装行业不断升级
- Anaconda => PyCharm => CUDA => cudnn => PyTorch 环境配置
- SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询
- MySQL(八):InnoDB 日志缓冲区(Log Buffer)
- win10系统更新后文件丢失的解决办法