0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VaultでDBクレデンシャルを使う方法

Last updated at Posted at 2023-03-29

DBクレデンシャル

まずは現状確認

vault secrets list

database シークレットを追加

vault secrets enable -path=lob_a/workshop/database database

MySQLのDBの接続情報を設定

内容はこんなもの
dbname:mysqldatabase
username:hogehoge
password:fugafuga

# DB接続情報の設定 mysqldatabase というDBの場合、ここではapp,app-log2つのroleを許可しています。
vault write lob_a/workshop/database/config/mysqldatabase \
  plugin_name=mysql-database-plugin \
  connection_url="{{username}}:{{password}}@tcp(localhost:3306)/" \
  allowed_roles="app","app-long" \
  username="hogehoge" password="fugafuga"

# DB接続情報設定の確認
vault read lob_a/workshop/database/config/mysqldatabase -format=json

# DBログイン確認
mysql -u hogehoge -phugahuga

# 設定したrootパスを変更しておきましょう
vault write -force lob_a/workshop/database/rotate-root/mysqldatabase
→以降↑のrootパスは使えない

DB接続用の Vault のroleの作成

vault write lob_a/workshop/database/roles/app-long \
  db_name=mysqldatabase \
  creation_statements="CREATE USER '{{name}}'@'%' IDENTIFIED BY '{{password}}';GRANT ALL ON my_app.* TO '{{name}}'@'%';" \
  default_ttl="1h" max_ttl="24h"

ちなみに、
TTLが終了すると、Vault は MySQL データベースからクレデンシャル情報を削除します。TTLの延長は、まだ到達していない場合にのみ機能します。
また、max_ttl パラメータで指定された期間を超えて延長することはできません。

roleに紐づくクレデンシャルを生成

# VaultAPIでapp-longというroleに対してクレデンシャルを生成
curl --header "X-Vault-Token: root" "http://localhost:8200/v1/lob_a/workshop/database/creds/app-long" | jq .
# vault コマンドの場合こちら
vault read lob_a/workshop/database/creds/app-long

# 生成された(表示された)クレデンシャルでログイン 
# ↑で表示された<username><password>代入
mysql -u <username> -p<password>

# クレデンシャル情報の更新 たとえばTTLを2400秒へ 
# ↑で表示された<lease_id>代入
vault write sys/leases/renew lease_id="<lease_id>" increment="2400"

# 延長されていること
vault write sys/leases/lookup lease_id="<lease_id>"


クレデンシャルを破棄

vault write sys/leases/revoke lease_id="<lease_id>"
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?