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

VPC OriginsとVPC BPAでWEB構成が変わるかもしれない

rinda2001
December 11, 2024

VPC OriginsとVPC BPAでWEB構成が変わるかもしれない

2024/11に発表されたAWSのアップデートのうち、
・CloudFront VPC Origins
・VPC BPA(Block public access)
が個人的に衝撃的だったので書きました。

公開した後で、BPAを有効にしたVPCだとVPC Originsが作れない(!)ことがわかり
これらの組み合わせはダメでした。
ということで資料修正して公開し直しました。

rinda2001

December 11, 2024
Tweet

More Decks by rinda2001

Other Decks in Technology

Transcript

  1. 自己紹介 Akihiro Takamura (rinda2001) @rinda2001 テックリード エス・ビー・エス株式会社(S.B.S. inc.) Amplify /

    ECS / Codeシリーズ React/Next.js/ReactNativeと戯れる日々 リングフィットアドベンチャー5年生(現在5周目終盤) 私生活のアップデートネタが無さすぎて この部分を書くのに大変困ってます
  2. 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を提供 他にもあります。キャッチアップで嬉しい悲鳴。。
  3. 個人的大注目ポイント • すぐにでも使っていきたい!と思った神アップデート ‣ Amazon CloudFrontでVPCオリジンをサポート ‣ Amazon VPCでBlock Public

    Access(BPA)を提供開始 • 今回はどういったものなのか、これからのアーキテクチ ャ設計にどう影響していくのかを紹介します
  4. インターネット公開WEB よくある構成 ࠓ·Ͱ • VPCにPublic Subnetを作成 ‣ Route TableでIGWへのRouteを設定 •

    CloudFrontのoriginとしてALBを設定 • インターネットアクセス可能なALBをPublic Subnetに 配置
  5. 今までの構成での悩みどころ • 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リソースへアクセス 可能になってしまうリスクがある
  6. インターネット公開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郡を別途作る必要があります(従来通り)
  7. 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を選択
  8. VPC BPA(Block public access)is 何 • 2024/11/19に発表されたVPCの新機能 • VPCやサブネット内のリソースがIGWを介してインターネットにアクセ スしたり、インターネットからアクセスされることをブロックする

    ‣ IN/OUT両方ブロック or INのみブロック が選択可能 • 設定はVPC単位でなく、アカウント・リージョン単位 ‣ アカウント・リージョン内にある全VPCに影響する
  9. VPC BPA(Block public access)is 何 • サブネット単位にブロック除外設定ができる ‣ IN/OUT両方許可 or

    OUTのみ許可 が選択可能 ‣ VPC全体のBPAを有効化する「前に」除外設定をしておくことは可能 ‣ 既存VPCをあらかじめ除外設定したあとにBPAを有効化することで 影響範囲を最小化できるはず
  10. 注意しておくこと • 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作成時にエラ ーになる ‣ てっきりできるものだと思ってましたが、ダメでした
  11. まとめ • CloudFront VPC Originsを利用することでPublicなサブネット・ ALB/NLB/EC2を排除できる ‣ セキュリティ面でもコスト面(IPV4)でもメリットばかり ‣ Port80/443での公開であればこれを使わない手はない

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

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