Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
630
Cloudflare Meetup Nagano Vol.3
kaedemalu
0
87
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
シニアソフトウェアエンジニアになるためには
kworkdev
PRO
3
190
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
160
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
920
通勤手当申請チェックエージェント開発のリアル
whisaiyo
2
160
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
850
ChatGPTで論⽂は読めるのか
spatial_ai_network
11
29k
Oracle Cloud Infrastructure IaaS 新機能アップデート 2025/09 - 2025/11
oracle4engineer
PRO
0
170
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
300
学習データって増やせばいいんですか?
ftakahashi
2
510
SQLだけでマイグレーションしたい!
makki_d
0
1.1k
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
890
.NET 10の概要
tomokusaba
0
120
Featured
See All Featured
HDC tutorial
michielstock
0
260
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
The Curious Case for Waylosing
cassininazir
0
190
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
310
The browser strikes back
jonoalderson
0
59
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
KATA
mclloyd
PRO
33
15k
Skip the Path - Find Your Career Trail
mkilby
0
22
Between Models and Reality
mayunak
0
130
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
180
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
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 -