🕌

IAMの基礎の調査

2022/10/23に公開

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のベストプラクティス
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practices.html

IAMグループとは

同一の役割を持つIAMユーザーをグループ化する機能

グループ単位で権限を付与可能
※IAM Userに直接権限を付与するより一般的


・管理者グループ
・開発者グループ

IAMユーザーは複数のグループに所属可能

IAMポリシーとは

AWSリソースへのアクセス権限を記述したもの
JSON形式で記述
ビジュアルエディタで選択式で作成することも可能
ポリシージェネレータから作成することも可能

ポリシーの種類
AWS管理ポリシー
→AWSによって用意されたポリシー
カスタマー管理ポリシー
→ユーザーが独自に作成したポリシー
インラインポリシー
→特定のユーザー・グループ専用のポリシー
→つかいまわせないので管理ポリシーの利用が推奨されている
詳しくは公式ドキュメント参照
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies_managed-vs-inline.html

IAMポリシーを構成する要素

Version

言語構文ルールの設定。2008-10-17と2012-10-17がある
記載しない場合のデフォルトは2008-10-17なので2012-10-17
を明記する

Statement

主に次の3要素からなる。その他の要素は公式ドキュメントを参照
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_elements.html

Action

許可 or 拒否するサービス
サービスごとに存在する。たとえばs3のAction一覧はこちら
詳細は公式ドキュメントを参照
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_elements_action.html

Effect

Statementの内容を許可する(Allow)か拒否する(Deny)のどちらか
同時に指定した場合、AllowよりもDenyの方が強い

Resource

対象となるリソース(アスタリスクはすべてのリソースが対象)
詳細は公式ドキュメントを参照
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_elements_resource.html

IAMロールとは

AWSリソースに権限を与える機能

EC2にs3のアクセス権限のついたIAMロールを設定
CodeBuildにリソース作成権限のついたIAMロールを設定

特定のIAMユーザーアカウントを
切り替えるときにも使用される
(スイッチロール)

Discussion