今日学んだこと#
ファインマンテクニックを使ってAWS IAMを整理しました。「12歳にも分かるように説明する」というプロセスを通じて、自分の理解が曖昧だった部分(IAMロールの対象、4概念の関係性)が明確になりました。
学習内容#
ファインマンテクニックとは#
ノーベル物理学賞を受賞したリチャード・ファインマンに由来する学習法です。「専門用語を使わずに説明できなければ、本当に理解していない」という考えに基づいています。
| ステップ | 内容 |
|---|---|
| Step 1 | 学びたい概念を選ぶ |
| Step 2 | 12歳でも分かるように説明を書く |
| Step 3 | 説明に詰まった箇所(ギャップ)を特定し、学び直す |
| Step 4 | 説明を改訂し、シンプルにする |
Step 1 & 2:最初の説明を書く#
AWS IAMについて、専門用語を避けて説明を書いてみました。
IAMというのはAWSリソースへのアクセスを管理する仕組みです。
AWSというのはAmazonが管理しているクラウドサービスの集まり。パソコンからいろいろ便利なサービスを利用できます。このとき注意しないといけないのは、誰が・どのサービスを・何処まで触ってよいのかということです。AWSではサービスや設定を簡単にいじることができます。そうすると、不必要なお金がかかったり、サービスが正しく運用できなくなります。
このトラブルをあらかじめ防ぐためにIAMがあります。 それぞれの作業者や社員にIAMで権限を管理することで、AWSへのリソースやサービスへの接続を管理します。
Step 3:ギャップの特定#
書いた説明を見直すと、以下の3つのギャップが見つかりました。
| # | ギャップ | 具体的に何が足りない? |
|---|---|---|
| 1 | 「誰が」が浅い | 人間だけでなく、プログラム(EC2、Lambda)も権限管理の対象という視点が抜けている |
| 2 | 「どうやって」がない | ポリシー・ユーザー・グループ・ロールの使い分けが説明されていない |
| 3 | アナロジーがない | 12歳でも分かる比喩があると定着する |
ギャップ1への対応:「誰が」の範囲を広げる#
「作業者や社員」という表現では、人間しかイメージできません。実際にはEC2やLambdaといったAWSサービス自身も、他のAWSリソースにアクセスする際に権限が必要です。
修正内容
- Before:「それぞれの作業者や社員に」
- After:「ユーザーやサービス(EC2・Lambda)による」
ギャップ2への対応:4概念の追加#
IAMの「どうやって」を説明するため、4つの概念を整理しました。
最初に書いた定義
- IAMポリシー:IAMにおいて、操作や接続を認可するための仕組み
- IAMユーザー:IAMによって発行されたユーザーアカウント
- IAMグループ:IAMユーザーをグループ単位で管理するための仕組み
- IAMロール:各種AWSリソースに対して他のAWSリソースへの操作や接続を認可する仕組み
見直して気づいた問題
IAMロールの説明が「リソース間」に限定されていました。実際には人間がIAMロールを引き受ける(AssumeRole)こともあります。例えば、別のAWSアカウントに一時的にアクセスするケースです。
修正後の定義
- IAMポリシー:「何を許可/拒否するか」を定義したルール
- IAMユーザー:個人に紐づくアカウント
- IAMグループ:ユーザーをまとめて同じルールを適用
- IAMロール:人間やサービスに一時的に権限を与える仕組み
ギャップ3への対応:アナロジーの追加#
会社のオフィスビルに例えると、各概念がイメージしやすくなりました。
| IAMの概念 | オフィスビルで例えると |
|---|---|
| IAMポリシー | 「3階の会議室は入れるが、サーバールームは入れない」というルール |
| IAMユーザー | 社員証(個人を識別) |
| IAMグループ | 「営業部」「開発部」といった部署単位でルールをまとめて適用 |
| IAMロール | 清掃業者用の一時入館証(人ではなく役割に紐づく) |
追加の修正:IAMを使わないとどうなるか#
最初の説明では「不必要なお金がかかる」という例を挙げていましたが、これはIAMで防げる問題ではありませんでした。IAMは「誰が何をできるか」を制限するもので、「どのスペックを選ぶか」は制限できません。
修正内容
- Before:「要件以上スペック(オーバースペック)などを設定すると…」
- After:「退職者など想定していないユーザーがサービスなどへ接続したり、リソースを削除する…」
Step 4:完成版#
反復改善を経て、以下の説明が完成しました。
AWS IAMとは、ユーザーやサービス(EC2・Lambda)による「AWSのリソースやサービス」へのアクセスを管理する仕組みです。AWSとはAmazonが提供しているクラウドサービスの総称であり、コンピュータから便利なサービスを利用することが可能です。 AWSを利用する際の注意点として、「誰が・どのサービスを・何処まで」アクセスしてよいか制限する必要があります。 IAMによる管理を実施しない場合、退職者など想定していないユーザーがサービスなどへ接続したり、リソースを削除するような危険性があります。 このとき、IAMの用語として、「IAMポリシー」・「IAMユーザー」・「IAMグループ」・「IAMロール」があります。 AWSの環境を会社のビルに例えると、それぞれは下記に例えられます。
- IAMポリシー:「何を許可/拒否するか」を定義したルール
- IAMユーザー:個人に紐づくアカウント(社員証)
- IAMグループ:ユーザーをまとめて同じルールを適用(部署単位)
- IAMロール:人間やサービスに一時的に権限を与える仕組み(一時入館証)
IAMユーザー・グループ・ロールにIAMポリシーを付与することで、権限を管理します。 上記のようなトラブルをAWS IAMによって適切な権限を設定することで防ぐことが可能になり、適切なAWSの運用が可能になります。
Before / After 比較#
| # | ギャップ | Before | After |
|---|---|---|---|
| 1 | 「誰が」が浅い | 人間(作業者・社員)のみ | ユーザーやサービス(EC2・Lambda) |
| 2 | 「どうやって」がない | 説明なし | 4概念(ポリシー・ユーザー・グループ・ロール)を正確に説明 |
| 3 | アナロジーがない | なし | 会社のビル(社員証・部署・一時入館証)で例示 |
まとめ#
- ファインマンテクニックは「説明できない箇所 = 理解が曖昧な箇所」を特定するのに有効
- IAMの権限管理対象は人間だけでなく、EC2・Lambdaなどのサービスも含む
- IAMロールは「リソース間の権限付与」だけでなく「人間への一時的な権限付与」にも使う
- アナロジー(オフィスビルの例)を使うと、抽象的な概念が具体的になる
- 「IAMで防げる問題は何か」を正確に理解することが重要
参考#
- 『AWS運用入門 改訂第2版 押さえておきたいAWSの基本と運用ノウハウ』山﨑翔平・小倉大・峯侑資 著/SBクリエイティブ(2025年)
- IAM チュートリアル - AWS公式