#AWS Identity and Access Management(IAM)とは
・AWSリソースをセキュアに操作するために、認証・許可の仕組みを提供するマネージドサービス
・AWS利索子に対して別々のアクセス権限をユーザ毎に付与できる
・多要素認証によるセキュリティ強化
・一時的な認証トークンを用いた権限の委任
・AWS IAM自体の利用は無料
#AWSアカウントのルートユーザ
・AWSの全てのサービスとリソース全てに完全なアクセス権限を持つユーザ
・極力ルートユーザを使わないようすることが大切!
#アクセスキー
・AWSアカウントのルートユーザまたはIAMユーザの長期的な認証情報
・手動で取り消すまで有効
・アクセスキーを用いてAWS CLi/AWS SDK等からリクエストに署名
・アクセスキーID/シークレットアクセスキーで構成される
#IAMユーザ
・AWSで作成するエンティティ
・名前と認証情報で構成される
・認証情報
(1)コンソールパスワード
(2)アクセスキー
#ユーザの強力なパスワードポリシーを設定する
・パスワードに要求される強度なパスワード管理のポリシーを設定可能
#アクセスキーを共有しない
複数の人がAWSリソースへのアクセス権限を共有したい場合でも、アクセスキーを共有しない。
#MFA(多要素認証)
パスワードやアクセスキーによる認証を追加して、セキュリティを強化する仕組み
・AWSアカウントのルートユーザや強い権限を持つIAMユーザにはMFAを有効化し、通常利用しない!!
#ポリシー
IAMアイデンティティやAWsリソースに関連づけることによってアクセス許可を定義することができるオブジェクト
###アイデンティティベースのポリシー
①管理ポリシー
・複数のユーザ、IAMグループ、IAMロールに関連付け可能(最大10個)
・再利用可能
・種類
(1)AWS管理ポリシー
(2)カスタム管理ポリシー
②インラインポリシー
・単一のIAMユーザ、IAMグループ、IAMロールに直接埋め込む
###AWS管理ポリシー
・AWSにより事前に定義された管理ポリシー、編集不可
・すぐにポリシー適用開始できる
###カスタマー管理ポリシー
・AWSアカウントで管理することができるカスタムポリシー
・AWS管理ポリシーで要件満たせない場合に使用
・再現性高く管理面で有利
・利点は全ての管理ポリシーを1箇所で確認できること
###インラインポリシー
・1つのIAMエンティティに直接埋め込まれるポリシー
・インラインポリシーの利用はできるだけ避ける・
#ポリシードキュメントの要素
Version:ポリシー言語のバージョン
Statement:アクセス許可する複数の要素を含むステートメントブロック
Effect:AllowまたはDeny
###Principal要素
・AWSリソースへのアクセスが許可/拒否されるIAMエンティティを指定する
・リソースベースポリシーで使用
・AWSアカウント、IAMユーザー、IAMロール、フェでレーティッドユーザー、引き受けたロールユーザーをARN形式で記述
###Action要素
・許可/拒否される特定のアクションを指定する
・AWSサービスで行うことができるタスクを記述する独自のアクションセットを記述
・形式:"Actiob":"<各サービスの名前空間>:<アクション名>"
例) "Action":"ec2:StartInstances"
###Resource要素
・ステートメントで取り扱う一連のオブジェクトを指定する
・AWSサービスが持つ一連のリソースセットをARN形式で記述
###Condition要素
・ポリシーが有効になるタイムングを指定
・Condition要素の記述はオプション
・形式:"Condition":{<条件演算子>:{<条件キー>:<条件値>}}
・条件演算子
(1)条件比較タイプ(文字列条件、数値条件、IPアドレス条件等)を指定
・条件キー
例)"Condition":{"IpAddress":{"aws:SourceIP":["192.0.2.0/24","203.0.113.0/24"]}}
###アクセス可否の決定ロジック
・暗黙的なDeny<明示的なAllow<明示的なDeny
・全てのアクセスはデフォルトで拒否(暗黙的なDeny)
#IAMグループ
・IAMユーザの集合
・IAMユーザーは複数のIAMグループに所属することができる(最大10)
・組またはジョブ機能に関連したIAMグループを作成し、IAMグループに対してアクセスIAMポリシーを関連付ける。
#IAMロール
・AWSサービスやアプリケーション等のエンティティに対してAWSリソースの操作権限を付与するための仕組み
・認証方法:一時的なセキュリティ認証情報利用
#一時的なセキュリティ認証情報
・有効期限付きのアクセスキーID/シークレットアクセスキー/セキュリティトークンで構成
・ユーザのリクエストによってAWS Security Token Service(STS)が動的に作成
#AWS Security Token Service(STS)
・一時的なセキュリティ認証情報を生成するサービス
(1)期限付きのアクセスキー/シークレットアクセスキー/セッショントークン
(2)トークンのタイプにより有効期限は様々
・発行した認証情報の期限変更は不可