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
87
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
370
サーバレスを本気で理解したいあなたに贈る 「実践力を鍛えるBootcamp」の紹介
hatahata021
2
190
CloudFrontを使ってSPAなWebサイトを公開するときに気をつけること
hatahata021
1
1.6k
「AWSの薄い本」の紹介
hatahata021
1
87
ALBの新機能 Automatic Target Weightsとgray failuresについて考えてみる
hatahata021
0
750
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
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.3k
OPENLOGI Company Profile
hr01
0
58k
アジャイルチームが変化し続けるための組織文化とマネジメント・アプローチ / Agile management that enables ever-changing teams
kakehashi
3
3k
自社 200 記事を元に整理した読みやすいテックブログを書くための Tips 集
masakihirose
1
240
最近のSfM手法まとめ - COLMAP / GLOMAPを中心に -
kwchrk
8
1.8k
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
190
チームが毎日小さな変化と適応を続けたら1年間でスケール可能なアジャイルチームができた話 / Building a Scalable Agile Team
kakehashi
1
190
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
4
110
プロダクト組織で取り組むアドベントカレンダー/Advent Calendar in Product Teams
mixplace
0
680
10年もののバグを退治した話
n_seki
0
150
カップ麺の待ち時間(3分)でわかるPartyRockアップデート
ryutakondo
0
110
シフトライトなテスト活動を適切に行うことで、無理な開発をせず、過剰にテストせず、顧客をビックリさせないプロダクトを作り上げているお話 #RSGT2025 / Shift Right
nihonbuson
3
1.9k
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
38k
How GitHub (no longer) Works
holman
312
140k
We Have a Design System, Now What?
morganepeng
51
7.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Rails Girls Zürich Keynote
gr2m
94
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
860
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
490
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Done Done
chrislema
182
16k
GitHub's CSS Performance
jonrohan
1030
460k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
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