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
300
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
110
WernerVogelsのKeynoteで語られた6つの教訓とOps
hatahata021
2
390
サーバレスを本気で理解したいあなたに贈る 「実践力を鍛えるBootcamp」の紹介
hatahata021
2
200
CloudFrontを使ってSPAなWebサイトを公開するときに気をつけること
hatahata021
1
1.7k
「AWSの薄い本」の紹介
hatahata021
1
100
ALBの新機能 Automatic Target Weightsとgray failuresについて考えてみる
hatahata021
0
780
re:Invent Workshop「Advanced Multi-AZ Resilience Patterns」をやってみた
hatahata021
1
220
Transfer Family for SFTPを使ってみよう
hatahata021
2
2k
VPCについてあらためて考えてみる
hatahata021
1
210
Other Decks in Technology
See All in Technology
Next Step: Play Time!
trishagee
2
140
パブリッククラウドのプロダクトマネジメントとアーキテクト
tagomoris
4
950
もし今からGraphQLを採用するなら
kazukihayase
9
4.5k
re:Invent Recap (January 2025)
scalefactory
0
350
Women in Agile
kawaguti
PRO
3
190
サーバーレスで楽しよう!お気軽に始められる3つのポイント / Have fun with Serverless!
_kensh
3
290
開発者が自律的に AWS Security Hub findings に 対応する仕組みと AWS re:Invent 2024 登壇体験談 / Developers autonomously report AWS Security Hub findings Corresponding mechanism and AWS re:Invent 2024 presentation experience
kaminashi
0
120
テストアーキテクチャ設計で実現する高品質で高スピードな開発の実践 / Test Architecture Design in Practice
ropqa
3
390
Amazon Location Serviceを使ってラーメンマップを作る
ryder472
2
180
Fintech SREの挑戦 PCI DSS対応をスマートにこなすインフラ戦略/Fintech SRE’s Challenge: Smart Infrastructure Strategies for PCI DSS Compliance
maaaato
0
360
20250130_『SUUMO』の裏側!第2弾 ~機械学習エンジニアリング編
recruitengineers
PRO
1
470
事業継続を支える自動テストの考え方
tsuemura
0
180
Featured
See All Featured
Optimizing for Happiness
mojombo
376
70k
We Have a Design System, Now What?
morganepeng
51
7.4k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
How to Ace a Technical Interview
jacobian
276
23k
KATA
mclloyd
29
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Embracing the Ebb and Flow
colly
84
4.6k
Code Review Best Practice
trishagee
66
17k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
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