2023年1月6日金曜日

vault をコンテナで起動してみた

vault をコンテナで起動してみた

概要

シークレット管理ツールの 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 ストアで作成します

右上の「Enable new engine」を選択

Generic -> KV を選択

Path を入力して「Enable Engine」で作成

パスワード生成

作成した key-value ストアにシークレット情報を登録してみます

「Create secret」を選択

Path を入力
Secret data に「key」「value」でシークレット情報を入力
「Save」を選択

これでシークレットの登録ができます

最後に

docker コンテナで vault を立ち上げる方法を紹介しました
トークンは忘れないようにしましょう
今回はローカルファイル上に保存されるのでコンテナを削除されるとすべてのシークレット情報が削除されるので注意してください

次回は Ruby から登録したシークレット情報を取得する方法を紹介します

参考サイト

0 件のコメント:

コメントを投稿