IAMの基礎の調査
IAMの基礎知識を身につけるために調査したことのメモ。
IAM(AWS Identity and Access Management)
・AWS利用に関する認証と認可を司るサービス
・セキュリティの根幹をなすサービスのひとつ
・AWSの不正利用による被害の原因の多くが
・IAMの不適切な運営から
例
- アクセスキーをGitHubのPublicなリポジトリにPush
- アクセスキーを機械翻訳サービスアプリに入力
以下4つの機能がある
・IAMユーザー
・IAMグループ
・IAMポリシー
・IAMロール
IAMユーザーとは
AWSとやりとりするためのユーザー
ルートユーザーと(アカウント発行直後のユーザー)とは異なる
日常的な作業はルートユーザーは使用せず、IAMユーザーを発行して行う
IAMユーザーは以下2種類ある
コンソールからアクセス(ID・パスワードを発行)
多要素認証を設定すること
共用のユーザーはつくらないこと(アクセス管理できなくなる)
プログラムからアクセス(アクセスキーを発行)
ローカルPCなどAWS外からAWSにアクセスするために必要
アクセスキー が外部に流出するとインシデントとなる
発行する場合は必要な権限のみ付与すること
(参考)IAMのベストプラクティス
IAMグループとは
同一の役割を持つIAMユーザーをグループ化する機能
グループ単位で権限を付与可能
※IAM Userに直接権限を付与するより一般的
例
・管理者グループ
・開発者グループ
IAMユーザーは複数のグループに所属可能
IAMポリシーとは
AWSリソースへのアクセス権限を記述したもの
JSON形式で記述
ビジュアルエディタで選択式で作成することも可能
ポリシージェネレータから作成することも可能
ポリシーの種類
AWS管理ポリシー
→AWSによって用意されたポリシー
カスタマー管理ポリシー
→ユーザーが独自に作成したポリシー
インラインポリシー
→特定のユーザー・グループ専用のポリシー
→つかいまわせないので管理ポリシーの利用が推奨されている
詳しくは公式ドキュメント参照
IAMポリシーを構成する要素
Version
言語構文ルールの設定。2008-10-17と2012-10-17がある
記載しない場合のデフォルトは2008-10-17なので2012-10-17
を明記する
Statement
主に次の3要素からなる。その他の要素は公式ドキュメントを参照
Action
許可 or 拒否するサービス
サービスごとに存在する。たとえばs3のAction一覧はこちら
詳細は公式ドキュメントを参照
Effect
Statementの内容を許可する(Allow)か拒否する(Deny)のどちらか
同時に指定した場合、AllowよりもDenyの方が強い
Resource
対象となるリソース(アスタリスクはすべてのリソースが対象)
詳細は公式ドキュメントを参照
IAMロールとは
AWSリソースに権限を与える機能
例
EC2にs3のアクセス権限のついたIAMロールを設定
CodeBuildにリソース作成権限のついたIAMロールを設定
特定のIAMユーザーアカウントを
切り替えるときにも使用される
(スイッチロール)
Discussion