【AWS】IAMについて

IAMの概要

IAMとは

  • AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に管理するためのウェブサービスのこと
  • IAM を使用して、リソースを使用するために認証 (サインイン) され、許可された (アクセス許可を持つ) ユーザーを制御する
  • 個人、またはグループに対して権限を設定し、適切なサービスへとアクセス可能にする仕組み
  • 主要な要素として、以下の4つの要素がある
    • ユーザー
    • グループ
    • ポリシー
    • ロール

IAM ポリシー

  • ユーザー、グループ、ロールを作成するとき、アクセス許可を割り当てる際にはポリシーを作成し適用する
  • IAMポリシーはJSON形式で設定される。具体的な設定内容は以下の通り
    • Effect – Allow または Deny を使用してポリシーで付与または拒否するアクセス許可を指定
    • Action – ポリシーで許可または拒否するアクションのリスト
    • Resource – アクションが適用されるリソースのリストを指定
    • Condition – ポリシーでアクセス許可を付与する条件を指定

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 アカウントのアクティビティの監視