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
Language Update: Java
skrb
2
280
Bye-Bye Query Spaghetti: Write Queries You'll Actually Understand Using Pipelined SQL Syntax
tobiaslampertlotum
0
150
「魔法少女まどか☆マギカ Magia Exedra」のグローバル展開を支える、開発チームと翻訳チームの「意識しない協創」を実現するローカライズシステム
gree_tech
PRO
0
580
2025年になってもまだMySQLが好き
yoku0825
8
4.2k
dbt開発 with Claude Codeのためのガードレール設計
10xinc
1
440
[RSJ25] Feasible RAG: Hierarchical Multimodal Retrieval with Feasibility-Aware Embodied Memory for Mobile Manipulation
keio_smilab
PRO
0
120
Kubernetes における cgroup driver のしくみ: runwasi の bugfix より
z63d
2
240
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
30k
AWSで推進するデータマネジメント
kawanago
0
1.2k
ガチな登山用デバイスからこんにちは
halka
1
220
AI駆動開発に向けた新しいエンジニアマインドセット
kazue
0
260
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
170
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
A Tale of Four Properties
chriscoyier
160
23k
What's in a price? How to price your products and services
michaelherold
246
12k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Unsuck your backbone
ammeep
671
58k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Facilitating Awesome Meetings
lara
55
6.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
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. ご清聴ありがとうございました。