Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
EC2→S3で学ぶクロスアカウント権限設計の勘所
Search
Hibiki
November 08, 2025
1.1k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
EC2→S3で学ぶクロスアカウント権限設計の勘所
Hibiki
November 08, 2025
More Decks by Hibiki
See All by Hibiki
[NW-JAWS]2025年版AWS IPv6関連アップデート
hibikisuaga
0
100
CloudWatchでちょっと楽してマルチアカウント監視
hibikisuaga
0
83
Network FirewallとTransit Gateway統合
hibikisuaga
3
510
NW-JAWS VPC間接続のまとめ
hibikisuaga
0
45
MFA必須化でハマった謎エラー
hibikisuaga
0
83
NW-JAWS ルートテーブルとエンドポイント入門
hibikisuaga
2
850
Amplify_Reactで爆速アプリ開発.pdf
hibikisuaga
0
48
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
1
550
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
Bash Introduction
62gerente
615
220k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
290
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
Building the Perfect Custom Keyboard
takai
2
890
Documentation Writing (for coders)
carmenintech
77
5.5k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
We Are The Robots
honzajavorek
0
380
Transcript
で学ぶクロスアカウント権限設計の勘所 須永 響
@gravitas580 須永 響 Hibiki Sunaga CTC(伊藤忠テクノソリューションズ株式会社 ) 新卒3年目 業務:AWSインフラ基盤の設計・構築 好きなAWS技術:マルチアカウント、NW
:@gravitas580 About Me
アジェンダ @gravitas580 01 02 03 04 05 本日のテーマとゴール ネットワーク接続経路の設計パターン ポリシーの種類と使い方
クロスアカウントアクセスの権限設計パターン まとめ
アジェンダ @gravitas580 01 02 03 04 05 本日のテーマとゴール ネットワーク接続経路の設計パターン ポリシーの種類と使い方
クロスアカウントアクセスの権限設計パターン まとめ
@gravitas580 クロスアカウントの権限設計 自信もってできますか?
@gravitas580 クロスアカウント接続での困りごと クロスアカウントでの 権限の挙動がわからない そもそそも IAMポリシーの種類や仕組み よくわからなってないかも 最小権限にしたいけど、 どのアカウントにどの制 限をかければ、、、
@gravitas580 本日のゴール EC2 → S3 というシンプルな構成で クロスアカウントでの権限の勘所を押さえる
@gravitas580 話すこと ➢ バケットポリシーの修正 ➢ AssumeRole利用 ➢ アクセスキー利用 IAMポリシーの種類と仕組み ➢
アイデンティティベースポリシー ➢ リソースベースポリシー クロスアカウント接続の権限設計パターン
@gravitas580 本日検討する構成 システムアカウント のEC2から、 ログアカウント のS3にファイルをアップロードしたい
@gravitas580 クロスアカウントの接続で検討すること ネットワーク接続経路設計 NW どうやってEC2とS3をつなぐか 権限設計 IAM 誰がどの権限でアクセスするのか
@gravitas580 クロスアカウントの接続で検討すること 本日はIAMスペシャル! ⇒ を中心に、 もサクッと紹介 ネットワーク接続経路設計 NW どうやってEC2とS3をつなぐか 権限設計
IAM 誰がどの権限でアクセスするのか IAM NW
アジェンダ @gravitas580 01 02 03 04 05 本日のテーマとゴール ネットワーク接続経路の設計パターン ポリシーの種類と使い方
クロスアカウントアクセスの権限設計パターン まとめ
@gravitas580 接続パターン A) Gateway型VPCエンドポイント経由 B) TGW(or VPCピアリング)&Interface型VPCエンドポイント経由 C) Internet Gateway経由
@gravitas580 接続パターン A) Gateway型VPCエンドポイント経由 ※STSエンドポイント、SSMエンドポイントは記載なし
@gravitas580 接続パターン B) TGW(or VPCピアリング)&Interface型VPCエンドポイント経由 ※STSエンドポイント、SSMエンドポイントは記載なし
@gravitas580 接続パターン C) Internet Gateway経由 ※STSエンドポイント、SSMエンドポイントは記載なし
@gravitas580 接続パターン A) Gateway型VPCエンドポイント経由 B) TGW(or VPCピアリング)&Interface型VPCエンドポイント経由 C) Internet Gateway経由
どのパターンで構築しても、権限設計には影響なし NW要件に応じて設計しましょう おすすめ
アジェンダ @gravitas580 01 02 03 04 05 本日のテーマとゴール ネットワーク接続経路の設計パターン ポリシーの種類と使い方
クロスアカウントアクセスの権限設計パターン まとめ
@gravitas580 同一アカウント内アクセスの場合 どんなポリシーを付与すればよいか?
@gravitas580 同一アカウント内のEC2→S3なら簡単 ⚫ EC2のIAMロールにS3アクション許可ポリシーを付与
@gravitas580 クロスアカウントの場合 同一アカウントのときと同じように 「EC2のIAMロールにS3アクション許可ポリシーを付与」 するだけではダメ
@gravitas580 IAMポリシーの種類 ✓ アイデンティティベースポリシー ✓ リソースベースポリシー 他には、Permission Boundary, SCP, RCP,
ACL, セッションポリシーがある AWS Identity and Access Management でのポリシーとアクセス許可 - AWS Identity and Access Management
@gravitas580 アイデンティティベースポリシー ✓ IAMロール、IAMユーザー、IAMグループに付与するポリシー ✓ 「何をできるか/できないか」の権限を与えるポリシー EC2のIAMロールにつけていたS3アクション許可ポリシーが該当
@gravitas580 リソースベースポリシーとは? ✓ リソースに設定するポリシー ✓ 「誰からのアクセスを許可/拒否するか」を設定するポリシー 例: ➢ S3のバケットポリシー: 誰が
S3バケットに アクセスできるか ➢ IAMロールの信頼ポリシー: 誰が IAMロールを 使用できるか
@gravitas580 EC2→S3のアクセスが可能なのは ✓ アイデンティティベースポリシーで許可 ✓ リソースベースポリシーで許可 ⇒両方揃えばアクセス可能
@gravitas580 実は同一アカウントの場合でも... 同一アカウントでも両方の許可が必要 ➢ EC2:IAMポリシー「 S3アクションを許可」 ➢ S3:バケットポリシー「EC2用IAMロールからのアクセスを許可」 ただし、 バケットポリシーはデフォルトで同一アカウントからのアクセスが許可されている
⇒ EC2へIAMポリシーを付与するだけでよい
@gravitas580 (再掲)EC2→S3のアクセスが可能なのは ✓ アイデンティティベースポリシーで許可 ✓ リソースベースポリシーで許可 ⇒両方揃えばアクセス可能
アジェンダ @gravitas580 01 02 03 04 05 本日のテーマとゴール ネットワーク接続経路の設計パターン ポリシーの種類と使い方
クロスアカウントアクセスの権限設計パターン まとめ
@gravitas580 実装パターン 3つ ① バケットポリシーの修正 ② AssumeRole ③ アクセスキー
@gravitas580 パターン1: バケットポリシーの修正 ⚫ EC2のIAMロールでログアカウントS3へのアクセスを許可 ⚫ S3のバケットポリシーではEC2のIAMロールからのアクセスを許可
@gravitas580 IAMポリシーのCondtion条件で aws:ResourceAccount、aws:ResourceOrgID を指定することで、特定のアカウント/Organizations配下アカウントに制限可能 パターン1: ポリシー設定内容 EC2 IAMポリシー { "Effect":
"Allow", "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::my-bucket/*" } S3 バケットポリシー { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/EC2Role" }, "Action": ["s3:PutObject", "s3:GetObject"], "Resource": "arn:aws:s3:::my-bucket/*" } Tips
@gravitas580 パターン1:まとめ ✓ どのアカウントの権限でアクセスしている? ⇒システムアカウントの権限 ✓ バケットポリシーはデフォルトで同一アカウントからの権限のみ許可 ⇒バケットポリシーを修正
@gravitas580 パターン2: AssumeRole ⚫ ログアカウント内にAssumeRole用のIAMロールを作成 ⚫ EC2はログアカウントの権限に切り替えてS3にアクセス
@gravitas580 パターン2:必要なポリシー 3つのポリシーの設定が必要 1. EC2用 IAMポリシー → AssumeRoleの実行を許可 2. ログアカウントIAMロール用
アイデンティティベースポリシー → S3へアクセスを許可 3. ログアカウントIAMロール用 信頼ポリシー → EC2ロールからのAssumeRoleを許可 S3目線では、同じアカウントからのアクセスのためバケットポリシーの修正は不要
@gravitas580 (補足)AssumeRoleの復習 AssumeRole ✓ sts:AssumeRoleというアクションを実行 ✓ 他のロールを借りる際に使用 ✓ 一時的な認証情報を取得 ➢
アクセスキー、シークレットアクセスキー、セッショントークン ※スイッチロール:マネコン上でAssumeRoleをする機能
@gravitas580 パターン2:ポリシー設定内容 EC2 IAMポリシー { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource":
"arn:aws:iam::999999999999:role/S3AccessRole" } ログアカウントIAMロール アイデンティティベースポリシー { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::my-bucket/*" } ログアカウントIAMロール 信頼ポリシー { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/EC2Role" }, "Action": "sts:AssumeRole" }
@gravitas580 パターン2:まとめ ✓ どのアカウントの権限でアクセスしている? ⇒AssumeRoleすることで、ログアカウントの権限でアクセス ✓ バケットポリシーはデフォルトで同一アカウントからの権限のみ許可 ⇒(S3から見ると)同一アカウントの権限からのアクセスのため バケットポリシーは修正不要
@gravitas580 パターン3: アクセスキー(非推奨) ⚫ ログアカウントにS3アクションを許可したIAMユーザーを作成 ⚫ EC2内にIAMユーザーのアクセスキーをハードコード
@gravitas580 パターン3:まとめ ✓ どのアカウントの権限でアクセスしている?
@gravitas580 パターン3:まとめ ✓ どのアカウントの権限でアクセスしている? ⇒アクセスキーを使用することで、ログアカウントの権限でアクセス ✓ バケットポリシーはデフォルトで同一アカウントからの権限のみ許可 ⇒(S3から見ると)同一アカウントの権限からのアクセスのため バケットポリシーは修正不要
@gravitas580 アクセスする権限の違い バケットポリシーの修正では、システムアカウントの権限でアクセス AssumeRoleでは、ログアカウントの権限でアクセス
@gravitas580 アクセスする権限の違い 権限を一元管理するという点からも、AssumeRole推奨
アジェンダ @gravitas580 01 02 03 04 05 本日のテーマとゴール ネットワーク接続経路の設計パターン ポリシーの種類と使い方
クロスアカウントアクセスの権限設計パターン まとめ
@gravitas580 まとめ ⚫ クロスアカウントでのアクセスは、疎通性や権限に要注意 ⚫ クロスアカウントでの接続時にはどのアカウントの権限を使用しているのか 意識するとSCP等の設計も組みやすくなる ➢ IAM Identity
Centerはログイン先アカウントのIAMロールを使用している ⚫ 実際はSCP, RCP, Permisson Boundary, ACLなども影響してくるので まだまだ奥は深い ➢ 気になる方は「 ポリシー 評価ロジック フローチャート」などで検索