Vault 基礎教程之密碼引擎及動態密碼生成

2021-08-22 16:25:59 字數 2417 閱讀 3319

在前面看到的所有密碼的寫入和讀出,你可能發現他們都是以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的賬戶,這裡的所有特性都是免費的,但注意你可能產生的任何費用。

使用命令vault secrets enable -path=aws aws可以啟用aws密碼引擎。不同的引擎允許不同的行為。

在配置好密碼引擎後,需要配置並啟用使得它能夠和aws通訊,這需要有許可權的賬戶認證,你也可以用root賬戶秘鑰。

$ vault write aws/config/root \

access_key=akiai4sglqpbx6cseniq \

secret_key=z1pdn06b3tnpg+9gwj3pppsolasu08qw99puw+eb

success! data written to: aws/config/root

現在上面的資訊都被儲存在密碼引擎中,這個引擎會在將來和aws通訊時使用這些資訊。

接下來我們配置乙個角色,角色是友好的標識。vault知道怎麼通過aws的api建立乙個iam使用者,不過他也不知道你想在這個使用者裡使用什麼許可權,組和許可權。這是配置在 - roles的配置選項下的。

舉個例子,這裡是乙個iam策略,這個策略允許所有的對ec2的操作。當vault生成乙個可訪問的鍵時,會自動新增這些策略。生成的乙個秘鑰具有對ec2的完全訪問許可權,除了iam和其他aws的服務。如果你不熟悉aws的iam策略,那也可以,先使用這個先。

]}

按照線面所說,我們需要把這個策略檔案寫入到乙個命名的role下,我們將它寫入到aws/roles/:name

$ vault write aws/roles/my-role policy=-<]}

eofsuccess! data written to: aws/roles/my-role

使用上面aws/roles/:name就是告訴vault,當我請求my-role的驗證時,創造並新增iam的策略

現在aws密碼引擎是啟用的,並配置了角色,我們可以請求vault生成乙個可訪問的金鑰對,通過讀取aws/creds/:name:name是乙個存在的角色的名字。

key value

--- -----

lease_id aws/creds/my-role/0bce0782-32aa-25ec-f61d-c026ff22106e

lease_duration 768h

lease_renewable true

access_key akiajeludianqgrxctzq

secret_key wwesnj00w+hhohjmcr7etntcqzmkeseumk/8fytg

security_token

現在這個access和secretkey可以用來在aws部署所有的ec2操作,這些key是心生成的,每次執行這個命令都會重新生成key。注意一下lease_id,可以用來重新整理、廢棄和檢查。

現在可以使用:

$ vault lease revoke aws/creds/my-role/0bce0782-

32aa-

25ec-f61d

-c026ff22106e

Vault 基礎教程之入門及使用介紹

vault 是乙個強大的密碼管理工具,它基於命令列,是開源的。vault是非常強大的,它具有如下特性 1.安全密碼儲存 2.動態密碼生成 3.資料加密 4.租期及更新 5.廢棄 下面來一步步介紹vault。首先我們使用vault server dev開啟vault的開發伺服器,此伺服器僅僅用於開發環...

QWT基礎教程之legends

效果預覽 工程目錄樹如下 headers mainwindow.h panel.h plot.h settings.h sources main.cpp mainwindow.cpp panel.cpp plot.cpp 這裡一共有4個.件,4個.c檔案,涉及到4個主要類 mainwindow pa...

C 基礎教程之引用

c 引用 引用變數是乙個別名,也就是說,它是某個已存在變數的另乙個名字。一旦把引用初始化為某個變數,就可以使用該引用名稱或變數名稱來指向變數。c 引用 vs 指標 引用很容易與指標混淆,它們之間有三個主要的不同 不存在空引用。引用必須連線到一塊合法的記憶體。一旦引用被初始化為乙個物件,就不能被指向到...