LoginSignup
5
5

More than 5 years have passed since last update.

chefでdata_bagの暗号化

Last updated at Posted at 2014-12-20

例えば

MHA用の鍵とかをchefで配ってるんだが、 生fileとして配布はかっこ悪い。

なんか暗号化とか出来ないのかなーと探してみたらちょうどいいのがあった。

knife-solo_data_bag

公式にも書いてる

さっくり使えるようになる所まで書いていく

準備

#install
#
# gem install knife-solo_data_bag
#
#秘密鍵準備
#
# openssl rand -base64 512 > .chef/data_bag_key
#
#knifeのconfig
#
# cat .chef/knife.rb 
cookbook_path    ["site-cookbooks"]
node_path        "nodes"
role_path        "roles"
environment_path "environments"
data_bag_path    "data_bags"
encrypted_data_bag_secret ".chef/data_bag_key"

data_bag編集

# editor指定
#
# export EDITOR=vim
#
# 鍵を使って編集
#
# knife solo data bag create kakeru kaeru --secret-file .chef/data_bag_key 
{                                                         
  "id": "kaeru",                                          
  "kakeru_key": "-----BEGIN DSA PRIVATE KEY-----\nhogehoge"
}                                                         
# こんな感じでjson_fileを編集
# 作れたかしら?
#
# cat data_bags/kakeru/kaeru.json 
{
  "id": "kaeru",
  "kakeru_key": {
    "encrypted_data": "EYapYk8BKax0HwfWhd2Px9IG/cWxQ9LRpeXPZirnUPuH8dtIvIyP3+pm2EcC\nUapBJSsyQSDQr3QLKmNWsj7bBg==\n",
    "iv": "GvVOtBO3WnM81jxbz3iGKw==\n",
    "version": 1,
    "cipher": "aes-256-cbc"
  }
}

み!

見えへん!!!!!!!!!!!

ちなみに、もう一回編集したいならこう

knife solo data bag edit kakeru kaeru

どうやってrecipeから呼び出すの?

kaeru = Chef::EncryptedDataBagItem.load("kakeru", 'kaeru')
kaeru_key = kakeru['kakeru_key']

こんな感じ
後はお好きに使う感じで

5
5
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
5
5