メインコンテンツへスキップ

ファインマンテクニックでAWS IAMを整理してみた

·
インフラ AWS 実践 メモ
目次

今日学んだこと
#

ファインマンテクニックを使ってAWS IAMを整理しました。「12歳にも分かるように説明する」というプロセスを通じて、自分の理解が曖昧だった部分(IAMロールの対象、4概念の関係性)が明確になりました。

学習内容
#

ファインマンテクニックとは
#

ノーベル物理学賞を受賞したリチャード・ファインマンに由来する学習法です。「専門用語を使わずに説明できなければ、本当に理解していない」という考えに基づいています。

ステップ内容
Step 1学びたい概念を選ぶ
Step 212歳でも分かるように説明を書く
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 比較
#

#ギャップBeforeAfter
1「誰が」が浅い人間(作業者・社員)のみユーザーやサービス(EC2・Lambda)
2「どうやって」がない説明なし4概念(ポリシー・ユーザー・グループ・ロール)を正確に説明
3アナロジーがないなし会社のビル(社員証・部署・一時入館証)で例示

まとめ
#

  • ファインマンテクニックは「説明できない箇所 = 理解が曖昧な箇所」を特定するのに有効
  • IAMの権限管理対象は人間だけでなく、EC2・Lambdaなどのサービスも含む
  • IAMロールは「リソース間の権限付与」だけでなく「人間への一時的な権限付与」にも使う
  • アナロジー(オフィスビルの例)を使うと、抽象的な概念が具体的になる
  • 「IAMで防げる問題は何か」を正確に理解することが重要

参考
#

  • 『AWS運用入門 改訂第2版 押さえておきたいAWSの基本と運用ノウハウ』山﨑翔平・小倉大・峯侑資 著/SBクリエイティブ(2025年)
  • IAM チュートリアル - AWS公式