Slide 1

Slide 1 text

VPC originsとVPC BPAで WEB構成が変わるかもしれない rinda2001 2024/12

Slide 2

Slide 2 text

• 自己紹介 • 2024/11 AWSアップデートピックアップ • インターネット公開WEB構成の 今までとアップデート後 • CloudFront VPC origins • VPC BPA(Block Public Access) • 注意しておくこと • まとめ 目次

Slide 3

Slide 3 text

自己紹介

Slide 4

Slide 4 text

自己紹介 Akihiro Takamura (rinda2001) @rinda2001 テックリード エス・ビー・エス株式会社(S.B.S. inc.) Amplify / ECS / Codeシリーズ React/Next.js/ReactNativeと戯れる日々 リングフィットアドベンチャー5年生(現在5周目終盤) 私生活のアップデートネタが無さすぎて この部分を書くのに大変困ってます

Slide 5

Slide 5 text

2024/11 AWSアップデート ピックアップ

Slide 6

Slide 6 text

2024/11 AWSアップデート ピックアップ • AWS re:Invent2024前に大型アップデートが大量に ‣ 個人的に気になったヤツをピックアップ ‣ Amazon ECSでVPC Latticeを利用した接続がサポート ‣ AWS LambdaがPythonと.NETでSnapStartをサポート ‣ Amazon DynamoDBが属性ベースのアクセス制御可能に ‣ Amazon VPCでBlock Public Access(BPA)を提供開始 ‣ Amazon EFSがクロスアカウントレプリケーションに対応 ‣ Amazon CloudFrontでVPC Originsをサポート ‣ ALBとNLBでLoadBalancerCapacityUnitによる予約機能をサポート ‣ Amazon ECSで平均復旧時間を短縮するAZリバランシングをサポート ‣ Amazon Aurora Serverless v2がゼロスケール可能に ‣ Amazon CloudFrontのアクセスログをCloudWatchLogsとFirehoseeに直接配 信可能に ‣ Amazon API GatewayのプライベートRestAPIでカスタムドメインが利用可能 に ‣ AWS LambdaでNode.js22をサポート ‣ Amazon Cognitoでパスキーをサポート ‣ Amazon Cognitoでログイン画面等をカスタムできるManaged Loginを提供 他にもあります。キャッチアップで嬉しい悲鳴。。

Slide 7

Slide 7 text

個人的大注目ポイント

Slide 8

Slide 8 text

個人的大注目ポイント • すぐにでも使っていきたい!と思った神アップデート ‣ Amazon CloudFrontでVPCオリジンをサポート ‣ Amazon VPCでBlock Public Access(BPA)を提供開始 • 今回はどういったものなのか、これからのアーキテクチ ャ設計にどう影響していくのかを紹介します

Slide 9

Slide 9 text

CloudFront VPC Origins

Slide 10

Slide 10 text

CloudFront VPC Origins is 何 • 2024/11/20に発表されたCloudFrontの新機能 • VPC内、PrivateSubnetに配置したリソース(EC2/ALB/NLB)を CloudFrontのOriginにすることができるようになった ‣ 内部的にはPrivateSubnetに自動的にENIが作られ、そのENIに CloudFrontが接続してくる感じになる

Slide 11

Slide 11 text

インターネット公開WEB構成の 今までとアップデート後

Slide 12

Slide 12 text

インターネット公開WEB よくある構成 ࠓ·Ͱ Ξοϓσʔτޙ

Slide 13

Slide 13 text

インターネット公開WEB よくある構成 ࠓ·Ͱ • VPCにPublic Subnetを作成 ‣ Route TableでIGWへのRouteを設定 • CloudFrontのoriginとしてALBを設定 • インターネットアクセス可能なALBをPublic Subnetに 配置

Slide 14

Slide 14 text

今までの構成での悩みどころ • CloudFrontからALBに接続するにはALBをインターネッ トからアクセス可能な状態にする必要がある ‣ Public SubnetとPublic IPが必須 ‣ CloudFront以外から直接ALBへアクセスされるおそれがある ‣ 回避するにはマネージドプレフィックスを使ったセキュリティグループでの 制限、CloudFrontのカスタムヘッダーでの制限等、面倒な仕掛けが必要 • ALB1台につきPublic IPV4アドレスを1つ消費する ‣ Public IPV4は1つ $3.6(約550円)/月 ‣ MultiAZやAuto Scaleなどで増加 • PublicSubnetはうっかりインターネットからのアクセ ス可能リスクがある ‣ セキュリティグループ/NACLで管理が必要 ‣ 設定ミスにより予期せずインターネットからVPCリソースへアクセス 可能になってしまうリスクがある

Slide 15

Slide 15 text

インターネット公開WEB よくある構成 Ξοϓσʔτޙ • VPCにそもそもPublic Subnet不要、Private Subnetのみ ‣ NATもいらない*1 ‣ VPCにIGWのアタッチは必要(Routeを設定する必要なし) • CloudFrontのoriginとして内部ALBを設定 ‣ CloudFrontから内部ALBにはCloudFront VPC originsで接続 • 内部ALBをPrivate Subnetに配置 *1 NATなしにするとECR接続用とかでVPC Endpoint郡を別途作る必要があります(従来通り)

