Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CNDO2021 Open Policy Agent
Search
Taisei Ito
March 11, 2021
Technology
1
1.4k
CNDO2021 Open Policy Agent
CloudNative Days Spring 2021 ONLINE へ登壇した時の資料
https://event.cloudnativedays.jp/cndo2021/talks/811
Taisei Ito
March 11, 2021
Tweet
Share
More Decks by Taisei Ito
See All by Taisei Ito
Grafana Meetup Japan Vol. 6
kaedemalu
1
610
Cloudflare Meetup Nagano Vol.3
kaedemalu
0
85
Cloudflare Meetup Nagano Vol.2
kaedemalu
0
1.8k
20220214_Future Tech Night
kaedemalu
0
2.4k
20210910_nyle
kaedemalu
0
1k
20210827 Future Tech Night
kaedemalu
0
4.5k
20210210 Terraform meetup ONLINE
kaedemalu
0
680
Future Talk Night 20201118
kaedemalu
0
230
20201114 GCPUG Shonan
kaedemalu
0
470
Other Decks in Technology
See All in Technology
あなたの知らないDateのひみつ / The Secret of "Date" You Haven't known #tqrk16
expajp
0
110
法人支出管理領域におけるソフトウェアアーキテクチャに基づいたテスト戦略の実践
ogugu9
1
130
私のRails開発環境
yahonda
0
180
生成AI・AIエージェント時代、データサイエンティストは何をする人なのか?そして、今学生であるあなたは何を学ぶべきか?
kuri8ive
2
1.9k
安いGPUレンタルサービスについて
aratako
1
2.2k
AI駆動開発によるDDDの実践
dip_tech
PRO
0
290
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
9.9k
翻訳・対話・越境で強いチームワークを作ろう! / Building Strong Teamwork through Interpretation, Dialogue, and Border-Crossing
ar_tama
4
1.6k
生成AI時代の自動E2Eテスト運用とPlaywright実践知_引持力哉
legalontechnologies
PRO
0
110
手動から自動へ、そしてその先へ
moritamasami
0
190
たかが特別な時間の終わり / It's Only the End of Special Time
watany
5
1.3k
Modern Data Stack大好きマンが語るSnowflakeの魅力
sagara
0
280
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
Thoughts on Productivity
jonyablonski
73
5k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
We Have a Design System, Now What?
morganepeng
54
7.9k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Producing Creativity
orderedlist
PRO
348
40k
Why Our Code Smells
bkeepers
PRO
340
57k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Transcript
Open Policy Agentで社内の コード統一する夢を見る CloudNative Days Spring 2021 ONLINE Taisei
Ito
2 自己紹介 • 伊藤 太斉(Taisei Ito) ◦ @kaedemalu(Twitter, Github) ◦
Future Corporation ▪ Technology Innovation Group / DX Unit ◦ コンサルタント&インフラエンジニア ◦ #GCP # AWS #Terraform #Ansible • Community ◦ GCPUG Shonan Organizer ◦ CloudNative Days Committee
今の社内のロール • エンジニア ◦ インフラ〜ミドルウェアのチューニング ◦ 顧客のSRE(的な動き) ◦ 社内のOSS活用推進(コミットなど) ◦
インフラのIaC化 • ブログ運営 3
今の社内のロール • エンジニア ◦ インフラ〜ミドルウェアのチューニング ◦ 顧客のSRE(的な動き) ◦ 社内のOSS活用推進(コミットなど) ◦
インフラのIaC化 • ブログ運営 4
IaCのメリット • 再現性が保てる • コードがパラメータシート ◦ ドキュメントよりメンテナンスしやすい • 可搬性がある •
比較的読みやすい&入門しやすい 5
IaCのメリット(特に社内) 6 プロジェクトA Terraform
IaCのメリット(特に社内) 7 プロジェクトA Terraform プロジェクトB
IaCのメリット(特に社内) 8 プロジェクトA Terraform プロジェクトB Terraform
IaCのメリット(特に社内) 9 プロジェクトA Terraform プロジェクトB Terraform 展開可能!
生まれる流派 • Terraform ◦ Module vs. Workspaces ◦ Monorepo vs.
Multirepo • Ansible ◦ ini vs. YAML 10
起こりうること① 11 プロジェクトA Terraform プロジェクトB Terraform 規約A 規約B
起こりうること① 12 プロジェクトA プロジェクトB 規約A 規約B Terraform Terraform
起こりうること① 13 プロジェクトA プロジェクトB 規約A 規約B Terraform Terraform 流派が違う!
起こりうること② 14 プロジェクトA Terraform プロジェクトB Terraform 規約A 規約B
プロジェクトA Terraform プロジェクトB Terraform 起こりうること② 15 規約A 規約B
プロジェクトA Terraform プロジェクトB Terraform 起こりうること② 16 規約A 規約B 異なる可能性
社内標準化が必要 • 将来的を見据えた取り組みが必要 ◦ PJ間での展開 ◦ メンバーのインプット負荷の軽減 ◦ 人による癖をなくす 17
これまでフューチャーは 18 引用:Javaコーディング規約
Terraform版を作りたい 19
いや、 20
作らないといけない(と思った) (使命感) 21
今回のトピック • Open Policy Agentについて • 実際にTerraformのコード評価に使う • 将来的に行いたいこと 22
Open Policy Agentについて 1
Open Policy Agent(OPA)について • OSSで開発 • CNCFのGraduated Project(になった🎉) • Policy
as Codeを実現するツール ◦ Regoという独自のポリシー記述言語 ◦ Kubernetes以外にも制約なく汎用的に利用できる 24
Open Policy Agent(OPA)について 25 引用:Policy as Codeを実現するOpen Policy Agentに憧れて。ポリシーコードで API仕様をLintする
Policy as Codeの技術選定 • Sentinel ◦ HashiCorp社が開発したPaCツール ◦ Terraform Cloudで利用できる(有償)
• OPA ◦ 先に上げた通り ◦ OSSのツール 26
Policy as Codeの技術選定 • Sentinel ◦ HashiCorp社が開発したPaCツール ◦ Terraform Cloudで利用できる(有償)
• OPA ◦ 先に上げた通り ◦ OSSのツール 27
Policy as Codeの技術選定 • Sentinel ◦ HashiCorp社が開発したPaCツール ◦ Terraform Cloudで利用できる(有償)
• OPA ◦ 先に上げた通り ◦ OSSのツール 28 利用の幅が広い
実際に動かす 2
デモやります 30
Rego • Terraformのリソース名を制御する 31
Terraform • EC2を2台作成するコード 32 OKとしたい NGとしたい
ステップ① Plan結果をバイナリ化 • terraform plan -out tfplan.binary で保存 33
ステップ② バイナリからJSON変換 • tf show -json tfplan.binary | jq .
> tfplan.json 34
ステップ③ Regoで評価する • opa eval --format json --data test.rego \
--input tfplan.json "data.test.lint" 35 mail-instanceはNG web_instanceはOKになった ハイフン区切りは制御できる
所感とこれから 3
OPAができること • リソースの制限という意味のポリシー ◦ インスタンスタイプ ◦ リージョン ◦ タグ ◦
etc... 37
OPAができないこと • Terraform自体の構文チェック ◦ Terraformで利用するリソース名はできる ◦ ファイルごと規約としてコードにはできない 38
まずはドキュメンテーション • こういったサイトも参考にしながら。。 39 引用:Terraform Best Practices
まとめ • インフラの横展開を進めるにあたり、コードが大事 ◦ インフラの構成→Terraform, Ansible ◦ IaCのポリシー制御→OPA, Sentinel •
OSSで利用できる方が幅広く対応できる • コードの平和を守るにはOPAだけでなく、複合的に制御 することが大事そう 40
宣伝 4
42 フューチャーについて • 大崎にあるITコンサル会社 • 経営戦略から実装、運用までを全てこなす • ベンダーニュートラルの考え方 • 「ないものは作る」
43 こんな人がいます • Real World HTTPの著者 • Vue.jsのコミッター • Apache
Software Foundationのボードメンバー • OSS「Vuls」の作成者
44 ブログも出しています
- fin -