概要
シークレット管理ツールの vault を docker コンテンとして起動する方法を紹介します
過去 に CLI ベースで操作する方法を紹介しましたが今回は UI ベースで勧めます
起動後の初期設定と簡単なシークレットの作成方法も紹介します
環境
- macOS 11.7.2
- docker 20.10.21
- vault 1.12.1
起動
-
docker run --cap-add=IPC_LOCK -e 'VAULT_LOCAL_CONFIG={"storage": {"file": {"path": "/vault/file"}}, "listener": [{"tcp": { "address": "0.0.0.0:8200", "tls_disable": true}}], "default_lease_ttl": "168h", "max_lease_ttl": "720h", "ui": true}' -p 8200:8200 vault server
開発用として起動します
UI 付きで SSL オフで起動します
UI アクセス
localhost:8200/ui で vault の管理 UI にアクセスできます
ルートキーとアンシールキーの数としきい値の設定
まずはルートキーを作成します
ルートキーは 1 つしかありません
ルートキーを解除するためにアンシールキーを作成します
アンシールキーは複数の管理者に配布するキーになっており例えば 5 人に配布してそのうち 3 人のアンシールキーを使わないとルートキーを解除することができません
簡単に説明すると
- ルートキー・・・vault にアクセスするためのキー
- アンシールキー・・・ルートキーを使用するためのキー、最低必要キー数を決められる
ルートキーを忘れたり配布したアンシールキーの最低数を分のキーを忘れてしまうと vault には永遠にアクセスできなくなってしまうので注意しましょう
キーの作成完了
どちらもメモしておきましょう
入力する際は基本的にアンシールキー -> ルートキーの順番になります
試しにアンシールする
配布したアンシールキーを使用して vault にアクセスできるようにします
今回は 1 つ分のキーでアンシールできますが threshold で指定した数分アンシールキーが必要になります
vault にログイン
Token を選択して発行されたルートキーを使ってログインしましょう
ちなみに Method のプルダウンを見ると他のサービスの OAuth などとも連携できるのでわざわざルートキーを使ってログインする必要もなくせそうです
シークレットエンジンの作成
とりあえずお試しなので key-value ストアで作成します
パスワード生成
作成した key-value ストアにシークレット情報を登録してみます
Path を入力
Secret data に「key」「value」でシークレット情報を入力
「Save」を選択
これでシークレットの登録ができます
最後に
docker コンテナで vault を立ち上げる方法を紹介しました
トークンは忘れないようにしましょう
今回はローカルファイル上に保存されるのでコンテナを削除されるとすべてのシークレット情報が削除されるので注意してください
次回は Ruby から登録したシークレット情報を取得する方法を紹介します
0 件のコメント:
コメントを投稿