IAMユーザを棚卸して安全なAWSアカウント管理を!

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。菊池です。

はじめに

IAMユーザの管理、大丈夫ですか?

マネジメントコンソールやアプリケーション/AWS CLIでAWSを利用する上で、必須となるのがIAMユーザです。AWSのアカウント/環境を安全に管理していく上で、不要なユーザが残ったまま放置していたり、過剰な権限を付与しているとセキュリティリスクが増大します。安全にAWSを利用するため、必要十分なユーザ/権限のみが作成・付与されている状態を保つことが望ましいです。

定期的にIAMユーザを棚卸するときのポイントを紹介します。

IAMユーザの棚卸

今回は以下の3つの観点でチェックします。

  • 不要なIAMユーザの確認
  • 認証情報のローテーション
  • 不要な権限の削除

不要なIAMユーザの確認

使われていない、不要なIAMユーザが存在しないか確認しましょう。マネジメントコンソールでIAMユーザの一覧を表示すると、以下の項目が確認できます。

  • パスワード:マネジメントコンソールへのログインパスワードの有無(= マネジメントコンソールへのログイン可否)
  • 最終サインイン:最後にマネジメントコンソールへログインした日時
  • アクセスキー:アクセスキーの発行状況
  • 作成時刻:IAMユーザの作成時刻

まずは見覚えのないユーザ名がないか、テストで一時的に作成したり、すでに退職・異動して不要なユーザなどが残ったままとなっていないか確認しましょう。

次に、パスワードが発行されていて、最終サインインがない、または最終サインインから長期間が経過しているユーザをチェックしましょう。

iam-user-001

そのようなユーザについては本当にマネジメントコンソールへのログイン権限が必要か確認しましょう。もし、緊急時のログイン手段確保として必要なユーザであれば、そのユーザを使って正しくログインできるか一度テストしてみましょう。いざという時にパスワードがわからないのでは意味がありません。

認証情報のローテーション

次に認証情報のローテーションです。

IAMユーザに限らず、認証情報は定期的にローテーションすることが望ましいです。IAMユーザが利用する認証情報は、マネジメントコンソールのパスワードと、アプリケーションやCLIで利用するアクセスキーがあります。

マネジメントコンソールのパスワード更新

マネジメントコンソールのパスワード更新には2通りの方法があります。まずは個別にパスワードを変更する方法です。

対象のIAMユーザを選択し、以下のようにパスワードの管理を選びます。

iam-user-009

自動生成や任意のパスワードを入力して変更します。

iam-user-010

もう一つは、パスワードポリシーによる強制です。AWSアカウント単位でパスワードポリシーを設定することで、定期的な変更をユーザに強制することができます。

iam-user-008

アクセスキーの更新

次に、プログラムやAWS CLIで利用しているアクセスキーの更新です。

サインインの認証情報と同様に、IAMユーザの認証情報タブから確認・更新できます。

iam-user-002

まずは、コンソールログインと同様に「前回の使用日」を確認します。一度も使用されていない場合やあまりにも過去の場合には、本当にアクセスキーが必要か検討しましょう。

iam-user-003

アクセスキーは1ユーザにつき同時に2つまで発行可能です。これは、プログラムで常時利用している場合に、アクセスキー切り替えのための猶予期間を確保するためです。

アクセスキーのステータスは、以下のように状態を遷移します。

アクティブ ←→ 非アクティブ → 削除

非アクティブにしたアクセスキーは再度アクティブ化できますが、削除したアクセスキーは二度と利用できません。なので更新は以下のような手順で実施します。

  1. 2つ目のアクセスキーを発行
  2. プログラムのアクセスキーを差し替え
  3. [前回の使用日]が更新されなくなったことを確認
  4. 1つ目のアクセスキーを非アクティブ化
  5. プログラムの動作に問題がなければ1つ目のアクセスキーを削除

もし、3で使用日が更新されていたり、4で非アクティブ化したタイミングで認証に問題が発生した場合には、どこかに古いアクセスキーが残って利用されていますので再度確認しましょう。

アクセスキーを発行し、非アクティブ化します。

iam-user-004

最終的に、古いアクセスキーを削除します。

iam-user-006

不要な権限の削除

最後に、ユーザに過剰な権限が付与されていないかのチェックです。

IAMユーザまたはグループを選択し、アクセスアドバイザーのタブを選択します。

iam-user-011

そのユーザ/グループが持っている権限とサービスの利用実績が表示されます。ここでも、使用実績のない権限がないか確認しましょう。例えば、以下の図ではAmazonEC2FullAccessの権限を持っていますが一度も利用されていません。

iam-user-012

過剰に権限も付与してしまっている場合には、ユーザ/グループに付与するIAMポリシーの見直しをしましょう。

まとめ

IAMユーザの棚卸ということで、主に不要なユーザ/権限のチェックポイントや認証情報のローテーションを紹介しました。今回紹介した以外に、不正な使用が疑われる場合や変更の追跡にはCloudTrailやConfigの利用も効果的です。

定期的なチェック、見直しを実施して安全にAWSを利用していきましょう!