2.5K Views
May 04, 23
スライド概要
JAWS SONIC 2020 & MIDNIGHT JAWS 2020
https://jawssonic2020.jaws-ug.jp/2020/08/12/post-165/
JAWS SONIC 2020 週末趣味のAWS NAT配下のCGWからIKEv2でサイト間VPN接続 Private Link を添えて
免責事項 本資料並びにセッションでの発言は私個人の調査や情報 収集および実践に基づいて構成したものです したがって所属企業やAWS等、私個人以外の如何なるも のの意見を代表するものではありません 本セッションでの内容に起因して損害が生じた場合におい ても、発表者はその責任を負うことができません
氏名:難波 和生@岡山支部 株式会社リゾーム 所属 Twitter:@kazu_0 職業:情報システム部 管理者 :サーバ・ネットワークのインフラ担当 電気通信主任技術者(伝送交換・線路) 第一級陸上特殊無線技士 テクニカルエンジニア(ネットワーク) 好きなAWSサービス :Transit Gateway/VPC/DX :Global Accelerator
Today's Agenda • NAT配下のカスタマーゲートウェイからAWSへVPN接続 • EC2が提供するサービスへPrivate Link 経由でアクセス • オンプレミス側からのPrivatelink エンドポイント 名前解決 • まとめ • 本セッションでお話しできない事 • マネジメントコンソールからの詳細な設定方法
System overview Amazon Route 53 Private VPC Hosted zone VPC AWS Site-to-Site VPN Security group Corporate data center Flow logs Endpoint Services Network load balancer Amazon EC2 Security group Endpoint Simple AD VPN gateway Tunnel2-IKEv1 VPN connection AWS PrivateLink AWS Systems Manager DNS server Tunnel1-IKEv2 Router Customer gateway Client
NAT配下のカスタマーゲートウェイから AWSへVPN接続
AWS Site-to-Site VPNとは • Amazon Virtual Private Cloud (VPC) とオンプレミス拠点を 閉域網で接続するインターネットVPNサービス • プロトコル: IPSec • AWS側 :仮想プライベートゲートウェイ(VGW) • オンプレ側:カスタマーゲートウェイ(CGW) VPNルータ
AWS Site-to-Site VPNとは • どんな時につかうの? • AWS VPCと自社データセンターなどを暗号化されたトンネルで接続 • 機微な情報をAWS とオンプレ間で転送 • 経路制御は静的ルートとBGP • 2本のVPNトンネルを作成できる • 今回は2本のトンネルそれぞれを IKEv1 と IKEv2 で構築 https://docs.aws.amazon.com/ja_jp/vpn/latest/s2svpn/VPNTunnels.htm
S2S VPN System overview Amazon Route 53 Private VPC Hosted zone VPC AWS Site-to-Site VPN Security group Corporate data center Flow logs Endpoint Services Network load balancer Amazon EC2 Security group Endpoint Simple AD VPN gateway Tunnel2-IKEv1 VPN connection AWS PrivateLink AWS Systems Manager DNS server Tunnel1-IKEv2 Router Customer gateway Client
AWS Site-to-Site VPNとは • IPSecはNATやNAPTが苦手 • 基本的には固定グローバルIPがカスターマーゲートウェイに必要 • こういった要望は意外にあるのでは? • VPN接続用の固定グローバルIPが残っていない • 自宅から検証するためにAWSへVPN接続したい
AWS Site-to-Site VPNとは • NATトラバーサル(NAT-T) • 暗号化されたパケットをUDPでカプセル化することで、NAT/NATP環 境のアドレス変換に対応 • UDP:4500 を使用 • 下記のアウトバウンド通信をFWやNATボックスで許可 • UDP:500 (IKE) IPプロトコルNo:50 (ESP) UDP:4500
AWS Site-to-Site VPNとは • IKEv2のVPN接続時の動作 • イニシエータ側(クライアント側)がオンプレ側NAT配下のCGW • レスポンダー側(サーバ側)がAWS側のVGW Responder Initiator AWS Site-to-Site VPN VPN gateway Router VPN connection Customer gateway
AWS Site-to-Site VPNとは • VPN トンネル IKE 開始の方向 • デフォルトでは、カスタマーゲートウェイデバイスが IKE ネゴシエー ションプロセスを開始してトンネルを開始します。 • 代わりに AWS が IKE ネゴシエーションプロセスを開始するように指 定することもできます。 • VPN 接続の AWS 側からの IKE 開始は IKEv2 でのみサポートされています。 VPN トンネル IKE 開始オプション https://docs.aws.amazon.com/ja_jp/vpn/latest/s2svpn/initiate-vpn-tunnels.html
AWS Site-to-Site VPNとは • AWS マネジメントコンソールからダウンロードできるCGWの 設定はNAT-T やIKEv2の構成になっていない
AWS Site-to-Site VPNとは • AMCからダウンロードしたCGWの設定をNAT-T やIKEv2の構 成に編集 • AWS Site to Site VPN with NAT-T and IKEv2 https://qiita.com/kazu_0/items/fd5d1a4bb63468edc53b Responder Initiator Tunnel1-IKEv2 AWS Site-to-Site VPN VPN gateway Tunnel2-IKEv2 VPN connection Router Customer gateway
EC2で稼働するWebサービスへ Private Link 経由で閉域接続
Privatelink とは • 2017年11月発表 https://aws.amazon.com/jp/blogs/aws/new-aws-privatelink-endpoints-kinesis-ec2-systems-manager-and-elb-apis-in-your-vpc/
Privatelink system overview Amazon Route 53 Private VPC Hosted zone VPC AWS Site-to-Site VPN Security group Corporate data center Flow logs Endpoint Services Network load balancer Amazon EC2 Security group Endpoint Simple AD VPN gateway Tunnel2-IKEv1 VPN connection AWS PrivateLink DNS server Tunnel1-IKEv2 Router Customer gateway Client
Privatelink とは • 2種類あるVPC endpoint の一つ • ゲートウェイ型 • インターフェース型
Privatelink とは • 2種類あるVPC endpoint の一つ • ゲートウェイ型 • AWS のサービスを宛先とするトラフィックのルートテーブルで、 ルートのターゲットとして指定するゲートウェイです。 • Amazon s3 と DynamoDB • インターフェース型 https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-endpoints.html
Privatelink とは • 2種類あるVPC endpoint の一つ • ゲートウェイ型 • AWS のサービスを宛先とするトラフィックのルートテーブルで、 ルートのターゲットとして指定するゲートウェイです。 • Amazon s3 と DynamoDB • インターフェース型 • サポートされるサービスを宛先とするトラフィックのエントリポイ ントとして機能するサブネットの IP アドレス範囲のプライベート IP アドレスを持つ Elastic Network Interface (ENI)です。 https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-endpoints.html
Privatelink とは • Elastic Network Interface (ENI)なので VPN接続した オンプレミス拠点 からのアクセス可能 • VPC間の推移的なトラフィックにならない為 https://docs.aws.amazon.com/ja_jp/vpc/latest/peering/invalid-peering-configurations.html#edge-to-edge-vgw
Privatelink とは • Elastic Network Interface (ENI)なので VPN接続した オンプレミス拠点 からのアクセス可能 • VPC間の推移的なトラフィックにならない為 VPC AWS Account B Security group VPC AWS Account A Corporate data center Security group Network load balancer Amazon EC2 Endpoint VPN gateway Customer gateway 192.168.1.0/24 192.168.1.0/24 AWS PrivateLink AWS Site-to-Site VPN Client
Privatelink とは • 異なるAWSアカウント間での接続(クロスアカウント) • IPプリフィックスが重複するVPC間で使用可能 • Twice NAT の様な動き VPC AWS Account B Security group VPC AWS Account A Corporate data center Security group Network load balancer Amazon EC2 Endpoint 192.168.1.0/24 AWS PrivateLink VPN gateway Customer gateway 192.168.1.0/24 AWS Site-to-Site VPN Client
Privatelink とは • Endpoint から NLB 方向への通信は可能(ステートフル) • NLB から Endpoint 方向への通信は不可 VPC AWS Account B Security group VPC AWS Account A Corporate data center Security group Network load balancer Amazon EC2 Endpoint VPN gateway Customer gateway 192.168.1.0/24 192.168.1.0/24 AWS PrivateLink AWS Site-to-Site VPN Client
Privatelink 環境構築 • NLBはInternal(内部)タイプで作成 • リスナーポートは HTTP(80)、HTTPS(443)、FTP(21・ PASVポート) • 今回の構成はNLBのTLS Terminationは使用せず、TCP:443通 信をそのままターゲットグループのEC2へ転送しています • Endpoint services でサービス提供するリソースが接続される NLBを指定
Privatelink 環境構築 ELB 構築サンプル ElasticLoadBalancingV2LoadBalancer: Type: "AWS::ElasticLoadBalancingV2::LoadBalancer" DeletionPolicy: Retain Properties: Name: "privatelink-test" Scheme: "internal" Type: "network" Subnets: - "subnet-012345e33f13b124d" - "subnet-01234538fb87ecbaf" IpAddressType: "ipv4"
Privatelink 環境構築 • ネットワークロードバランサー(NLB) リスナー設定
Privatelink 環境構築 ELB リスナー構築サンプル ElasticLoadBalancingV2Listener: Type: "AWS::ElasticLoadBalancingV2::Listener" DeletionPolicy: Retain Properties: LoadBalancerArn: !Sub"arn:aws:elasticloadbalancing:${AWS::Region}:${AWS::AccountId}:loadbalancer/net/privatelinktest/a12345bcc52a3aa4" Port: 21 Protocol: "TCP" DefaultActions: Order: 1 TargetGroupArn: !Sub "arn:aws:elasticloadbalancing:${AWS::Region}:${AWS::AccountId}:targetgroup/ServiceFTP/123458a4a682ad8" Type: "forward"
Privatelink 環境構築 • NLB ターゲットグループ設定
Privatelink 環境構築 ELB ターゲットグループ 構築サンプル AWSTemplateFormatVersion: "2010-09-09" Metadata: Generator: "former2" Description: "" Resources: ElasticLoadBalancingV2TargetGroup4: Type: "AWS::ElasticLoadBalancingV2::TargetGroup" DeletionPolicy: Retain Properties: HealthCheckIntervalSeconds: 30 Port: 1024 • PASV Listenポートは1024 Protocol: "TCP" HealthCheckPort: "21" HealthCheckProtocol: "TCP" • HealthCheckポートは21
Privatelink 環境構築 • Endpoint と Endpoint Services 構築 AWS PrivateLinkのアップデート – お客様のアプリケーション&サービス向けのVPCエンドポイント https://aws.amazon.com/jp/blogs/news/aws-privatelinkupdate-vpc-endpoints-for-your-own-applications-services/
Privatelink とは • Cloud Diagrams & Notes https://www.awsgeek.com/AWS-PrivateLink/
オンプレミス側からの Privatelink エンドポイント 名前解決
DNS system overview Amazon Route 53 Private VPC Hosted zone VPC AWS Site-to-Site VPN Security group Corporate data center Flow logs Endpoint Services Network load balancer Amazon EC2 Security group Endpoint Simple AD VPN gateway Tunnel2-IKEv1 VPN connection AWS PrivateLink DNS server Tunnel1-IKEv2 Router Customer gateway Client
Privatelink DNS 環境構築 • 設定のシナリオ • VPNを接続するVPCにSimpleADを作成 • Route53 resolver でもOKです • Route53 へプライベートHosted Zoneを作成 • VPNを接続するVPCに関連付け • endpoint の URL をALIASレコードとして登録 • オンプレミスのDNSサーバ へ条件付きフォワーダを設定
Privatelink DNS 環境構築 • オンプレミス側からPrivatelink のDNS 名前解決設定 Private Hosted zone Endpoint のDNS名を Aliasレコード登録 VPC Amazon Route 53 VPC Corporate data center 条件付きフォワーダ Simple AD Security group DNS names Network load balancer Amazon EC2 Endpoint VPN gateway Customer gateway AWS Account A AWS Account B AWS PrivateLink AWS Site-to-Site VPN DNS server Client
Privatelink DNS 環境構築 • オンプレミス側からPrivatelink のDNS 名前解決設定 • オンプレミスネットワークとAWS間のDNS名前解決をAWS Directory ServiceとAmazon Route 53を使用してセットアップする方法 https://aws.typepad.com/sajp/2016/02/how-to-set-up-dns-resolutionbetween-on-premises-networks-and-aws-using-aws-directory-serviceand-am.html • オンプレミスネットワークとAWS間のDNS名前解決をAWS Directory ServiceとMicrosoft Active Directoryを使用してセットアップする方法 https://aws.typepad.com/sajp/2016/02/how-to-set-up-dns-resolutionbetween-on-premises-networks-and-aws-using-aws-directory-serviceand-mi.html
Privatelink DNS 環境構築 • AWS re:Invent 2019: AWS PrivateLink deployments: DNS mechanisms for routing & resiliency (NET321) https://www.youtube.com/watch?v=abOFqytVqBU
参考URL ◆AWS New York Summit 2018 - AWS PrivateLink: Fundamentals (SRV211) https://www.youtube.com/watch?v=20RxEzAXG9o ◆AWS re:Invent 2018: Best Practices for AWS PrivateLink (NET301) https://www.youtube.com/watch?v=85DbVGLXw3Y ◆Hybrid Cloud DNS Optionsfor Amazon VPC https://d1.awsstatic.com/whitepapers/hybrid-cloud-dns-options-for-vpc.pdf
まとめ ◆NAT配下のカスタマーゲートウェイからAWSへVPN 接続 ◆EC2で稼働するEC2へPrivate Link 経由で閉域接続 ◆オンプレミス側からのPrivatelink エンドポイント 名前解決
AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink ご清聴ありがとうございました