工具总结篇——vault

Vault是用来安全的获取秘密信息的工具,它可以保存密码、API密钥、证书等信息。Vault提供了一个统一的接口来访问秘密信息,其具有健壮的访问控制机制和丰富的事件日志。

Vault解决多用户不同身份访问关键信息时,授权的复杂问题。Vault为安全的存储、管理审计日志提出一个解决方案

vault提供特性描述

数据加密 :vault 能够在不存储数据的情况下对数据进行加密、解密。开发者便可以存储加密后的数据而无需开发加密技术,Vault允许安全团队自定义安全参数。

安全密码存储: vault在将秘密信息(api密钥,密码,证书)存储到持久化存储之前对数据进行加密。这样即使加密后的信息也是不可读的。

动态密码 :vault可以随时为AWS、SQL资料库等类似的系统产生密码。比如,如果应用需要访问AWS S3 buket,它向vault请求AWS密钥对,vault将给出带有租期的所需秘密信息。一旦租用期过期,这个密码信息就不再存储。

租赁和更新:vault给出的秘密信息带有租赁时间,一旦租用期过期,它便立即回收秘密信息,如果应用仍需要该秘密信息,则可以通过API更新租用期。

撤销 :在租用到期之前,vault可以撤销一个秘密信息或者一个秘密信息树。

vault使用例子

存储用户secret

1.用户通过接口上传自己的secret,vault将用户上传的内容加密后写入MySQL。

➜ vault vault write secret/org-2345 organizationID=org-2345 publickey=test0512
Success! Data written to: secret/org-2345

2.用户存储的secret通过以下接口进行展示。

➜  vault vault read -format=json secret/org-2345
{
    "request_id": "08ef64d6-0b11-4da3-30f0-a0dc7e5e90fd",
    "lease_id": "",
    "lease_duration": 2764800,
    "renewable": false,
    "data": {
        "organizationID": "org-2345",
        "publickey": "test0512"
    },
    "warnings": null
}
➜ 

生成用户带有租期的token

➜  vault vault token-create 
Key             Value
---             -----
token           54d4106c-f56d-4f26-8a4a-e3f72971803e
token_accessor  7417f4c5-aaf0-2ca9-054b-ac147fb4b9fc
token_duration  0s
token_renewable false
token_policies  [root]

vault 需要配置mysql作为backend持久化存储数据

初次配置的过程中会产生如下所示的信息:

Unseal Key 1: QIUHbvNE/LKlbg4zHi/6ykp8Lvmnpjxz7rSUOw1WWy4
Unseal Key 2: 1LhCk50IskEkcGDxNmOz3k3au8yKHfkmcApIQ/51GA+
Unseal Key 3: al0yAEvRceJUMyE0nYjzKIOq2Hgklf0YIcS/W/HxE1m
Unseal Key 4: ce6OGY0qeU1qGC8fpu1McswiMYWiWLSK1mbz2jeHEZI
Unseal Key 5: 0jid0L+7hBTu4eanPw9Bjnl9VaBuKyWpl6jBl/WdXjP
Initial Root Token: 0636ad41-867a-8b0a-4322-beb1c57b9b9

Vault initialized with 5 keys and a key threshold of 3. Please
securely distribute the above keys. When the vault is re-sealed,
restarted, or stopped, you must provide at least 3 of these keys
to unseal it again.

Vault does not store the master key. Without at least 3 keys,
your vault will remain permanently sealed.

vault可以配置使用进行seal/unseal的密钥的个数。

vault init -key-shares=1 -key-threshold=1

优点:

vault server启动默认的状态为sealed状态,vault 被配置知道如何访问物理存储,但是不知道如何解密数据。

unseal是程序构造一个主密钥去读取加密后的数据并解密数据,只有在unseal状态,才可以针对vault做操作。

1.vault配置后端mysql的方法:

https://www.vaultproject.io/docs/configuration/storage/mysql.html

2.vault配置mysql secret backend

https://www.vaultproject.io/docs/secrets/mysql/index.html

### 在 Obsidian 中实现文件创建日期功能的方法 在 Obsidian 中,可以通过多种方式实现文件创建日期的功能。以下是几种常见的方法及其具体操作: #### 方法一:利用模板插件 (Note From Template) Obsidian 提供了一个名为 `Note From Template` 的社区插件[^4],可以用来设置默认的笔记模板,在每次新建笔记时自动填充特定的内容。 1. **安装插件**: 打开 Obsidian 设置中的“社区插件”选项卡,搜索并启用 `Note From Template` 插件。 2. **配置模板**: 创建一个新的 `.md` 文件作为模板,例如命名为 `DefaultTemplate.md`,并在其中写入如下内容: ```markdown --- created: {{date}} --- # 新建笔记标题 这是一新笔记,默认创建时间为:{{date}}。 ``` 3. **应用模板**: 当你通过右键菜单或其他快捷方式创建新笔记时,可以选择此模板,从而自动生成带有当前时间戳的笔记。 这种方法的优点在于灵活性高,可以根据需求调整模板结构和样式。 --- #### 方法二:借助日历插件 (Calendar Plugin) 另一个可行方案是使用官方支持或者第三方开发的日历类工具——比如 `obsidian-calendar-plugin`[^2]。虽然它的主要用途是用来展示月视图下的日记条目分布情况,但它也间接提供了记录每文章首次编辑时刻的能力。 - 如果启用了该扩展,则每天都会有一个对应的每日笔记被生成出来;而这些文档的名字通常会按照 yyyy-mm-dd 格式命名,因此很容易从中提取出确切的时间信息。 需要注意的是,这种方式更适合于那些希望坚持写作习惯的人群,因为它强制要求每天都得有所产出才会形成完整的序列。 --- #### 方法三:手动脚本定制化解决方案 对于高级用户而言,还可以考虑编写 JavaScript 脚本来进一步增强自动化程度。下面给出一段简单的例子来演示如何获取当前系统的本地时间并将之保存至 Frontmatter 区域内: ```javascript // main.js const now = new Date(); await app.vault.create('NewFile_' + now.toISOString().split('T')[0], ` --- created_at: ${now.toJSON()} --- # 自动化的笔记标题 这是由脚本生成的一份新的笔记。\n`); ``` 上述代码片段展示了怎样动态地向指定路径下新增加一个包含元数据字段 (`created_at`) 的 markdown 文档实例。当然实际部署前可能还需要额外处理诸如重复检测之类的边界条件等问题。 --- ### 总结 综上所述,无论是采用现成可用的各种插件还是自己动手打造专属逻辑流程,都可以很好地满足关于在 Obsidian 平台里标注资源诞生瞬间的需求。选择哪一种取决于个人偏好以及现有工作流的具体状况等因素考量之后再做决定即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值