IAM 最小限の特権について

AWS,IAM_Policy関連

IAM のベストプラクティス

  • IAM のベストプラクティスには、以下の事項があります。今回は、ドキュメントだけでは分かりづらい “最小限の特権"について説明します。
    • AWS アカウントのルートユーザー アクセスキーをロックする。
    • 個々の IAM ユーザーを作成する。
    • IAM ユーザーへのアクセス許可を割り当てるためにグループを使います。
    • 最小限の特権を認める。← 本日のテーマ
    • AWS 管理ポリシーを使用したアクセス許可の使用開始。
    • インラインポリシーではなくカスタマー管理ポリシーを使用する。
    • アクセスレベルを使用して、IAM アクセス許可を確認する。
    • ユーザーのために強度の高いパスワードポリシーを設定する。
    • MFA の有効化。
    • Amazon EC2 インスタンスで実行するアプリケーションに対し、ロールを使用する。
    • ロールを使用してアクセス許可を委任する。
    • アクセスキーを共有しない。
    • 認証情報を定期的にローテーションする。
    • 不要な認証情報の削除。
    • 追加セキュリティに対するポリシー条件を使用する。
    • AWS アカウントのアクティビティの監視。
  • その他の事項について詳細は、AWS Black Belt Online Seminar あるいは ユーザーガイドを参照ください。

 

IAM 最小限の特権について

概要

  • 先ず、IAM(Identity and Access Management)について復習します。IAMは、AWS のサービスやリソースへのアクセスを管理するための仕組みです。IAM の主要な機能はIAMユーザー, IAMロールです。IAMユーザーはマネージメントコンソールにログインしてリソースを管理するために必要です。IAMロールは、EC2, Lambdaのようなリソースにロールを割り当て、他のサービスにアクセスするための権限を付与することができます。

 

 

必要なタスクのみを許可したアクセス権限でポリシーを作る

  • IAMユーザー, IAMロールに権限を付与する場合、ベストプラクティスに従うと、最小限のアクセス権限から開始し、必要に応じて追加のアクセス権限を付与する方法が適切です。
  • 先ず、IAMユーザー, IAMロールのどちらにおいても、ユーザー, ロールが何をする必要があるかタスクを決定します。次に、それらタスクのみを許可するための、アクションとリソースに絞った権限のポリシーを作成します。この最小限のアクセス権限で作成したポリシーを、IAMユーザー, IAMロールに割り当てます。
  • 実際に使用しているIAM ユーザーやロールが最小限のアクセス権限かを評価することは簡単ではありません。この様な場合は、次に示すアクセスアドバイザーが役に立ちます。

 

アクセスアドバイザーを活用する

  • アクセスアドバイザーを使用して、IAM ユーザー、グループ、ロール、ポリシーの不要なアクセス許可を調査することができます。アクセスアドバイザーよって、各サービスの最終アクセス時間が把握できます。この情報を元に、最小権限となるようにポリシーを調整します。

 

 

FullAccessの管理ポリシーを使わない

  • IAMユーザー, IAMロールにAWSの管理ポリシーを割り当てる場合、AdministratorAccess、PowerUserAccessなど権限が強いポリシーは、確実に必要なユーザー, ロールにのみ使用します。もし、AdministratorAccess、PowerUserAccessなど権限が強いポリシーを使用したロールを割り当てたEC2 へ不正アクセスがあった場合に、AWSアカウント内の重要なデータへの不正アクセスやAWSリソースの不正利用などの被害に及ぶ可能性があります。

 

  • IAMユーザー, IAMロールにAWSの管理ポリシーを割り当てる場合はReadOnlyAccessを割り当てるか、あるいはデータの読み取りすら不要であればViewOnlyAccessを割り当てます。IAMユーザーが本番環境の運用で、データを直接参照する必要がなければ、ReadOnlyAccessすら不要になります。
    • FullAccess > ReadOnlyAccess > ViewOnlyAccess
  • IAMロールにはFullAccessではなくReadOnlyAccessのポリシーの使用が望ましいですが、運用上、FullAccessのポリシーが必要な場合は、ロールを割り当てたEC2などのリソースを Internet から直接アクセスできないサブネットに配置、あるいはセキュリティグループでInternet のAnyからアクセスできないようにアクセス制限するなどネットワーク構成の考慮が必要です。また、脆弱性を狙った不正アクセスを防ぐため、定期的なセキュリティパッチの適用も必要です。
  • 上記の様にEC2にFullAccessなど権限が強いロールが割り当たっている場合は、通常よりセキュリティ意識を高める必要がある点に注意ください。

 

参考資料