10分でできる最低限のIAM設定見直し

30分から1時間のような短時間でAWS環境をレビューさせていただくことがあります。IAMユーザーのレビューについて、私がまず確認する内容をシェアします。
2020.08.30

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

30分から1時間のような短時間でAWS環境をレビューさせていただくことがあります。IAMユーザーのレビューについて、私がまず確認する内容をシェアします。

最後のアクティビティから、使われていないIAMユーザーを洗い出す

IAMコンソールからユーザーを開くと、IAMユーザーの一覧が表示されます。最後のアクティビティに注目し、使われていない可能性のあるIAMユーザーの候補を洗い出しします。

IAMユーザーを選択し、認証情報タブを開きます。サインイン認証情報、アクセスキー、AWS CodeCommitの認証情報、Amazon Keyspacesの認証情報があります。サインイン認証情報とは、AWSコンソールへのログイン情報です。アクセスキーはAWS CLIやSDKのようなプログラムでAWSを操作する際に利用します。

コンソールに最後にログインした日付を確認する

ユーザーの一覧画面に戻り、「コンソールへのアクセス」にチェックが入っているユーザーは、サインイン認証情報が発行されています。画像の2行目に注目するとこのユーザーはサインイン認証情報があるものの、実際にコンソールにログインしたことはないようです。

IAMユーザーの認証情報タブを開き、コンソールのパスワードの管理からパスワードを無効化します。

AWSコンソールにログインする必要があるユーザーでMFAが有効でない場合は、MFAを設定します。Windowsの場合はWinAuth、スマートフォンの場合はGoogle AuthenticatorやAuthyがよく使われているかと思います。1Passwordのようなパスワード管理ツールで設定する方法もあります。

1Password で2要素認証のワンタイムパスワードを管理する

アクセスキーの使用状況を確認する

ユーザーの一覧画面に戻り、「最後に使用されたアクセスキー」に注目します。項目が表示されない場合は、歯車マークを選びます。

IAMユーザーの認証情報タブを開き、アクセスキーの発行状況を確認します。以下のユーザーは2つのキーをもっており、1つのキーは使われたことがありません。キーはバツボタンから削除できます。無効化しキーは残しておくこともできます。無効化されたキーはまた有効化できます。

IAMの認証情報レポートを活用する

ユーザー数が多いと、AWSコンソールからの確認が大変かと思います。IAMの認証情報レポートをダウンロードし、IAMを棚卸しします。詳しくはユーザーガイドをご覧ください。

さいごに

IAMユーザーのレビューについて、ご紹介しました。”最後のアクティビティ”に注目しIAMユーザーが使われているのか確認します。使われてい場合は削除を検討します。また、コンソールへの認証情報とアクセスキーに分けて棚卸しします。キーを発行しているが、コンソールログインしかしないといったケースがよくあります。

IAMユーザーを発行するとこのような認証情報の棚卸しが必要になるので、複数のAWSアカウントを使う場合はスイッチロールやSSOを活用すると良いと思います。

チェックを自動化するには、AWS Security HubAWS Configルールを利用します。