Sentinel
Future-Daily-Standup-Meeting
Kubernetes Ecosystem Study
2019-08-26
Mano Junki
Slide 2
Slide 2 text
What is Sentinel?
Slide 3
Slide 3 text
Sentinel
Sentinelは、インフラの変更が安全であることを確実にするた
めに、ビジネスポリシーと規制ポリシーをコード化することで変
更範囲を制限します。infrastructure as codeとpolicy as codeを
統合することで、利用者はインフラ管理を安全に自動化できます
2017年にHashiCorpが提唱。アクセスポリシーをコードとして
記述可能にするという意味で、同社ツールが実現してきた
「Infrastructure as Code」に掛けて「Policy as Code」とした。
実現するためのツールは”Sentinel”。
https://www.publickey1.jp/blog/17/hashicorpsentinelpolicy_as_codehashiconf17.html
Slide 4
Slide 4 text
What is “Policy as a Code”?
Slide 5
Slide 5 text
Policy as a Code
• Infrastructure as Codeの普及から、Terraform(HCL)や
Kubernetes Menifest(YAML)などの宣言的なコンフィグの
複雑性が勃興
• これらの定義は宣言的であるので、チェックが難しい(レビュアーや規約
でガンバって後はテスト)。その割に神経質になる必要がありツラミ。
• 例えば、命名ルールや、設定された値について(k8sのレプリカ数が
Staging以降は3以上であるべきなどは暗黙値化しやすい)
→Policy as a Codeと呼ばれるツール
Slide 6
Slide 6 text
Usage
Slide 7
Slide 7 text
RE: Sentinel
• Policy as a Codeを実現するための草分け的なツール
• HashiCorpエンタープライズに入れば利用可能
• 専用のDSLでルールを記載
Slide 8
Slide 8 text
Example
• ステージングが「us-east-1」リージョンにデプロイされ、本番環境が「us-west-1」にデプロイ
されることを保証するSentinelポリシーの例です。
https://www.hashicorp.com/blog/why-policy-as-code
Slide 9
Slide 9 text
sentinel test
sentinel test で検証
Slide 10
Slide 10 text
DevOps
Slide 11
Slide 11 text
CI
• 機械的にチェックできることはルールセットを定義して、それ
をもとに lint でチェックして CI で失敗させるのが効率的
• 人が意思入れしたものを、コードで宣言的に表現できる
(Bastionサーバだけはプレフィスクを付ける、リソースリ
ミットをこのクラスタには入れる、など)