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
Ansible Vault for CIOps
Search
Keke
July 30, 2019
Technology
1.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ansible Vault for CIOps
Keke
July 30, 2019
More Decks by Keke
See All by Keke
リモートワークを支える勤怠管理 ~プラットフォームとしてのSlackの活用 ~
keisukeyamashita
0
780
Serving GitHub Actions Self-Hosted Runner as a Platform (Part 1: Introduction)
keisukeyamashita
0
530
Serverlessを取り巻く現状とAll Serverlessでプロダクトを構築する苦労
keisukeyamashita
10
3.2k
Spinnakerで実践するマイクロサービスの 安全なリリースフローとベストプラクティス
keisukeyamashita
3
1.2k
Spinnaker Application management by Terraform Plugins
keisukeyamashita
2
1k
Open Policy AgentとSpinnakerで実現するマイクロサービスの安全な継続的デリバリー
keisukeyamashita
8
6.5k
How to develop a custom Terraform provider@Merpay SRE Tech Talk
keisukeyamashita
0
490
Introduction to Spinnaker Managed Pipeline Templates
keisukeyamashita
3
7k
Cloud Runでシステムを作るためのアーキテクチャのTipsとコストの話
keisukeyamashita
3
1.6k
Other Decks in Technology
See All in Technology
Kiro WebとCloud Sessions
nagisa53
2
200
markdown-poster Introduction
kazamori
0
110
MCPを待つな、パスキーを拡げよう(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
260
アクセスキー流出時の対応で再認識した攻撃側と防御側の非対称性について
kazzpapa3
0
260
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
900
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
:syncing_time:
sksat
2
750
「ミスを許さない手順書」を作ってみた 〜 個人的にはこれ以上できることはあまりなさそう/20260827-ssmjp-operation-procedure-update
opelab
1
150
AI駆動開発をチームに根付かせる - 「1行も書かない」チームがHarnessを育てた1年 -
kenichirokimura
2
140
サービス内で複数のOP・ASを連鎖させる(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
260
OAuth SPIFFE Client Authentication(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
260
あなたの知らないバージョン命名規則
sat
PRO
2
730
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
410
The Language of Interfaces
destraynor
162
27k
Faster Mobile Websites
deanohume
310
32k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
390
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Raft: Consensus for Rubyists
vanstee
141
7.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Writing Fast Ruby
sferik
630
63k
Transcript
2019/07/30 ANSIBLE NIGHT LT ANSIBLE VAULT FOR CIOPS Keke Twitter:
@_k_e_k_e
$ WHOIAM KEISUKE YAMASHITA TWITTER: @_k_e_k_e 新卒で Merpay.inc SRE Team
Chaos Engineering, Cashless are my main interest
ANSIBLE VAULT シークレットを Encrypt ・Decrypt できるCLI ツール
PRESENTATION AGENDA 皆さんに伝えたいこと CIOps というContinuous Delivery のパターン Ansible Vault を使ったCIOps
運⽤のTips
場所に応じた最⼩限の権限をつけよう どこになんの権限が必要であるかを考えて権限付与 万が⼀のケースを考えよう 例: VM に⼊られるとprintenv などを使って簡単にパスワー ドを取れる CLI ツールとしてAnsible
Vault は便利 CI とローカルでEncrypt ・Decrypt するには使い勝⼿がいい TAKEAWAY FOR CIOPS
None
None
CIOPS って?
継続的デリバリーの主なPOINT AUTOMATION リリース作業をなくす。 ヒューマンエラーを防ぐ。 GET FEEDBACK すぐデプロイをして、ユーザーに価値を届ける。 バグを⾒つけるまでの時間を短縮。 ACCERATE WITH
MICROSERVICE マイクロサービス アーキテクチャに伴い、デプロイ数の急増するので スケールさせるには継続的デリバリーが必要。
WHATS CIOPS?
WHATS CIOPS? CD の⼀つのパターン deploy trigger push
WHATS CIOPS? CD の⼀つのパターン deploy trigger push Deploy by CI
WHATS CIOPS? CD の⼀つのパターン deploy trigger push Some secrets Deploy
by CI
どうやってCIOPS のために SECRET 管理するの?
$ cat .env DB_USER: root DB_PASS: tsuyoi_password_ni_sitene DB_NAME: master EXTERNAL_ACCESS_TOKEN:
gaibu_ni_access_suru_token
1. RAW SECRETS 管理
RAW SECRETS 管理 1. $ git push deploy trigger push
RAW SECRETS 管理 1. $ git push deploy trigger push
RAW SECRETS ON GITHUB PROS & CONS SECRET へ 誰でもアクセスできる
Github が漏出したら 終わり コミットに永遠に残り Revoke するのが難しい
2. CI でSERECT 管理
2. CI でSERECT 管理
2. CI 上でSERECT 管理 Git にはSerect は載せない $ echo ".env"
>> .gitignore
2. CI 上でSERECT 管理 config deploy trigger push
2. CI 上でSERECT 管理 CI に設定 ( この例ではCircleCI)
SEALED SECRETS ON CI PROS & CONS 何かしらの⽅法で Dev にPassword
を 渡さないといけない CI にPassword の 漏洩リスクあり Git には Secret はない Password 変更があると CI も変更しないといけない
3. SEALED SECRECT によるCIOPS secrets write Admin Dev Dev Dev
Dev Dev Read
3. SEALED SECRECT によるCIOPS
3. SEALED SECRECT によるCIOPS
3. SEALED SECRECT によるCIOPS deploy trigger push deploy trigger Encrypt
Decrypt config password password password
SECRETS ON CI PROS & CONS 何かしらの⽅法で Sercet を共有しないといけない CI
に漏洩リスクあり Git に漏洩リスクはなく デプロイできる
3. SEALED SECRECT によるCIOPS password write Admin Dev Dev Dev
Dev Dev Read
ANSIBLE VAULT
ANSIBLE VAULT シークレットを Encrypt ・Decrypt できるCLI ツール
$ cat .env DB_USER: root DB_PASS: tsuyoi_password_ni_sitene DB_NAME: master EXTERNAL_ACCESS_TOKEN:
gaibu_ni_access_suru_token
Encrypt 1. $ ansible-vault encrypt .env.yml => New Vault password:
[ パスワード⼊れる] => Confirm Vault password: [ 再度パスワード⼊れる] $ANSIBLE_VAULT;1.1;AES256 62663931376163656235343237376235636664303733643139346565326633336664643938333164 6635393466386336383133316262343033363838373939380a343339346136353935303938373937 38386664323865633431313430666532303731346361346331656565643236386435366535346239 ....
2. Decrypt $ ansible-vault decrypt .env.yml => New Vault password:
[ パスワード⼊れる] => Confirm Vault password: [ 再度パスワード⼊れる] DB_USER: root DB_PASS: tsuyoi_password_ni_sitene DB_NAME: master EXTERNAL_ACCESS_TOKEN: gaibu_ni_access_suru_token
3. SEALED SECRECT によるCIOPS Encrypt password $ ansible-vault encrypt .env.yml
3. SEALED SECRECT によるCIOPS push Encrypt password
3. SEALED SECRECT によるCIOPS trigger push trigger Encrypt Decrypt config
password password password $ ansible-vault decrypt .env.yml
3. SEALED SECRECT によるCIOPS deploy trigger push deploy trigger Encrypt
Decrypt config password password password
$ ssh -p 64535 100.xxx.yyy.zzz <= ノードに⼊る $ printenv DB_NAME=master
DB_PASSWORD=tsuyoi_password_ni_sitene DB_USER=root EXTERNAL_ACCESS_TOKEN=gaibu_ni_access_suru_token
4. DECRYPT IN APPLICATION
4. DECRYPT IN APPLICATION deploy trigger push deploy trigger IAM
secrets IAM secrets secrets IAM secrets Authn/z keys
3. SEALED SECRECT によるCIOPS deploy trigger push deploy trigger IAM
secrets IAM secrets secrets IAM secrets Authn/z keys Deploy KMS
$ cat .env.dev.yml $ ansible-vault encrypt .env.dev.yml --out .env.dev.yml.enc .
--vault-password-file=<(echo "password")
$ STAGE="prod" $ ansible-vault encrypt .env.$STAGE.yml --out .env.$STAGE.yml.enc - -vault-password-file=<(echo
$PASSWORD)
HASHICORP VAULT Secret を管理するためのソフ トウェア。最近、 Kubernetes と合わせて使わ れるケースが多い。 GOOGLE BERGLAS
Google Cloud Storage と Cloud KMS での SealedSecret BITNAME SEALED SECRETS Kubernetes 上でDecrypt で きるSealedSecret を実現する コントローラー Compare
場所に応じた最⼩限の権限をつけよう どこになんの権限が必要であるかを考えて権限付与 万が⼀のケースを考えよう 例: VM に⼊られるとprintenv などを使って簡単にパスワー ドを取れる CLI ツールとしてAnsible
Vault は便利 CI とローカルでEncrypt ・Decrypt するには使い勝⼿がいい TAKEAWAY FOR CIOPS
THANK YOU