はじめに

※本エントリーは、以下ブログの補足記事です。

  • AWSマネジメントコンソールログイン時のアカウントロック実現方法#1

https://iret.media/94747

上記ブログで、AWS Directory Serviceによるアカウントロック機能の実装について、考察しました。

認証系の要件において、アカウントロックの他に、パスワード要件およびMFA等も求められる場合があります。特に、PCI DSS要件では、それらすべてを同時に求められます。

今回は、AWSマネジメントコンソールログイン時に、アカウントロックとパスワードポリシーおよびMFA要件を同時に満たす場合の実現方法について考えます。

前提

以下の要件を同時に実現させる方法について考えます。

  • アカウントロック機能
    • AWSコンソールログイン時の連続失敗時におけるアカウントロック
  • パスワードポリシー要件
    • (a)初回ログイン時にパスワードの変更を強制する。(IAMポリシー)
    • (b)12文字以上であること。(IAMアカウント設定)
    • (c)英大文字、英小文字、数字、記号のうち3種類以上を含めること。(IAMアカウント設定)
    • (d)過去4回までに使用したパスワードを使用しないこと。(IAMアカウント設定)
    • (e)パスワードの有効期限を90日とする。(IAMアカウント設定)
  • その他要件
    • (f)マネジメントコンソールログイン時に、特定のグローバルIPアドレス以外からのアクセスを許可させない
    • (g)MFAデバイスの有効化

上記を同時に満たしたい場合の実現方法について検討します。

アカウントロック機能

前述のとおり、AWS Directory Serviceによるアカウントロック機能を実装し、概要については以下の記事でご紹介しています。

  • AWSマネジメントコンソールログイン時のアカウントロック実現方法#1

https://iret.media/94747

パスワードポリシー要件

  • (a)-(e)については、 IAMではなく、AWS Managed Microsoft AD側で提供されているポリシーを適用させます。

https://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/supportedpolicysettings.html

パスワードポリシーのプロパティ

その他要件

  • (f)については、IAMポリシーを適用させます。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html

AWS: 送信元 IP に基づいて AWS へのアクセスを拒否する

接続元IPアドレスに基づいて Microsoft AD ドメインユーザーのログイン自体を禁止することはできません。

ただ、ログイン後のマネジメントコンソールでの操作の際に 、IP アドレスの制限を行うことはできます。

具体的な方法としては、以下の通りです。

まず、IAMロールのポリシーに、ドキュメントのような IPアドレスによる制限を追加し、IAMロールの作成を行います。

その後、上記で作成したIAMロールを、Directory Service の “コンソールアクセスの委任”で設定することで、 AWSサービスに対するアクセス権限を、ディレクトリのユーザーおよびグループに付与させます

https://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/ms_ad_manage_roles.html

  • (f)については、AD(AWS Managed Microsoft AD)側でのMFAを有効にすることで実現させます。

https://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/ms_ad_mfa.html

こちらについては、別途RADIUSサーバーを用意する必要があります。

まとめ

PCI DSSのようにセキュリティ要件が高く、今回の記事で取り上げた要件を全て満たす場合には、それなりの作り込みとサービスの組み合わせが必要です。

特に、MFAを有効化させたい場合は、AWSサービスだけでは完結させることができず、別途RADIUSサーバーを用意する必要があり、管理コストも必要になりそうです。

必要となるサービスの組み合わせが複雑になることから、識別、認証、認可をそれぞれAWSのどの要素で実現させるかをしっかり検討する必要があります。

今回のエントリーは、実現案のご紹介までとなります。

次回のエントリーにて、実際に上記方法にて構築してみたいと思います。

ではまた!