LoginSignup
1
1

More than 3 years have passed since last update.

chef vault : how it works

Last updated at Posted at 2019-09-10

1) chef vaultとは

  • chefが提供しているデータの暗号化の仕組み
  • なんのデータ?chefが管理するサーバ毎のデータ。
  • どんなユースケース?もっともあり得るのはroot passwordの管理をchefサーバでやる時
  • chef vaultとは、という内容はchefのdocを読めばわかるけど、普段そんなに使わないので、どう使うのか、はすぐ忘れるのでまとめる

2) 準備

  • chefサーバと通信できるknifeコンフィグ(ユーザのpemファイルなどの設定を書いたもの)が必要。
  • knifeコマンドでvaultを設定する

3) vaultの作成


knife vault create rp exp1
#  rpというvault(data bag)を作成、その中に、exp1というvault itemを作成

knife vault update rp exp1 -A "gggg"
# ggggという名前のadminユーザを追加(chef serverのユーザ名)。あとでvaultアイテムを編集する権限を特定のユーザに付与

export EDITOR=vim
knife vault edit rp exp1
{
  "password": "xxx",
  "timestamp": "xxxx"
}
# 適当なjson形式のデータを入れる。この場合は、パスワードと日付を入れる。このデータが暗号化される

knife vault create rp exp1 '{"password": "xxxxxx", "timestamp": "xxxxx"}' -S mynodes_password:exp1 -A admin-a, admin-b
# ワンライナーでもできる
# このときSオプションでサーチクエリをセットしておくと便利

knife vault show rp exp1 -Fjson -p all
# 暗号化された情報はadmin権限がある人とrp:exp1が適用されたサーバだけが復号できる


4) サーチクエリ

1.サーバ構築
2.chefで構成管理スタート(このときに、chefのrecipeか何か(roleでもnodeでもなんでもOK)で、例えばattribute{"mynodes_password" : "exp1"}をサーバに適用する。)
-> すると、さっきvaultに設定したサーチクエリにこのattributeが一致して、vaultがこのサーチクエリでヒットしたサーバに適用できるようになる

5)その他

knife vault refresh/update
# 仮にデータ(この場合はパスワード)が変更になったらvaultをrefresh

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1