(AWS Identity and Access Management)
・・・AWSリソースへのアクセスを管理するサービス
・サービスのジャンル:セキュリティ・アイデンティティ管理
・特徴:
- ユーザーがアクセスできるAWSリソースを、アクセス許可(ポリシー)で管理する
- IAMロールで、AWSサービスが他のAWSリソースへアクセスできる権限を管理する
- IAMユーザーの認証情報を共有せず、個別のIAMユーザーを作成できる
- 追加料金なしで利用できる
・使用用途:
- 開発者・チームごとにAWSリソースへのアクセス権限を細かく分ける
- EC2などのAWSリソースに、他のAWSリソースへのアクセス権限を一時的に付与する
- 外部IDプロバイダーと連携し、既存IDでAWSにアクセスできるようにする
・IAMユーザー:AWSとやり取りする「人」または「アプリケーション」を表すエンティティ
- 各ユーザーは一意の名前と認証情報(パスワード、アクセスキー)を持つ
・グループ:IAMユーザーの集まり
- ポリシー適用で全ユーザーに一括権限付与できる
- 1ユーザーは最大10グループに所属可
- グループの中にグループ/ロールは所属不可
・ロール:特定の権限を持つIAMアイデンティティ
- 特定の人に紐づかず、必要時に誰か(またはAWSサービス)が一時的に「引き受ける(assume)」
・ポリシー:JSON形式のドキュメント
- アイデンティティ(ユーザー・グループ・ロール)やAWSリソースにアタッチしてアクセス権限を定義
ポリシーの種類
| 種類 | 概要 |
|---|---|
| アイデンティティベースのポリシー(IAMポリシー) | IAMユーザー・グループ・ロールにアタッチ |
| リソースベースのポリシー | S3バケットポリシー等、AWSリソース側にアタッチ |
認可の基本ルール(評価ロジック)
- デフォルトでは、すべてのリクエストが拒否される(ルートユーザーによるリクエストは基本的に常に許可)
- アクセス許可ポリシーに明示的な許可があれば、このデフォルトが上書きされる
- SCP・RCP・アクセス許可の境界・セッションポリシーがある場合、それらすべてで許可されている必要がある
- ポリシーの中に明示的な拒否が1つでもあれば、他の許可より優先されて拒否される(以前まとめた内容と同じ)
認証方法の種類
- ルートユーザー:アカウント作成時のメールアドレス+パスワード
- フェデレーティッドプリンシパル:外部IDプロバイダーが認証し、AWSへ認証情報を渡す
- IAM アイデンティティセンターディレクトリのユーザー:センターのデフォルトディレクトリで直接作成されたユーザー
- IAMユーザー:アカウントID/エイリアス+ユーザー名+パスワード、またはアクセスキー
サービスコスト
- IAM自体は無料
- 「IAM Access Analyzer」は、無料の機能と有料の機能が混在