【AWS】IAMについて
Contents
IAMの概要
IAMとは
- AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に管理するためのウェブサービスのこと
- IAM を使用して、リソースを使用するために認証 (サインイン) され、許可された (アクセス許可を持つ) ユーザーを制御する
- 個人、またはグループに対して権限を設定し、適切なサービスへとアクセス可能にする仕組み
- 主要な要素として、以下の4つの要素がある
- ユーザー
- グループ
- ポリシー
- ロール
IAM ポリシー
- ユーザー、グループ、ロールを作成するとき、アクセス許可を割り当てる際にはポリシーを作成し適用する
- IAMポリシーはJSON形式で設定される。具体的な設定内容は以下の通り
- Effect –
Allow
またはDeny
を使用してポリシーで付与または拒否するアクセス許可を指定
- Action – ポリシーで許可または拒否するアクションのリスト
- Resource – アクションが適用されるリソースのリストを指定
- Condition – ポリシーでアクセス許可を付与する条件を指定
- Effect –
IAMユーザー
- IAMポリシー内でAWSを利用できるユーザー
- AWS上の利用者はIAMユーザーという権限を付与されたエンティティとして設定される
IAMグループ
- IAM ユーザーの集合
- グループを使用すると、複数のユーザーに対してアクセス許可を指定でき、それらのユーザーのアクセス許可を容易に管理することができる
- 組織単位でAWSを使う際にはIAMグループを利用する
IAMロール
- 特定のアクセス権限を持ち、アカウントで作成できる IAM アイデンティティ
- AWSリソースに対して、アクセス権限をロールとして付与できる
ユーザーのアクティビティ記録
- AWS のロギング機能を使用すると、ユーザーがアカウントで実行したアクションや使用されたリソースを確認できる
- ロギング機能は次の AWS サービスで使用できる
- CloudFront – CloudFront が受信したユーザーリクエストを記録
- CloudTrail – AWS アカウントに代わって行われた AWS API コールおよび関連イベント
- CloudWatch – AWS クラウドリソースと AWS で実行されるアプリケーションをモニタリング
- Config – IAM ユーザー、グループ、ロール、およびポリシーを含む、AWS リソースの設定に関する詳細な履歴情報を提供
- S3 – Amazon S3 バケットへのアクセスリクエストを記録
IAM権限のベストプラクティス
- AWS アカウントのルートユーザー アクセスキーをロックする
- 個々の IAM ユーザーを作成する
- IAM ユーザーへのアクセス許可を割り当てるためにグループを使う
- 最小限の特権を認める
- AWS 管理ポリシーを使用したアクセス許可の使用開始
- ポリシーの検証
- インラインポリシーではなくカスタマー管理ポリシーを使用する
- アクセスレベルを使用して、IAM アクセス許可を確認する
- ユーザーのために強度の高いパスワードポリシーを設定する
- MFA の有効化
- Amazon EC2 インスタンスで実行するアプリケーションに対し、ロールを使用する
- ロールを使用してアクセス許可を委任する
- アクセスキーを共有しない
- 認証情報を定期的にローテーションする
- 不要な認証情報の削除
- 追加セキュリティに対するポリシー条件を使用する
- AWS アカウントのアクティビティの監視