AWSアカウントのパスワードポリシー
IAMの機能を利用することで、AWSアカウントのパスワードポリシーを設定することができます。 デフォルトのパスワードポリシーは非常に緩いので、簡単に推測できるパスワードへの変更を防止し、セキュリティを強化してください。
パスワードポリシーの設定
パスワードポリシーは、IAMメニューの「アカウント設定」から行います。 パスワードポリシーから次の項目がチェックボックスで選択可能です。
パスワード長
「Minimum password length (パスワードの最小長)」のデフォルトは6となっていますので少し短めです。 文字種にもよりますが、最低パスワード長は8にしておくと十分な最低長と言えるでしょう。
文字種
「Require at least one uppercase letter(少なくとも 1 つの大文字が必要)」「Require at least one lowercase letter (少なくとも 1 つの小文字が必要 )」「Require at least one number(少なくとも 1 つの数字が必要)」「Require at least one non-alphanumeric character(少なくとも 1 つの英数字以外の文字が必要)」と4種類の設定がありますが、すべてのチェックを入れることをおすすめします。 文字種が限定されている場合はそれだけ推測されやすくなるからです。
パスワードの更新
パスワードの更新に関するポリシーは、運用設計の中で負担がない範囲で決めると良いでしょう。煩雑すぎるポリシーは「面倒」と感じてしまい、返ってセキュリティを下げる可能性もあります。例えば、1週間毎にパスワードを変更することを強制されたら、パスワードを推測しやすいようにローテーションする人が現れるでしょう。
「Allow users to change their own password(ユーザーにパスワードの変更を許可)」をチェックするとユーザがパスワードを変更できるようになります。パスワード長や文字種をあわせて設定しておかなければ、「password」といったパスワードを設定されてしまう可能性があるので注意してください。
「Enable password expiration(パスワードの失効を許可 )」をチェックすると、一定期間でパスワードの更新を強制することができます。ただし、あまり頻繁に更新を強制すると煩雑になりすぎるので半年や1年などを目安にすると良いかと思います。
「Prevent password reuse(パスワードの再利用を禁止 )」は、パスワードのローテーションを防ぎます。しかし、末尾に123などを付けてしまえば回避できてしまいますので、重要なのはパスワード長と利用文字であることは間違いありません(有りがちなパスワードにadmin2015のように西暦をつけるものがあります・・・)。
MFAによる二段階認証の併用
パスワードは推測されない文字数・文字種を使うことが大前提です。 しかし、長く使い続けると漏洩のリスクもあるため、一定期間での更新がパスワードポリシーに求められるケースが多いでしょう。 一方、IAMユーザはMFA(2段階認証)に対応しているので、ワンタイムパスワードを併用することもお勧めです。MFAを設定している場合には、万が一パスワードが漏洩した場合でも管理コンソールにログインされることはありません。詳細はAWSアカウントのセキュリティを強化する 〜 MFAの利用を確認ください。
なお、現時点では、MFAをパスワードポリシーとして強制することはできません。
AWSアカウントのパスワードポリシーテンプレート
最後に運用設計で使えるAWSアカウントのパスワードポリシーについてテンプレートを幾つか用意しておきます。ご自由にお使いください。
半年で更新が必要な パスワードポリシー
- パスワードは最低8文字とする
- パスワードに大文字・小文字・数字・記号が1文字づつ以上必要
- パスワードの有効期限は最長180日とする
- 過去5回までのパスワードは再利用できない
MFAを必須とするパスワードポリシー
- パスワードは最低8文字とする
- パスワードに大文字・小文字・数字・記号が1文字づつ以上必要
- パスワードに加えてMFA(2段階認証)を必須とする