Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Abstract Sentinel

Abstract Sentinel

社内LT用に作成したHelmfileの概要資料です

チームのDaily Standup Meeting後に、Kubernetes周りのエコシステムやツールがテーマであるLTがありそこで発表しました

Junki Mano

August 26, 2019
Tweet

More Decks by Junki Mano

Other Decks in Technology

Transcript

  1. Sentinel
    Future-Daily-Standup-Meeting
    Kubernetes Ecosystem Study
    2019-08-26
    Mano Junki

    View Slide

  2. What is Sentinel?

    View Slide

  3. 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

    View Slide

  4. What is “Policy as a Code”?

    View Slide

  5. Policy as a Code
    • Infrastructure as Codeの普及から、Terraform(HCL)や
    Kubernetes Menifest(YAML)などの宣言的なコンフィグの
    複雑性が勃興
    • これらの定義は宣言的であるので、チェックが難しい(レビュアーや規約
    でガンバって後はテスト)。その割に神経質になる必要がありツラミ。
    • 例えば、命名ルールや、設定された値について(k8sのレプリカ数が
    Staging以降は3以上であるべきなどは暗黙値化しやすい)
    →Policy as a Codeと呼ばれるツール

    View Slide

  6. Usage

    View Slide

  7. RE: Sentinel
    • Policy as a Codeを実現するための草分け的なツール
    • HashiCorpエンタープライズに入れば利用可能
    • 専用のDSLでルールを記載

    View Slide

  8. Example
    • ステージングが「us-east-1」リージョンにデプロイされ、本番環境が「us-west-1」にデプロイ
    されることを保証するSentinelポリシーの例です。
    https://www.hashicorp.com/blog/why-policy-as-code

    View Slide

  9. sentinel test
    sentinel test で検証

    View Slide

  10. DevOps

    View Slide

  11. CI
    • 機械的にチェックできることはルールセットを定義して、それ
    をもとに lint でチェックして CI で失敗させるのが効率的
    • 人が意思入れしたものを、コードで宣言的に表現できる
    (Bastionサーバだけはプレフィスクを付ける、リソースリ
    ミットをこのクラスタには入れる、など)

    View Slide

  12. (個人的)チェックしたいこと

    View Slide

  13. (個人的)チェックしたいこと一覧
    Terraformに対して
    • 命名規約系
    • 環境数ごとのvariableがあるか(prd, stg, etc.)
    • GKE最大ノード数、マシンタイプ
    • 外部IP付与
    • Firewall Ruleプロトコル(ssh, https)
    • Firewall Ruleの優先度(他のリソースとの依存性)
    • LoadBalancerに固定IPが必須(エフェメラルNG)
    • etc.
    →クリエイティブな仕事

    View Slide

  14. まとめ

    View Slide

  15. まとめ
    • SentinelはPolicy as a Codeと呼ばれる静的解析のLinter
    • Linterのルールには、各自ポリシーや業務ルールを組み込め、
    より宣言的に、よりCI組み込みにフレンドリー
    • ただし、Sentinelの利用にはEnterprise*利用
    * 現状、OSS版の提供は無し
    https://www.hashicorp.com/products/terraform/offerings

    View Slide

  16. Thank you

    View Slide