Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vault を基盤として整備し、 みんなに使ってもらえるようになるまで
Search
Takahiko Suzuki
September 02, 2025
Technology
1
110
Vault を基盤として整備し、 みんなに使ってもらえるようになるまで
Takahiko Suzuki
September 02, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
dbt開発 with Claude Codeのためのガードレール設計
10xinc
1
440
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
3
890
Skrub: machine-learning with dataframes
gaelvaroquaux
0
120
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
280
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
380
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
150
AI駆動開発に向けた新しいエンジニアマインドセット
kazue
0
260
Automating Web Accessibility Testing with AI Agents
maminami373
0
1.1k
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
3
480
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.3k
Flutterでキャッチしないエラーはどこに行く
taiju59
0
220
Nstockの一人目エンジニアが 3年間かけて向き合ってきた セキュリティのこととこれから〜あれから半年〜
yo41sawada
0
210
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Site-Speed That Sticks
csswizardry
10
810
4 Signs Your Business is Dying
shpigford
184
22k
Music & Morning Musume
bryan
46
6.8k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
Side Projects
sachag
455
43k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
910
Transcript
©Internet Initiative Japan Inc. Vault を基盤として整備し、 みんなに使ってもらえるようになるまで 株式会社インターネットイニシアティブ ネットワークサービス事業本部 ネットワーク本部
SRE推進部 シニアエンジニア 鈴木 高彦
©Internet Initiative Japan Inc. IIJ のご紹介
©Internet Initiative Japan Inc. 国内初の「商用インターネット接続サービス」事業者です。 東証上場時 創業時オフィス IIJは、1992年に設立され翌年「日本初の商用インターネット接続サービス」の提供をはじめました。以来、IIJグループはネットワーク社会の基盤をつくり、技術力でその発 展を支えてきました。IIJは、これからもインターネットの進化を支え続けていきます。 2022年12月3日に30周年を迎えました
IIJは、高い技術力で“国内初“を創り続けています。 ➢ 1993年 国内初 商用インターネット接続サービス提供開始 ➢ 1994年 国内初 ファイアウォールサービス提供開始 ➢ 1999年 国内初 サービス品質保証制度(SLA)を導入 ➢ 1999年 国内初 IPv6の商用実験サービスを提供開始 ➢ 2003年 国内初 ルータ管理システム「IIJ SMF」を開発し特許取得 ➢ 2005年 国内初 送信ドメイン認証技術の導入を開始 ➢ 2011年 国内初 外気冷却を利用したコンテナ型データセンターを開 設 ➢ 2018年 国内初 フルMVNOとしてサービス提供開始
©Internet Initiative Japan Inc. IIJ の SRE • マルチテナント Kubernetes
クラスタの開発・運用 • 社内クラウド環境上にKubernetesクラスタを構築 • サービス部門がKubernetesプラットフォームとして利用 • Kubernetes を利用する上で必要なシステムの開発・運用 • ロードバランサ • オブジェクトストレージ • モニタリングシステム • コンテナレジストリ • KMS • etc. 社内クラウド 連携 システム
©Internet Initiative Japan Inc. 導入
©Internet Initiative Japan Inc. シークレットの管理に関する課題 • シークレットを格納する方法が定められていない • 仕方がないので •
Confluenceのプライベートページ • プライベートリポジトリ • 秘密のExcelシート • セキュリティリスク • オペレーションが自動化できない →よろしくないのでシークレット管理システムの導入を検討
©Internet Initiative Japan Inc. シークレット管理システムの要件 • 社内のシークレット管理インフラとして、部門/プロジェクト問 わず利用可能 • 部門/プロジェクトにテナントを払い出す
• オンプレ • クラウドサービスの利用は反発が強い • ましてやシークレット管理 • DR 構成 • アカウント/グループ管理を Entra ID (旧Azure AD) と連携させ たい • 他プロダクトとの連携が容易 • Terraform, Ansible, Github, Kubernetes, …
©Internet Initiative Japan Inc. KMS の選定 • 要件を満たすのは HashiCorp Vault
Enterprise ほぼ一択 • オンプレ導入ができる • Entra ID と連携 (OIDC) できる • ネームスペースを使うとテナント毎に DB を分離できる • DR 構成もとれる • 他プロダクトとの連携もしやすい • Anisble, Terraform などは Vault API をサポート • REST API, Vault Secrets Operator, …
©Internet Initiative Japan Inc. 構成
©Internet Initiative Japan Inc. システム構成 • 地理的に分散した DC をまたぐ DR
replication • 1サイトあたり3台のサーバからなるクラスタ Vault Vault Vault DC1 Vault Vault Vault DC2
©Internet Initiative Japan Inc. Entity のレイアウト 目標: 同一の人/グループが複数のテナント(namespace)に同時に 所属する •
root namespace • 人間のアカウント • EntraID と連携する外部(external)グループ • テナント (namespace) • root namespace のグループをメンバーとする内部 (internal)グループ
©Internet Initiative Japan Inc. Entra ID Group Entity のレイアウト root
namespace Vault Entra ID 人間の Entity Entity Alias External Group Tenant (namespace) Internal Group member Policy Secret Engines Entra ID User
©Internet Initiative Japan Inc. 社内への普及
©Internet Initiative Japan Inc. 学習コストが高い • Vault 普及の最大の障壁 • テナントの利用者が、払い出されたnamespaceを「とりあえず
使える」状態にするまでが一苦労 • 必要な設定 • KV エンジンの有効化 • ポリシーの設定 • Entra IDとアカウントおよびグループの連携
©Internet Initiative Japan Inc. 社内への普及に向けて • トップダウンで「今日から全員Vaultを使え」というタイプの会社 ではない • コスト負担および煩雑な移行作業も必要なので、啓蒙活動は
おこなうが利用判断・タイミングは部署/プロジェクトに委ね る • トップダウンでなければみんなが使わないほど Vault は酷い プロダクトでもない • とっつきにくいだけで、とてもよくできている
©Internet Initiative Japan Inc. 社内への普及に向けて • ボトムアップな社風 • ドキュメントがあるとわりと頑張って読んでくれる •
興味を持つと自発的に宣伝してくれたりする • 「わかんなかったら聞いて」はどちらかというと苦手 • 前向きな気持ちで使って欲しい • 作業が必要なのでメリットを理解した方が広く適用してく れる • 自部署/プロジェクトで手柄として欲しい →興味を持った人のやる気を妨げない環境づくり
©Internet Initiative Japan Inc. Vault 導入前 • Ansibleのリポジトリに入れられない情報をplaybook実行前に補う 作業が必要 •
手順書に書けないので「今回使うパスワードはどれ?」のような 混乱になりがち • パスワードが列挙されたページを見るときの後ろめたさ # 秘密のconfluenceページからパスワードを探す $ SECRET_KEY=himitsu123 # 秘密鍵を秘密のリポジトリからコピーする $ cp himitsu_repository/server.key somewhere/certs/ # 秘密のパスワードを設定ファイルに埋め込む $ vim files/secret.yaml $ ansible-playbook –i inventories/ap-northeast-1-prd playbooks/all.yaml
©Internet Initiative Japan Inc. Vault 導入後 • 環境に関する情報(Vault内でのパスになる)もinventory内に記述 できる •
手順が定型化でき、オペミスも減らせる • 開発環境など、要件によってはメンテナンスの(半)自動化も • この導入作業をやってくれるのは十分手柄だと思う # Vault トークンの入手。オプションは適宜。 $ vault login –method=oidc $ ansible-playbook –i inventories/ap-northeast-1-prd playbooks/all.yaml
©Internet Initiative Japan Inc. 社内への普及に向けて • ガバナンス的な観点で見がちだが、現場は現場でうれしいことが ある • 「一度頑張って導入すると楽になるのは君たちだよ」という点を
伝える • 一度「楽になったな」というのを現場の人に実感してもらえれば、 自発的に横展開してくれる • いかに一度目の「楽になったな」を感じてもらうかが勝負
©Internet Initiative Japan Inc. 興味を持った人のやる気を妨げない環境づくり • 社内認知は頑張る • 社内勉強会、社内ブログ •
HashiCorpさんにも協力いただきました 「あのHashiCorpのエンジニアが話をしてくれる」 • 自本部には号令をかけてもらい社内事例作り • ドキュメントはしっかり用意する • 興味が冷める前にVaultを一通り体験できるように • ドキュメントがあると面白がって触ってくれたりする • 一通りの操作を「依頼なし」でできるようにする • 手順が少し複雑でも、管理者に依頼せずに済むフローの方 が好まれる
©Internet Initiative Japan Inc. テナントの払い出し • どうしてもテナント(namespace)の払い出し申請は必要 • 他テナントとの隔離のため •
その際にできるだけのことをしてあげちゃう
©Internet Initiative Japan Inc. テナントの払い出し • テナント作成の際に「とりあえず触れる」レベルになる設定を 流し込む • KVシークレットエンジン
• グループの作成, Entra ID への紐付け • ポリシーの作成 • テナント管理者グループの作成 • 内部グループの作成 • Entra IDアカウントに対応するEntityをメンバーに登録 • 管理者ポリシーの作成 • ゼロから書くより、既にある設定を変更/拡張/修正する方が敷 居が低い
©Internet Initiative Japan Inc. テナントの払い出し • 利用者が増えるほど、テナント (namespace)の作成が大変 • YAMLで定義したテナントの設定を
Terraformで読み込み作成 • 「とりあえず触る」ための設定一 式を流し込む • YAMLならTerraform以外のツール からも扱いやすい name: sre costCenterCode: “${コスト按分用コード}" administrators: -
[email protected]
-
[email protected]
groups: - name: "members" aadGroupNames: - “IIJ-XXX-SRE" - “IIJ-XXX-PROJECT123" - name: "operators" aadGroupNames: - “IIJ-XXX-PROJECT456"
©Internet Initiative Japan Inc. 社内への普及に向けて • 狙い通り、先進的なユーザーによって使われるようになった • 問い合わせを見ても、ドキュメントをちゃんと読んでくれてい る
• 理解も徐々に進み、着々と利用者が増える状況となった
©Internet Initiative Japan Inc. 当日限り
©Internet Initiative Japan Inc. 社内への普及に向けて • セキュリティ対策への意識が急激に高まった • 利用部門/プロジェクト数が急増 •
それまで利用コストの按分を嫌っていた部門/プロジェクト での利用許可が下りた、などの声も • Vault側の準備が整っていたおかげで急な増加に際して混乱 はなかった • 結果的に広く使われるようになった • 「このネットワークからも Vault 使えるようにして欲しい」とい う要望をもらうほど広く使われている
©Internet Initiative Japan Inc. まとめ • Vault Enterprise を使って Entra
ID と連携したシークレット 管理インフラを構築 • 頑張って導入すると現場がラクになる • やる気になった人のやる気を削がないアプローチで社内への普 及を図った
©Internet Initiative Japan Inc. ご清聴ありがとうございました。