はじめに
AWS CLF(Cloud Practitioner)試験に向けた勉強記録 #3 です。
AWSを触り始めて最初に出てくるのが IAM(超重要)。
用語が多くて混乱したので、一次情報と技術ブログを元に
自分なりの理解を整理してアウトプットします。
同じように「IAMよくわからん…」という人の助けになれば嬉しいです。
IAM とは何か?
IAM は AWS Identity and Access Management の略。
直訳すると 「素性(Identity)とアクセス(Access)の管理」。
ざっくり言うと、
AWSアカウント内で
誰が(Identity)
何に(Resource)
どこまで(Permission)
アクセスできるかを管理する仕組み
公式ドキュメントでは以下のように説明されています。
IAM は、AWS アカウントの認証と認可を制御するために必要なインフラストラクチャ
ここで 認証 と 認可 という言葉が出てきます。
認証(Authentication)と認可(Authorization)の違い
似ている言葉ですが、意味は明確に違います。
認証(Authentication)
- 「あなたは誰ですか?」を確認する
- ID / パスワード / アクセスキー / MFA など
- AWS にログインできるかどうか
認可(Authorization)
- 「あなたは何をしていいですか?」を決める
- EC2を作っていい?
- S3を削除していい?
- どの範囲まで操作できる?
整理すると👇
| 項目 | 内容 |
|---|---|
| 認証 | 自分が「何者か」を証明 |
| 認可 | 自分が「何ができるか」を決定 |
MFA(多要素認証)も 認証 側の話。
ルートユーザーについて
AWS アカウント作成時に最初から存在するのが
ルートユーザー(Root User)。
- AWS アカウント内の すべての権限 を持つ
- 削除不可
- 普段使いは 非推奨
イメージとしては
絶対的なマスター権限。
オリマーとピクミンの関係みたいなもの
→ オリマー(ルートユーザー)は全部できる
実運用では、
- ルートユーザーは初期設定・緊急時のみ使用
- 普段は IAM ユーザーやロールを使う
IAM によるアクセス管理の流れ(ざっくり)
IAM で設定されたユーザーやロールは、以下の流れでアクセス可否が判断されます。
-
認証
- サインイン情報が正しいか
- 信頼されたプリンシパルか
-
認可
- どのポリシーが適用されているか
- 明示的な拒否(Deny)がないか
- 許可された操作かどうか
最初は難しく感じましたが、
「許された人だけが、許された操作だけできる」
という理解でOKそう。
IAM User / Role / Policy をマイクラで考えてみる
IAM の基本はこの3つ。
Policy(ポリシー)
できること・できないことのルール
マイクラで言うと:
- 空を飛べる
- ブロックを壊せる
- 移動できる
などの 能力ルール。
User(ユーザー)
人(または固定的なアプリ)
- ユーザーにポリシーを紐づける
- 「この人はここまでできる」を決める
マイクラで言うと:
- このユーザーはブロック壊せない
- このユーザーは自動回復できる
みたいなイメージ。
Role(ロール)
役割(権限のまとまり)
User より対象が広い。
マイクラで例えると:
- ワールドに参加した人全員に付く効果
- 敵キャラ全体に付与される能力
AWS では、
- EC2
- Lambda
- 他の AWS アカウント
など 人以外の主体 にも権限を付与できる。
User は「主語が人」
Role は「主語がサービスや仕組み」
という理解がしっくりきた。
管理ポリシーとインラインポリシー
ポリシーの付け方にも種類がある。
管理ポリシー(Managed Policy)
- 複数のユーザー / ロールに使い回せる
- 1対多
- 実務でよく使う
👉 権限セットをまとめて配るイメージ。
インラインポリシー(Inline Policy)
- 特定のユーザー / ロール専用
- 使い回し不可
初心者のうちは
管理ポリシーを覚えておけば十分 という印象。
IAM は無料で使える
IAM 自体は 料金がかからない。
- ハンズオン
- 検証
- お試し
が気軽にできるのも良い点。
まとめ
- IAM は AWS の認証・認可を管理する超重要サービス
- 認証=誰か / 認可=何ができるか
- User / Role / Policy の関係理解が第一歩
- 実務では ロール + 管理ポリシー が頻出
- ルートユーザーは普段使わない
参考リンク
- AWS IAM 公式ドキュメント
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html - IAM Policy / User / Role 解説(クラスメソッド)
https://dev.classmethod.jp/articles/iam-policy-user-role-for-primary-of-aws/ - 認証と認可の違い
https://dev.classmethod.jp/articles/authentication_and_authorization/ - 管理ポリシーとインラインポリシー
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies_managed-vs-inline.html
次回学習予定
次回は AWSの主要サービス(コンピューティング分野) について整理する予定です。