パスワードを暗号化せずに playbook へ保存『セキュリティの話②』
自動化は動いている。
デプロイも楽になった。
その裏で 情報漏えいリスクは爆増。
原因は パスワードを平文のまま playbook に書いていること。
Ansible 初学者が「とりあえず動かす」でやりがちな、静かに危険な設定だ。
冒頭の一言要約
playbook に平文パスワードは“事故待ち”。
自動化できていても、セキュリティはゼロ点。
症状(あるある)
Git に playbook をそのまま置いている
DB パスワードが yaml に直書き
社内共有フォルダに playbook がある
退職者も過去のパスワードを知っている
ログに認証情報が出ている
「まだ漏れてないから大丈夫」と思っている
原因と仕組み(なぜ起きるか)
playbook はただのテキストファイル
Git 履歴に一生残る
アクセス権をミスると誰でも読める
CI/CD ログに出力されることがある
コピペで他案件に流用される
「一時的」のつもりが本番化
Ansible や IaC は
安全に書かないと、漏えいを量産する道具になる。
平文保存は、
侵入されなくても“内部漏えい”を自分で作る行為だ。
図:平文保存の危険な流れ
[playbook.yml]
│ パスワード直書き
▼
[Git / 共有フォルダ]
│
├─ 誰でも読める
├─ 履歴に永遠保存
└─ CIログに出力
↓
情報漏えいリスク
切り分け(最短コース)
playbook 内の平文確認
password: xxxx
secret: xxxx
Git 履歴の検索
git log -p | grep password
共有範囲の確認
リポジトリアクセス権
社内共有フォルダ権限
CI/CD ログの確認
認証情報が出ていないか
同じパスワードを使っていないか確認
今すぐ効く対処(テンプレ)
◆ Ansible Vault を使う(基本)
ansible-vault create secrets.yml
db_password: secret123
playbook から参照:
vars_files:
- secrets.yml
◆ 既存平文の応急対応
直ちに パスワード変更
playbook から削除
Git 履歴を rewrite(可能なら)
Vault へ移行
※ 削除しただけでは履歴に残る。
恒久対策/再発防止チェックリスト
playbook に平文パスワードを書かない
Ansible Vault を必須化
Secret 管理方針を決める
Git リポジトリのアクセス制御
CI/CD ログのマスキング
定期的に playbook を棚卸し
パスワード変更手順を用意
新人向けにルールを明文化
落とし穴(やりがちミス)
社内だけだから大丈夫と思う
Vault が面倒で後回し
変数名を変えただけで隠した気になる
.gitignore に入れ忘れる
退職者のローカルに残り続ける
まとめ(行動指針)
IaC / 自動化では、
「どこに秘密が残るか」までが設計。
平文を消す → Vault に入れる → パスワードを変える。
この3点をやるだけで、
playbook 由来の情報漏えい事故は確実に防げる。
