Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
VPC Block Public AccessとCloudFrontVPCオリジンによって何...
Search
da-hatakeyama
January 10, 2025
Technology
2
630
VPC Block Public AccessとCloudFrontVPCオリジンによって何が変わるのか?
社内勉強会(NRIネットコム様とアイレットの合同勉強会)での発表資料です
da-hatakeyama
January 10, 2025
Tweet
Share
More Decks by da-hatakeyama
See All by da-hatakeyama
VPC Block Public Accessを触ってみて気づいた色々な勘所
hatahata021
2
230
WernerVogelsのKeynoteで語られた6つの教訓とOps
hatahata021
2
490
サーバレスを本気で理解したいあなたに贈る 「実践力を鍛えるBootcamp」の紹介
hatahata021
2
280
CloudFrontを使ってSPAなWebサイトを公開するときに気をつけること
hatahata021
1
2.4k
「AWSの薄い本」の紹介
hatahata021
1
150
ALBの新機能 Automatic Target Weightsとgray failuresについて考えてみる
hatahata021
0
900
re:Invent Workshop「Advanced Multi-AZ Resilience Patterns」をやってみた
hatahata021
1
260
Transfer Family for SFTPを使ってみよう
hatahata021
2
3.2k
VPCについてあらためて考えてみる
hatahata021
1
260
Other Decks in Technology
See All in Technology
Snowflake Intelligenceで実現できるノーコードAI活用
takumimukaiyama
1
230
Digitization部 紹介資料
sansan33
PRO
1
4.2k
IAMのマニアックな話 2025を執筆して、 見えてきたAWSアカウント管理の現在
nrinetcom
PRO
4
550
Whats_new_in_Podman_and_CRI-O_2025-06
orimanabu
3
180
宇宙パトロール ルル子から考える LT設計のコツ
masakiokuda
2
100
Copilot Agentを普段使いしてわかった、バックエンド開発で使えるTips
ykagano
1
1.1k
「伝える」を加速させるCursor術
naomix
0
620
OpenTelemetry Collector internals
ymotongpoo
5
540
Nonaka Sensei
kawaguti
PRO
3
680
マルチテナント+マルチプロダクト SaaS への AI Agent の組み込み方
kworkdev
PRO
2
330
Tensix Core アーキテクチャ解説
tenstorrent_japan
0
360
AIエージェントの継続的改善のためオブザーバビリティ
pharma_x_tech
6
1.2k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Site-Speed That Sticks
csswizardry
10
630
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
The Language of Interfaces
destraynor
158
25k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Speed Design
sergeychernyshev
31
990
Thoughts on Productivity
jonyablonski
69
4.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Transcript
[NRIネットコム & Iret 共同]re:Invent recap CI事業部 畠山大治 VPC Block Public
Accessと CloudFront VPC Originsによって 何が変わるのか?
目次 2 l はじめに l VPC Block Public Access、CloudFront VPC
Originsとは l 実際に触ってみる l VPC Block Public Accessの設定内容による挙動の確認 l CloudFront VPC Originsの導入方法 l VPC Block Public AccessとCloudFront VPC Originsを組み合わせる l 今後意識すべき観点 l まとめ
3 はじめに
自己紹介 4 名前: 畠山大治 所属: クラウドインテグレーション事業部 プロジェクトマネジメントセクション 業務: クラウド案件のプリセールスや要件定義 好きなもの:
Perfume、読書、映画・アニメ ギター(練習中) 認定・資格:
今日話すこと・話さないこと 5 l 話すこと Ø VPC Block Public Access、CloudFront VPC
Originsの概要 Ø 実際に導入してみた場合の挙動を確認した結果 Ø 導入する時に考えるべきこと、気を付けるべきこと(主観) l 話さないこと Ø VPC、CloudFrontなど基本的なAWSサービスについての説明 Ø ネットワークに関する基礎知識の補足説明 Ø Webサイトのフロントエンド、バックエンド実装に関わる領域
6 VPC Block Public Access、CloudFront VPC Originsとは
VPC Block Public Access(BPA)とは 7 l VPCとインターネットの間の通信をブロックできる機能 Ø ブロックする方向は2種類の設定から選択可能 •
双方向 :インバウンドとアウトバウンド両方ブロック • Ingress-only :インターネットからVPCへのインバウンドのみブロック l BPA設定を適用しない除外設定をサブネット単位で設定可能 Ø 除外するトラフィックの方向も2種類から選択可能 • 双方向 :インバウンドとアウトバウンド両方を許可 • Egress-Only :サブネットからインターネットへの通信を許可 l セキュリティグループやNACLよりも強力な設定 l リージョン単位で設定が反映される
CloudFront VPC Originsとは 8 l プライベートサブネットにあるリソースを、CloudFrontディストリビューションのオリジ ンに設定できる機能 l 対応しているリソースはALB、NLB、EC2インスタンス l
ALB、NLBをパブリックサブネットに配置する必要がないため、よりセキュアな構成にす ることができる Ø パブリックIPを削減することができるためコスト削減も見込める
9 実際に触ってみる
10 VPC Block Public Accessの設定内容による挙動の確認
VPC Block Public Accessの設定内容による挙動の確認 11 従来通りのアーキテクチャで検証環境を用意 l IPv4とIPv6のデュアルスタック構成でVPCとサブ ネットを作成 l
ALBもデュアルスタックで作成 l インターネットとの通信パターンを3種類用意し、 BPA設定によるそれぞれの挙動を確認 Ø EC2からのインターネットEgress(IPv4) Ø EC2からのインターネットEgress(IPv6) Ø インターネットからALBへのIngress(IPv4、IPv6) l Egress通信の確認にはGoogleのDNSを使用 Ø IPv4:8.8.8.8 Ø IPv6:2001:4860:4860::8888 l 簡略化のためHTTPS化は未実施
VPC Block Public Accessの設定内容による挙動の確認 12 まずは「双方向ブロック、除外設定なし」の設定を入れてみる (設定を入れた後に1分ほど待機すると有効化される)
VPC Block Public Accessの設定内容による挙動の確認 13 「VPCとインターネットとの通信をすべてブロックする」 という設定を入れているので、全通信がブロックされる 通信経路 結果 EC2からのインターネットEgress(IPv4)
拒否 EC2からのインターネットEgress(IPv6) 拒否 インターネットからALBへのIngress(IPv4、IPv6) 拒否
VPC Block Public Accessの設定内容による挙動の確認 14 先ほどの設定に「パブリックサブネットでの双方向通信を除外」という設定を追加してみる (設定を入れてから有効化されるまで5分ほど時間がかかる)
VPC Block Public Accessの設定内容による挙動の確認 15 IPv6でのEgress通信のみ拒否される結果に 通信経路 結果 EC2からのインターネットEgress(IPv4) 許可
EC2からのインターネットEgress(IPv6) 拒否 インターネットからALBへのIngress(IPv4、IPv6) 許可 sh-5.2$ ping -c 10 2001:4860:4860::8888 PING 2001:4860:4860::8888(2001:4860:4860::8888) 56 data bytes --- 2001:4860:4860::8888 ping statistics --- 10 packets transmitted, 0 received, 100% packet loss, time 9373ms sh-5.2$
VPC Block Public Accessの設定内容による挙動の確認 16 l IPv6でのEgressが一度許可(ACCEPT)された後に拒否(REJECT)されている l VPCフローログのreject-reasonフィールドに「BPA」との記載あり セキュリティグループやNACLで許可された後に、BPAで拒否されるという挙動になっている
VPC Block Public Accessの設定内容による挙動の確認 17 「プライベートサブネットでのEgress通信を除外」という設定をさらに追加してみる
VPC Block Public Accessの設定内容による挙動の確認 18 必要なインターネットトラフィックがすべて許可される 通信経路 結果 EC2からのインターネットEgress(IPv4) 許可
EC2からのインターネットEgress(IPv6) 許可 インターネットからALBへのIngress(IPv4、IPv6) 許可 ※ BPA設定のブロック方向を「Ingress-Only」にした場合は、 IPv6のEgress通信は制限されない (プライベートサブネットの除外設定が不要になる)
VPC Block Public Accessの設定内容による挙動の確認 19 今回の構成でBPAを導入するのであれば以下のような設定になる l パターン1 Ø 双方向ブロック
Ø パブリックサブネットでの双方向除外 Ø プライベートサブネットでのEgress-Only除外 l パターン2 Ø Ingress-Onlyブロック Ø パブリックサブネットでの双方向除外
20 CloudFront VPC Originsの導入方法
CloudFront VPC Originsの導入方法 21 先ほどの構成でBPAの設定を無効にした上で、構成にCloudFrontを追加する
CloudFront VPC Originsの導入方法 22 まずはVPC Originsに設定する内部ALBを新規作成
CloudFront VPC Originsの導入方法 23 CloudFrontの画面左メニューから[VPC Origins]をクリックし、そこからVPC Originsを作成する
CloudFront VPC Originsの導入方法 24 VPC Originsの作成が完了すると、裏では「cloudfront_managed」というタイプのENIが2つ追加される
CloudFront VPC Originsの導入方法 25 CloudFrontのオリジンにVPCオリジンを追加し、ビヘイビアのオリジン設定を修正すれば設定完了!
CloudFront VPC Originsの導入方法 26 インターネットに露出するリソースを極限まで減らした構成が完成
27 VPC Block Public AccessとCloudFront VPC Originsを組み合わせる
VPC Block Public AccessとCloudFront VPC Originsを組み合わせる 28 先ほど最後に使った設定「BPAで双方向ブロック、パブリックサブネットで双方向除外、プライベー トサブネットでEgress-Only除外」を再度有効化してみると…
VPC Block Public AccessとCloudFront VPC Originsを組み合わせる 29 インターネットからWebサーバーに到達不可能に インターネットからCloudFront VPC
Origins向けの 通信はインバウンドと判定されている 通信経路 結果 EC2からのインターネットEgress(IPv4) 許可 EC2からのインターネットEgress(IPv6) 許可 インターネットからALBへのIngress(IPv4、IPv6) 拒否 プライベートサブネットでの設定を双方向除外に 変更する必要がある
VPC Block Public AccessとCloudFront VPC Originsを組み合わせる 30 今回の構成でBPAを導入するのであれば以下のような設定になる l パターン1
Ø 双方向ブロック Ø パブリックサブネットでのEgress-Only除外 Ø プライベートサブネットでの双方向除外 l パターン2 Ø Ingress-Onlyブロック Ø プライベートサブネットでの双方向除外
31 今後意識すべき観点
今後意識すべき観点 32 l BPAのブロック方向の設定によって除外設定の内容も変わることを考慮して設計を行う必 要がある l 既存リソースがある環境で導入する場合は… Ø あらかじめ除外設定を入れておいた上で、BPA設定のブロック方向を「Ingress-Only」に設定、 そこから除外設定を追加していくという手順が比較的シンプルと思われる
Ø とはいえアーキテクチャによって設計を柔軟に変えておく必要がある l インターネット接続を問答無用で遮断する機能なので設定は慎重に! Ø 設定はかなりシンプルだが影響は非常に大きい BPA設定のブロック方向と除外設定の組み合わせ
今後意識すべき観点 33 l セキュリティグループ、NACLよりも強力な 機能なので権限管理をしておくと安心 Ø 権限設定の例 • 「VpcBlockPublicAccessExclusion」 が含まれ
れるEC2のAPIアクションのみを制限するIAM ポリシー • 2025年1月現在、対象のAPIアクションは6つ存 在している 権限管理 { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmtxxxxxxxxxxxxx", "Action": [ "ec2:CreateVpcBlockPublicAccessExclusion", "ec2:DeleteVpcBlockPublicAccessExclusion", "ec2:DescribeVpcBlockPublicAccessExclusions", "ec2:DescribeVpcBlockPublicAccessOptions", "ec2:ModifyVpcBlockPublicAccessExclusion", "ec2:ModifyVpcBlockPublicAccessOptions" ], "Effect": "Deny", "Resource": "*" }, { "Sid": "Stmtxxxxxxxxxxxxx", "Action": "*", "Effect": "Allow", "Resource": "*" } ] }
参考:Terraformの利用 34 Terraformがすでに対応しているのでIaC管理に組み込むことも可能です Ø Resource: aws_vpc_block_public_access_exclusion • https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_block_public_access_exclusion Ø Resource:
aws_vpc_block_public_access_options • https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_block_public_access_options
35 まとめ
まとめ 36 l BPAを使用するとVPCとインターネットの間のトラフィックを制御できる Ø セキュリティやガバナンスを強化する効果がある l CloudFront VPC Originsを使用するとパブリックサブネットに配置するリソースを極限ま
で減らすことができる Ø パブリックIPによるセキュリティ強化とコスト削減の効果がある l BPAとCloudFront VPC Originsを組み合わせることで、よりセキュアな環境を作ることが できる l 一方で、設計時には既存の構成とは少し異なる観点が必要になる
参考資料 37 l Amazon VPC Block Public Access による VPC
セキュリティの強化 Ø https://aws.amazon.com/jp/blogs/news/vpc-block-public-access/ l VPC とサブネットへのパブリックアクセスをブロックする Ø https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/security-vpc-bpa.html l [アップデート]複数VPCのインターネット通信を制御する機能「VPC Block Public Access (BPA)」がリリースされました! Ø https://iret.media/128465 l Amazon CloudFront VPC オリジンの紹介: アプリケーションのセキュリティ強化と運用の合理化 Ø https://aws.amazon.com/jp/blogs/news/introducing-amazon-cloudfront-vpc-origins-enhanced-security-and-streamlined- operations-for-your-applications/ l Restrict access with VPC origins Ø https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-vpc-origins.html