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

AWS×VPN

Shinya Omori
September 13, 2020

 AWS×VPN

Shinya Omori

September 13, 2020
Tweet

More Decks by Shinya Omori

Other Decks in Technology

Transcript

  1. 6 “ AWS × VPN " • コロナ情勢もあり、リモートワークが増えた • ⾃宅からクラウド環境へセキュアに接続したい

    • 安価で⼿軽にクライアント・リモートVPN環境を構築したい ※UTMまではいらない、、、 • OpenVPNを採⽤ ※ (https://openvpn.net/ ) GPLライセンスで公開されているオープンソースのVPNソフトウェア
  2. 7 • スタートアップ企業からVPN環境構築依頼(初OpenVPN) • ⽇本とヨーローッパ諸国のエンジニアが利⽤する環境にVPNしたい • ⼈数は少ないので、EC2(Amazon Linux)にOpenVPNを設定しコストを抑える • フランクフルト・リージョンに1⽇で環境構築

    最初の案件 public subnet AWS Cloud VPC EC2 OpenVPNサーバー Internet Internet gateway private subnet SV等 【お客様】 K2 Vision 合同会社 様 モバイルサービス開発とビッグデータ 分析の基盤構築やコンサルの仕事をメ インに活動 https://k2-vision.jp/about.html
  3. 8 「公式サイトから抜粋」 AWS Client VPN は、オンプレミスネットワーク内の AWS リソースに安全にアクセス できるようにする、クライアントベースのマネージド VPN

    サービスです。クライア ント VPN を使⽤すると、OpenVPN ベースの VPN クライアントを使⽤して、どこか らでもリソースにアクセスできます。 https://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/what-is.html • ある程度の接続数がある。 • VPNサーバーをマネージドにしたい。 • 証明書もAWS内で管理したい。 • 少しでもGUIが欲しい。 AWS Client VPN AWS Client VPN
  4. 10 subnet AWS Cloud VPC WEB01 WEB02 Internet Internet gateway

    Client VPN Endpoint AWS Certificate Manager サーバー証明書 クライアント証明書 10.11.0.0/16 10.11.0.0/24 172.18.0.0/16 10.11.0.100/24 10.11.0.110/24 subnet 10.11.1.0/24 WEB03 10.11.1.10/24 NAT Gateway Internet 今回準備した仮構成 • 2つのサブネットに接続許可 • WEB01への接続NG • WEB03のようにプライベート サブネット環境にも接続許可 • スプリットトンネル:有効 VPNユーザー
  5. 11 ⽐較ポイント OpenVPN サーバー AWS Client VPN vs 1.構築難易度 ※個⼈的主観

    • どちらかといえばAWS Client VPNのほうが敷居が低い • 初めての⽅はGUIあると優しいかも? ※画⾯が更新されると(ry その時はCLI対応しておく • 公式マニュアルが分かりやすい • AWS強者の⽅々がブログ等でUPされているので参考になる 2.構築速度 • ベースとなるサーバー構築が不要で、⼿軽に構築できる ※慣れですが、、、 OpenVPN サーバー AWS Client VPN vs
  6. 12 ⽐較ポイント OpenVPN サーバー AWS Client VPN vs 3.コスト ※個⼈的主観

    • AWS Client VPNはマネージドなだけあって、OpenVPNサーバー 単体よりは割⾼になる。 • マネージド・サービスにすることにより運⽤コストは下がる • パターンによりコストが変わってくる ※VPNクライアント接続数、接続先サブネット数、運⽤⼿間等 OpenVPN サーバー AWS Client VPN vs 4.詳細な要件対応 • AWS Client VPNでは提供していない利⽤⽅法が出てきた時の適 応性はOpenVPNサーバー単体のほうが勝っている。 • どんなパターン例があるかは⼀例を次のスライドで紹介
  7. 13 「接続ユーザ毎に接続サーバへのより詳細な接続制限をする」 ※接続ユーザー毎にログイン画⾯を変更したいという要望 • ユーザーAはWEBサーバーの「TCP/81」へのみ接続OK • ユーザーBはWEBサーバーの「TCP/82」へのみ接続OK 「設定⽅法」 • ユーザー毎にVPN接続時に配布するIPを予め予約

    • OpenVPNサーバーのiptablesで接続制限設定 ユーザーA ユーザーB WEBサーバー ( 10.11.1.10 ) OpenVPN サーバー OpenVPNでの詳細要件パターン例 ・ユーザーA専⽤画⾯を閲覧 ・VPN IP=172.18.0.10を配布 172.18.0.10のVPNクライアントは 「http://10.11.1.10:81」のみ接続可 ・ユーザーA専⽤画⾯を閲覧 ・VPN IP=172.18.0.10を配布 172.18.0.10のVPNクライアントは 「http://10.11.1.10:82」のみ接続可
  8. 14 まとめ • 要件やコストを考慮しながら「AWS Client VPN」or「OpenVPNサーバー」を決定 • 運⽤コスト削減したい!マネージド!=「AWS Client VPN」

    • より詳細な設定をしたい!他クラウドでも設定継承して利⽤したい!=「OpenVPNサーバー」 • ネット上に⽂献も沢⼭あるので検討の⼀つとして、「OpenVPN」を (´・Д・)」