Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

形式手法で捗る!インフラ構成の設計と検証

7.555 visualizaciones

Publicado el

AWS Summit Tokyo 2016 内で行で行われた、JAWS-UG のナイトセミナーで使用したスライドです。形式手法とは何かを簡単に説明した後、具体例としてモデル検査器 Alloy を用いて AWS のセキュリティグループを検証します。なお、スライド中に登場するコード断片に対して、完全に検証可能な形に仕上げたものは https://gist.github.com/y-taka-23/89a98fdb2ba48710a39c を参照のこと。

Publicado en: Tecnología
  • Inicia sesión para ver los comentarios

形式手法で捗る!インフラ構成の設計と検証

  1. 1. 形式手法で捗る! インフラ構成の設計と検証 チェシャ猫 (@y_taka_23) JAWS-UG Night in AWS Summit Tokyo 2016 (2016/06/03)
  2. 2. 打倒、AWS 構成の秘伝のタレ化
  3. 3. AWS 構成検証、例えば ● awspec ○ serverspec の拡張 ○ テスト対象となる実際のリソースが必要 ● IAM Policy Simulator ○ AWS 提供、IAM のアクセス権限を検証 ○ 実際には操作・課金せず確認できる
  4. 4. IAM 以外のサービスも 現物を使わずに検証したい
  5. 5. 形式手法という手がありますよ?
  6. 6. 形式手法って何だ? ● システムを厳密に定義・記述 ● 仕様の正しさを数学的に保証 ● テストと比較すると ○ テストケースの漏れが生じない ○ 一般的には学習・検証コストが高い
  7. 7. 学習・検証コストが高い…
  8. 8. そこで Alloy Analyzer を使おう!
  9. 9. Alloy Analyzer のいいところ ● 形式手法の一種、モデル検査器 ○ 関係論理を用いてシステムのモデルを定義 ○ モデルが満たすべき条件を記述 ○ モデルを自動で全探索して、条件を検査 ● 軽量 (lightweight) 形式手法を標榜 ● 発見した例を可視化
  10. 10. 例えば EC2 インスタンス間の疎通 (https://gist.github.com/y-taka-23/89a98fdb2ba48710a39c)
  11. 11. Alloy による単純なモデリング sig Instance { priIPs : some IP, secGrps : set SecurityGroup, } sig SecurityGroup { inRules : set InboundRules, outRules : set OutboundRules, }
  12. 12. Alloy による単純なモデリング sig Instance { priIPs : some IP, secGrps : set SecurityGroup, } sig SecurityGroup { inRules : set InboundRules, outRules : set OutboundRules, } 各インスタンスに対して 1 個以上の IP アドレスが存在
  13. 13. Alloy による単純なモデリング sig Instance { priIPs : some IP, secGrps : set SecurityGroup, } sig SecurityGroup { inRules : set InboundRules, outRules : set OutboundRules, } 各インスタンスに対して 0 個以上のセキュリティグループが存在
  14. 14. もう少しモデルを作り込む ● セキュリティグループのルール内容 ○ プロトコル (TCP, UDP, ICMP のいずれか) ○ ポート番号 (ICMP ならば存在しない) ○ CIDR と IP アドレスとの包含関係 ● インスタンス間で通信可能な条件 ○ インスタンスの IP アドレスと ルールの IP アドレスとの包含関係
  15. 15. 条件を満たす例を全探索
  16. 16. 発見された具体例たち
  17. 17. 発見された具体例たち
  18. 18. 発見された具体例たち
  19. 19. もっと実用的な検証を! ● 通信の到達可能性 / 不可能性 ● 冗長なセキュリティグループの発見 ● 複数 AWS サービス間の連携 ● 設定変更時の安全な作業フロー
  20. 20. まとめ ● インフラ設計に形式手法の力を ● Alloy Analyzer でお手軽検証 ● アイデア次第で応用いろいろ
  21. 21. Have a Nice Infrastructure! Presented by チェシャ猫 (@y_taka_23)

×