Active Directory 認証している AWS Client VPN でクライアント自身にパスワードのリセットをさせたい

AWS Client VPN では、 AWS Directory Service と統合しても各クライアントがパスワードをリセットできるような仕組みは用意されていません。他のサービスとの統合で回避してみます。

コンバンハ、千葉(幸)です。

早速ですが、今回想定しているのは以下のようなケースです。

  • Active Directory 認証の AWS Client VPN を使用している
    • 認証先は Managed Microsoft AD もしくは Simple AD
    • AD Connector の場合は対象外です。。
  • ドメインユーザーのパスワードリセットが可能な管理者の作業をなるべく減らしたい
  • Client VPN のクライアント自身にパスワードリセットをさせたい

Clien VPN 接続を試みる際にできるのはユーザー名とパスワードを入力するのみで、変更は行えません。パスワードを忘れてしまった……といったケースでは少し困ったことになります。

ドメイン管理ツールや RSAT でドメインに接続してリセットしたり、 AWS Directory Servcie の API でパスワードリセットをかけたりすることで解消はできますが、全員にその操作を許可するわけにはいかないので、特定の管理者が操作を代替することになります。

なるべくそういった管理者の作業を減らしたい、というのが今回想定するケースです。

目次

先にまとめ

  • ディレクトリで AWS サービスとの統合を有効化してパスワードのリセット機能を使ってもらう
  • 今回は「マネジメントコンソールへのアクセス」を有効化する
  • 「コンソールアクセスの委任」を構成する必要はない
    • ユーザーがコンソールにサインインする際に引き受ける IAM ロールは未設定でよい
  • ドメインユーザーにメールアドレスが設定されている必要がある

今回想定するような構成

Simple AD で Active Directory 認証を行う Client VPN を含む構成のセットアップについては、以下のエントリで取り上げています。

ディレクトリ(ドメイン)ユーザーBatchiの情報を使用して、クライアント VPN に接続可能な状態であるとします。

ここで、Batchiのパスワードを、クライアントからの操作で変更可能なようにセットアップしていきます。

ディレクトリの AWS マネジメントコンソールとの統合を有効化する

構成済みの Simple AD ディレクトリの詳細を確認していきます。現時点で有効になっている連携サービスは以下の通りです。

AWS Client VPN が有効になっているのはもちろんですが、ディレクトリユーザーの追加時に WorkSpaces と連携させたため、そちらと、ついでに WorkDocs も有効になっています。(この時点で WorkDocs の URL からでもパスワードのリセットはできるのですが、有効でない環境も想定して、先に進みます。)

AWS Management Console はデフォルトでは無効になっています。

上記の画面の少し下に マネジメントコンソールとの統合を有効化できる項目があるため、ここから [ 有効 ] を押下します。

先ほどの画面で、AWS Management Console が有効になったことが確認できます。(ここのステータスが変わるまで少しラグがある場合があるので、必要に応じて更新してください。)

(参考)コンソールアクセスの委任

今回はあくまでパスワードの変更をさせたいだけなので、実際にマネジメントコンソールにサインインさせるようなことは考慮しません。

もしサインインさせたい場合には、「コンソールアクセスの委任」を設定する必要があります。参考までに触れておきます。

ここでは、信頼されたエンティティとしてds.amazonaws.comが設定された IAM ロールが表示されます。ロールをディレクトリ内のグループやユーザーと関連付けることによって、そのロールを引き受ける形でコンソールにサインインできるようになります。

関連付ける際の操作イメージです。

関連付けたいユーザー/グループを検索し、追加を行います。

追加できました。

追加されたユーザーはこのように確認できます。

ここの例では、Batchiユーザーがコンソールにサインインする際には、今回関連付けたロールDS-Roleとしてアクセスすることになります。

繰り返しになりますが、パスワードのリセットを行いたいだけであればこういった関連付けは必要ありません。

コンソール URL からのパスワードのリセット

ディレクトリの設定が終わったため早速パスワードのリセットを試していきます。

先ほど確認した URL にアクセスします。

コンソールへのログイン画面が表示されるため、「パスワードを忘れた場合」を押下します。

ユーザー名が合っていることを確認した上で、画像に表示されている文字を入力し、「パスワードの回復」を押下します。

ドメインユーザーに設定してあるメールアドレス宛に、Eメールが送信されます。

[ AWS Password Reset Request ] という件名でメールが届きます。

Dear Customer,

We have received a request to reset a user account password that is associated with this email address. If you submitted this request, please visit the following URL to reset your password:

Reset Password

This link expires one hour after your original request.

If you did not request to reset this password, you can safely ignore this message. If you have any questions, please contact your Administrator.

Thanks,
The AWS Team

本文中の [ Reset Password ] を押下します。

パスワードのリセット画面に遷移するため、新しいパスワードを入力し、 [ パスワードのリセット ] を押下します。

正常にパスワードがリセットされたことを確認します。

ここまでの操作が完了すれば、この画面は閉じて問題ありません。

なお、変更後にも [ Password Change Confirmation ] という件名でメールが届きます。

Dear User,

The password of your account has been successfully changed.

If you did not request this password change, please contact your Administrator immediately.

Thanks,
The AWS Directory Service Team

変更したパスワードによる接続確認

先ほどの操作で変更したパスワードで、 AWS Client VPN エンドポイントに接続できるかを確認します。

VPN クライアントで先ほど変更したパスワードを入力して接続を試みます。

問題なく接続できました!

AWS Client VPN の認証先のドメインユーザーのパスワードを、管理者が介在することなくクライアント側の操作だけで変更できることを確認しました。

終わりに

AWS Clinet VPN において、クライアント自身にパスワードを変更させたい。というお話でした。

今回はマネジメントコンソールとの統合を行いましたが、ディレクトリと統合できる他のサービスでも同じようにパスワードリセット機能がありますので、そちらで代替しても問題ありません。パスワードリセットのために新たに統合したい、ということであれば、今回のケースが(作業的にも与える権限的にも)一番シンプルに済むかと思います。

AWS Directory Service は ActiveDirectory(あるいはそれ相当のディレクトリサービス) をマネージドで提供してくれるだけでなく、いろいろな AWS サービスと連携できるところが面白いですね。

以上、千葉(幸)がお送りしました。