Slide 16

Slide 16 text

アップデート後の構成で何が嬉しいか • ALBが直接インターネットに晒されない ‣ 簡単にCloudFrontからの接続のみにできる ‣ 仮にセキュリティグループで全許可にしていても内部ALBなのでイン ターネットから直接アクセスできない ‣ 通常はCloudFrontマネージドプレフィックスリストからのみ許可にしておけ ばOK • ALBがPublic IPV4を消費しないのでコストが下がる ‣ Public IPV4は1つ $3.6(約550円)/月 • PublicSubnetがないのでセキュリティレベルが上がる ‣ 外部からのインバウンドはprivate接続またはCloudFront経由のみ

Slide 17

Slide 17 text

CloudFront VPC Origins 設定方法

Slide 18

Slide 18 text

CloudFront VPC Origins設定方法 • VPC設定 ‣ Private subnetのみでOK ‣ NAT不要 ‣ Internet Gatewayをアタッチする(Routeは設定不要) ‣ VPC Block public accessが有効な場合は該当VPCもしくはサブネットを除 外設定(双方向許可)する • LBおよびアプリケーション ‣ InternalなALB/NLBもしくはEC2を配置 • Cloudfront VPC Originsを作成 ‣ マネコンより(2024/12時点でCloudformation未サポート) ‣ ↑で作ったLB/EC2を指定 • SecurityGroup設定 ‣ VPC Originsで作られたENIにアタッチされたSecurity Groupからのアクセ スをLB/EC2のSecurityGroupで許可する • CloudFront Distributionを作成 ‣ Originに↑で作ったVPC Originsを選択

Slide 19

Slide 19 text

VPC BPA(Block public access)

Slide 20

Slide 20 text

VPC BPA(Block public access)is 何 • 2024/11/19に発表されたVPCの新機能 • VPCやサブネット内のリソースがIGWを介してインターネットにアクセ スしたり、インターネットからアクセスされることをブロックする ‣ IN/OUT両方ブロック or INのみブロック が選択可能 • 設定はVPC単位でなく、アカウント・リージョン単位 ‣ アカウント・リージョン内にある全VPCに影響する

Slide 21

Slide 21 text

VPC BPA(Block public access)is 何 • サブネット単位にブロック除外設定ができる ‣ IN/OUT両方許可 or OUTのみ許可 が選択可能 ‣ VPC全体のBPAを有効化する「前に」除外設定をしておくことは可能 ‣ 既存VPCをあらかじめ除外設定したあとにBPAを有効化することで 影響範囲を最小化できるはず

Slide 22

Slide 22 text

注意しておくこと

Slide 23

Slide 23 text

注意しておくこと • CloudFront VPC Origins ‣ 現時点(2024/11)、VPCとCloudFrontが同じAWSアカウント内である制限あり (今後マルチアカウント対応を予定) ‣ VPCにはPrivateSubnetだけだけど、IGW アタッチが必要 ‣ オリジンレスポンスタイムアウト:30秒 キープアライブ:5秒で固定、設定変更 不可 • VPC BPA(Block Public Access) ‣ ON/OFFはアカウント・リージョン単位であることに注意 ‣ VPC/サブネット毎に個別に除外設定することはできる ‣ 既存VPCで有効化する前には影響範囲調査が必要 ‣ AWSサービス、IGW・NAT経由アクセス等が影響を受ける可能性 ‣ VPC FlowLogやNetwork Access Scopeの利用を検討 ‣ SSM Manger/Private Link等、インターネット使わない準備OK? ‣ セキュリティグループ/NACLで適切に管理できているのであればBPAは必須 ではない ‣ 適用する・しないは慎重に。特に既存ワークロードへの変更は慎重に ‣ CloudFront VPC OriginsとVPC BPAは共存できない ‣ CloudFrontからの通信をBPAでブロックしてしまうので、VPC Origins作成時にエラ ーになる ‣ てっきりできるものだと思ってましたが、ダメでした

Slide 24

Slide 24 text

まとめ

Slide 25

Slide 25 text

まとめ • CloudFront VPC Originsを利用することでPublicなサブネット・ ALB/NLB/EC2を排除できる ‣ セキュリティ面でもコスト面(IPV4)でもメリットばかり ‣ Port80/443での公開であればこれを使わない手はない • VPC BPA(Block Public Access)を利用することでVPCリソースの 予期せぬインターネット公開を回避できる ‣ セキュリティグループ/NACLのリスク・管理監視コスト低減 ‣ VPC外からのインバウンドをブロックするので、CloudFront VPC Originsとの共存はできない。 • 操作ミス等でのセキュリティリスクを低減しつつ WEBサービスに利用できる環境を作れそう というか最初からこうなっていれば VPCはもっと安全でわかりやすかったんじゃないだろうか・・・

Slide 26

Slide 26 text

参考 • [アップデート]CloudFront VPC origins とは • Amazon CloudFront VPC origins を触ってみた • CloudFront 新機能!VPCオリジンでプライベートなALBをセキュ アに公開してみた • パブリックアクセスブロック(BPA)でインターネットアクセスを 遮断してみた • Block public access to VPCs and subnets