Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Ansible Vault for CIOps
Keke
July 30, 2019
Technology
1
930
Ansible Vault for CIOps
Keke
July 30, 2019
Tweet
Share
More Decks by Keke
See All by Keke
リモートワークを支える勤怠管理 ~プラットフォームとしてのSlackの活用 ~
keisukeyamashita
0
410
Serving GitHub Actions Self-Hosted Runner as a Platform (Part 1: Introduction)
keisukeyamashita
0
76
Serverlessを取り巻く現状とAll Serverlessでプロダクトを構築する苦労
keisukeyamashita
10
2.8k
Spinnakerで実践するマイクロサービスの 安全なリリースフローとベストプラクティス
keisukeyamashita
3
820
Spinnaker Application management by Terraform Plugins
keisukeyamashita
2
510
Open Policy AgentとSpinnakerで実現するマイクロサービスの安全な継続的デリバリー
keisukeyamashita
8
5.7k
How to develop a custom Terraform
[email protected]
SRE Tech Talk
keisukeyamashita
0
270
Introduction to Spinnaker Managed Pipeline Templates
keisukeyamashita
3
4.1k
Cloud Runでシステムを作るためのアーキテクチャのTipsとコストの話
keisukeyamashita
3
1.1k
Other Decks in Technology
See All in Technology
Astroで始める爆速個人サイト開発
takanorip
12
8.3k
AKIBA.SaaS資料
yasumuusan
0
160
re:Inventで発表があったIoT事例の紹介と考察
kizawa2020
0
120
日本ディープラーニング協会主催 NeurIPS 2022 技術報告会講演資料
tdailab
0
930
ERC3525 Semi-Fungible token
sbtechnight
0
330
ROS_Japan_UG_#49_LT
maeharakeisuke
0
200
アムロは成長しているのか AIから分析する
miyakemito
1
330
EMになって最初の失敗談 - コミュニケーション編 -
fukuiretu
1
330
グローバルチームことはじめ / Bootstrapping a global team
tasshi
1
590
本社オフィスを移転し、 オフィスファシリティ・コーポレートIT を刷新した話
rotomx
3
1.2k
Airdrop for Open Source Projects
epicsdao
0
270
PCL (Point Cloud Library)の基本となぜ点群処理か_2023年_第2版.pdf
cvmlexpertguide
0
130
Featured
See All Featured
Producing Creativity
orderedlist
PRO
335
37k
Fantastic passwords and where to find them - at NoRuKo
philnash
31
1.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
1.2k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Infographics Made Easy
chrislema
235
17k
Art, The Web, and Tiny UX
lynnandtonic
284
18k
The Pragmatic Product Professional
lauravandoore
21
3.4k
The Language of Interfaces
destraynor
149
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
29
7.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
338
18k
Happy Clients
brianwarren
90
5.8k
Side Projects
sachag
451
37k
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