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
73
VPC Block Public AccessとCloudFrontVPCオリジンによって何が変わるのか?
社内勉強会(NRIネットコム様とアイレットの合同勉強会)での発表資料です
da-hatakeyama
January 10, 2025
Tweet
Share
More Decks by da-hatakeyama
See All by da-hatakeyama
WernerVogelsのKeynoteで語られた6つの教訓とOps
hatahata021
2
360
サーバレスを本気で理解したいあなたに贈る 「実践力を鍛えるBootcamp」の紹介
hatahata021
2
190
CloudFrontを使ってSPAなWebサイトを公開するときに気をつけること
hatahata021
1
1.5k
「AWSの薄い本」の紹介
hatahata021
1
84
ALBの新機能 Automatic Target Weightsとgray failuresについて考えてみる
hatahata021
0
740
re:Invent Workshop「Advanced Multi-AZ Resilience Patterns」をやってみた
hatahata021
1
210
Transfer Family for SFTPを使ってみよう
hatahata021
2
1.9k
VPCについてあらためて考えてみる
hatahata021
1
200
はじめてのCloudflare
hatahata021
1
130
Other Decks in Technology
See All in Technology
20241218_マルチアカウント環境におけるIAM_Access_Analyzerによる権限管理.pdf
nrinetcom
PRO
3
150
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
140
動画配信の フロントエンドを支える 4年間とこれから
nisshii0313
0
110
【令和最新版】ロボットシミュレータ Genesis x ROS 2で始める快適AIロボット開発
hakuturu583
2
1.4k
型情報を用いたLintでコード品質を向上させる
sansantech
PRO
2
220
20240522 - 躍遷創作理念 @ PicCollage Workshop
dpys
0
310
Unsafe.BitCast のすゝめ。
nenonaninu
0
160
いまからでも遅くないコンテナ座学
nomu
0
200
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
250
プロダクト組織で取り組むアドベントカレンダー/Advent Calendar in Product Teams
mixplace
0
660
AIエージェントに脈アリかどうかを分析させてみた
sonoda_mj
2
130
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.7k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
521
39k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
The Cult of Friendly URLs
andyhume
78
6.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
171
50k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Designing for Performance
lara
604
68k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Typedesign – Prime Four
hannesfritz
40
2.5k
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