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

re:Growth infra 2020

F42c7349266a0ebefe5b67b7f43c565d?s=47 mokocm
February 09, 2021

re:Growth infra 2020

F42c7349266a0ebefe5b67b7f43c565d?s=128

mokocm

February 09, 2021
Tweet

Transcript

  1. AWS Network FirewallでSquidを滅ぼす AWS事業本部コンサルティング部 2021/02/05 1 @mokocm

  2. 2 セッションタイトル変更 AWS Network FirewallでSquidを滅ぼす AWS Network FirewallでSquidを滅ぼそうとし たらTransit Gatewayがムズすぎた

  3. 3 ⾃⼰紹介 Moko クラスメソッド株式会社 AWS事業本部 コンサルティング部 ソリューションアーキテクト 2020 APN AWS

    Top Engineers ⼊社: 2019/07 本業/趣味: TerraformでAWS環境の構築 Twitter/GitHub: @mokocm 好きなAWSサービス: AWS Global Accelerator 好きな⾔語: TypeScript
  4. 4 re:Invent 2020 アツかったですね

  5. 5 AWS Network Firewall

  6. 6 AWS Network Firewall ・マネージドなNetwork Firewall ・これまでSquidなどで通信制御していた方は朗報 ・一元的なNetwork Hub /

    Network Firewallを実現可能 ・NAT Gatewayが無料で使える ・NAT Gateway: $0.045/h, $0.045/GB ・Network Firewall: $0.395/h, $0.065/GB →+$0.35/h, $0.02/GBでNetwork Firewallが利⽤可能 ※料金は2021/01/04時点でのus-east-1の価格 ※1AZの料金
  7. 7 今⽇話すこと ・Network Firewallの経路についておさらい ・Network Firewallのルールについて ・シンプルな構成で作ってみる ・Transit Gatewayを用いたパターンの紹介

  8. 8 構成図

  9. 9 Inbound

  10. 10 Inbound

  11. 11 Inbound ✅

  12. 12 Inbound

  13. 13 Inbound

  14. 14 Inbound

  15. 15 Outbound

  16. 16 Outbound

  17. 17 Outbound ✅

  18. 18 Outbound

  19. 19 Outbound

  20. 20 Outbound

  21. 21 AWS Network Firewall ・VPC Ingress Routing 2019/09 GA ・Gateway

    Load Balancer 2020/11 GA
  22. 22 Network Firewallで設定出来ること ・Stateless Rule Group ・5-tuple ルール ・Network ACLみたいな感じでプロトコル等でルール設定

    ・StateFul Rule Group ・5-tuple ルール ・ドメインリストルール ・Suricata IPS 互換 ルール 詳細: https://dev.classmethod.jp/articles/aws-network-firewall/
  23. 23 とりあえず やってみよう︕

  24. 24 Network Firewall 最低限のレシピ ・VPC 1個 ・Subnet 2個 ・Internet Gateway

    1個 ・RouteTable 3個 ・Network Firewall 1個 ・疎通確認用EC2 1台
  25. 25 作った構成 ※SingleAZ ※ Public IPが必要 ※一旦ルール設定なし

  26. 26 接続確認 $ curl -I https://example.com –m 10 HTTP/2 200

    content-encoding: gzip accept-ranges: bytes age: 544590 cache-control: max-age=604800 content-type: text/html; charset=UTF-8 date: Thu, 04 Feb 2021 16:36:34 GMT etag: "3147526947" expires: Thu, 11 Feb 2021 16:36:34 GMT last-modified: Thu, 17 Oct 2019 07:18:26 GMT server: ECS (dcb/7EA7) x-cache: HIT content-length: 648 SSHできてインターネットにも出れる
  27. 27 Stateful Rule 投⼊

  28. 28 接続確認 $ curl -I https://example.com -m 10 curl: (28)

    Operation timed out after 10001 milliseconds with 0 out of 0 bytes received Drop!
  29. 29 Transit Gatewayと 合わせて使うパターン

  30. 30 元ネタ ・Deployment models for AWS Network Firewall https://aws.amazon.com/jp/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/ ・とても詳細にまとまっているので導入の際は是非ご覧下さい

    ・3つのパターンが紹介されている ・Distributed AWS Network Firewall deployment model ・各VPCにNetwork FirewallをDeployする(TGWを使わない) ・Centralized deployment model ・TGWでVPC間/Ingress/Egress/on-premisesを 集約してNetwork Firewallに通す ・Combined centralized and distributed deployment model ・VPC内通信、Ingress、EgressのNetwork Firewallを別ける ・一部VPCは個別でIGWとNetwork Firewallがある
  31. 31 理解するまで4時間くらい掛かったので 10分で解説します

  32. 32 ⽐較 ・Distributed AWS Network Firewall deployment model ・各VPCにNetwork FirewallをDeployする(TGWを使わない)

    ・Centralized deployment model ・TGWでVPC間/Ingress/Egress/on-premisesを 集約してNetwork Firewallに通す ・Combined centralized and distributed deployment model ・VPC内通信、Ingress、EgressのNetwork Firewallを別ける ・一部VPCは個別でIGWとNetwork Firewallがある https://aws.amazon.com/jp/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/
  33. 33 Distributed AWS Network Firewall deployment model https://aws.amazon.com/jp/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/

  34. 34 ⽐較 ・Distributed AWS Network Firewall deployment model ・各VPCにNetwork FirewallをDeployする(TGWを使わない)

    ・Centralized deployment model ・TGWでVPC間/Ingress/Egress/on-premisesを 集約してNetwork Firewallに通す ・Combined centralized and distributed deployment model ・VPC内通信、Ingress、EgressのNetwork Firewallを別ける ・一部VPCは個別でIGWとNetwork Firewallがある https://aws.amazon.com/jp/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/
  35. 35 Centralized deployment model https://aws.amazon.com/jp/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/

  36. 36 ⽐較 ・Distributed AWS Network Firewall deployment model ・各VPCにNetwork FirewallをDeployする(TGWを使わない)

    ・Centralized deployment model ・TGWでVPC間/Ingress/Egress/on-premisesを 集約してNetwork Firewallに通す ・Combined centralized and distributed deployment model ・VPC内通信、Ingress、EgressのNetwork Firewallを別ける ・一部VPCは個別でIGWとNetwork Firewallがある https://aws.amazon.com/jp/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/
  37. 37 Combined centralized and distributed deployment model https://aws.amazon.com/jp/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/

  38. 38 Network Firewall + Transit Gateway設計の留意点 ・CIDRが被らないこと(あたりまえ) ・Transit GatewayはAttach用のサブネットを作ること(/28) ・Network

    Firewallのサブネットも/28でOK ・ELBのIngress集約はAutoScalingだと一工夫必要かも。 ・ex. AutoScalingがあるVPCにNLB配置 ・ Ingressの集約VPCにNLBのIPを ・詳細は後日ブログにします ・※構成図はSingleAZ, 実環境はMultiAZで組む
  39. 39 AWS Network Firewall まとめ ・Network Firewallはネットワークの門番 ・ManagedなのでSquidなどのProxy運用をしなくて良い ・トラフィックに対して完全に透過で、NATを行わない ・Route

    Table / VPC Ingress RoutingでVPCEに送る ・Transit Gatewayと合わせて使うと便利 ・経路の設計が難しい ・Squidやめる話をしようとしたのに気がついたらTGWの経路の話になってた ・東京リージョン対応待ってます!!!!
  40. 40 参考 [新サービス] VPC 向け AWS マネージドファイアウォールサービス「AWS Network Firewall」がリ リースされました

    https://dev.classmethod.jp/articles/aws-network-firewall/ AWS Network Firewall – New Managed Firewall Service in VPC https://aws.amazon.com/jp/blogs/aws/aws-network-firewall-new-managed-firewall-service-in- vpc/ Deployment models for AWS Network Firewall https://aws.amazon.com/jp/blogs/networking-and-content-delivery/deployment-models-for- aws-network-firewall/ What is AWS Network Firewall? https://docs.aws.amazon.com/network-firewall/latest/developerguide/ Resource: aws_networkfirewall_firewall https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/networkfirewall_fire wall
  41. 41