はじめに
※本エントリーは、以下ブログの補足記事です。
- AWSマネジメントコンソールログイン時のアカウントロック実現方法#1
上記ブログで、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
パスワードポリシー要件
- (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のどの要素で実現させるかをしっかり検討する必要があります。
今回のエントリーは、実現案のご紹介までとなります。
次回のエントリーにて、実際に上記方法にて構築してみたいと思います。
ではまた!