「最小権限」を「最小の手間」で実現したい。

>100 Views

November 08, 25

スライド概要

2025/11/08
[IAMスペシャル!]Security-JAWS【第39回】 勉強会

profile-image

札幌の隅っこにすんでるバックエンドエンジニア。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

「最小権限の原則」を「最小の手間」 で実現したい! 2025/11/08 [IAMスペシャル!]Security-JAWS【第39回】 勉強会 1

2.

自己紹介 名前 もりやま ロール 趣味 backend/frontend engineer@Serverworks 個人参加です! キャンプ、筋トレ、日本酒 一言 札幌から来ました! 大規模イベントの登壇初めてです。 緊張します・・・! 2

3.

今朝の札幌 3

4.

早速ですが、こんなエラーよく見ませんか? xxx is not authorized to perform: cloudformation:CreateChangeSet on resource: yyy because no identity-based policy allows the cloudformation:CreateChangeSet action 4

5.

「 (本番環境じゃないし、)一旦FullAccessを 設定しておくか!」 5

6.

「 (本番環境じゃないし、)一旦FullAccessを 設定しておくか!」 6

7.

今回のテーマ IAMの「最小権限の原則」を どうやったら楽に実現できるか を考えてみる! 7

8.

検証条件 GitHub ActionsからAWS SAMを利用したサーバレス環境構築時のロールで検証します。 8

9.

「最小権限」ってどう実現する? 🤔 どうすれば実際に使う権限だけを早く列挙できる? 🤔 それとも、別のアプローチがある? 9

10.

検証内容 以下、3つの作成方法で作成スピードや品質面の比較をしてみます。 1.IAM Access Analyzerのポリシー自動生成機能 2.Amazon Q Developerに作ってもらう 3.アクセス許可境界(バウンダリ)機能 10

11.

今日お話しすること / しないこと 🔹お話しすること 時間の都合上、結果・所感のみ、お話します。 🔹お話ししないこと 検証する3つのサービスの詳細 確認手順 資料の末尾に付録として載せています! 11

12.

結果発表! 12

13.

1. 成果物(IAM Access Analyzerの自動ポリシー生成) ・シンプルに利用しているActionだけを列挙している。(リソースは自分で指定する必要がある。) CFnのStackの名前 13

14.

1. 成果物(Amazon Q Developer) ・シンプルに利用しているActionだけを列挙+セキュリティ対応 (例1:AttachRolePolicyの適用範囲の制限) 14

15.

1. 成果物(Amazon Q Developer) ・シンプルに利用しているActionだけを列挙+セキュリティ対応 (例2:PassRole先のサービスを制限) 15

16.

1. 成果物(バウンダリ) ・「IAMFullAccess」等の強い権限+ バウンダリ(指定したリソース内のみで権限を行使可能) 16

17.

2. 作成時間比較 Amazon Q Developer < バウンダリ < IAM Access Analyzerの自動ポリシー生成 所感: Amazon Q Developer案とバウンダリ案はほぼ同じ時間であっさり動作した Amazon Q Developer案の方が自然言語で指示するだけなので、体感は楽。 IAM Access Analayzerの自動ポリシー作成案は作成後の追加対応がそれなりに必要 CloudTrail証跡のデータイベント、一部サービス(API Gateway)に未対応 17

18.

3. 品質(可読性、保守性、etc)比較 バウンダリ > Amazon Q Developer > IAM Access Analyzerの自動ポリシー生成 所感: バウンダリを使った「ガードレール」アプローチはシンプルに記載できるかつ、 構成変更時に強く、柔軟性がある。 その他の案は利用するものだけ、といった最小限のリストアップとなっている 構成変更がある度にロールの変更も必要になりそう Amazon Q Developerは意図せぬ権限昇格等のセキュリティ対応もしてくれる。 18

19.

まとめ 19

20.

まとめ 「最小権限」とは何かを考える良い機会になった! 「必要最小限な権限のみを列挙」のアプローチだけではない。 悪用時等のセキュリティ対応も必要 「最小限」の言葉にとらわれず、許容できない操作のみを抑止するバウンダリ(ガード レール)案も良かった。 ただし、バウンダリはもう少し使いこなしが必要・・・! 20

21.

[付録]検証記事 詳細な検証結果はQiitaに執筆しています。 21

22.

ご清聴ありがとうございました! 22

23.

付録 23

24.

[発表時省略] 1. IAM Access Analyzerのポリシー生成機能とは? ・CloudTrailイベントを分析することで、対象のロールが使用していたアクションとサービスを特定し、 ポリシーを自動生成する機能。 24

25.

1. 確認方法 手順1: 一旦、強い権限を付与したロールを用意し、必要な操作を行います。 (リソースの新規作成および、更新) 手順2: IAM Access Analyzerのポリシー生成機能を使い、 手順1操作時のCloudTrailベイントからポリシーを自動 手順3: 手順1で付与した強い権限を削除し、自動生成のみのポリシーで動作確認を行う。 手順4: 発生したエラーを潰していく 25

26.

[発表時省略] 2.アクセス許可境界(バウンダリ)とは? ・ IAM エンティティに付与されている権限の範囲内でアクセスの上限を設定する機能。 26

27.

2. 確認方法 手順1: サービス単位で強い権限を付与。 手順2: アクセス許可境界(バウンダリ)機能を使い、強い権限が及ぶリソースの範囲を限定する。 (多くのリソースはCloudFormationのスタック名がリソース名に指定される性質を利用) 手順3: 動作確認を実施し、発生したエラーを潰していく 27

28.

[発表時省略] 3.Amazon Q Developerとは? ソフトウェア開発のための、生成 AI を活用した極めて有能なアシスタント モデルはSonnet4.5を使用。 AWSの公式ドキュメントを検索してくれる、ナレッジMCPも利用。 28

29.

3. 確認方法 手順1: SAMテンプレート、スタック名を指定し、ポリシー生成 手順2: “/review”でセキュリティレビュー実施 手順3: レビュー指摘対応。 手順4: 動作確認を実施し、発生したエラーを潰していく 29