【初心者】AWS Managed Microsoft AD を試してみる (AWSマネージメントコンソールでのログイン認証用途)


目的

  • AWS上でのAD連携の案件があったため、確認したことをまとめておく。

AWS Managed Microsoft AD とは(自分の理解)

  • AWS Managed Microsoft AD は、その名の通りMicrosoft ADがマネージドサービスとして提供されているもの。
  • デフォルトでの2重化、OSメンテナンス不要等のメリットがある一方、RDP接続ができないので、ドメインにユーザを追加するには、別途管理ツールをインストールしたクライアントを用意しないといけない等の不便な点もある。

やったこと

  • AWS Managed Microsoft AD を作成。ドメイン:mksamba-aws.com
  • EC2(Windows Server 2016)インスタンス上に通常のADを作成(オンプレADみなしとして)。ドメイン:mksamba-onpremises.com
  • AWS Managed Microsoft AD と 自作AD間で、信頼関係を設定。
  • AWSマネージメントコンソールへのログオン時の認証に、AWS Managed Microsoft ADを使用するように設定。
  • 自作AD上のユーザ(mksamba-onpremises.com\onpremises-user)で、AWSマネージメントコンソールにログインできることを確認。

構成図

手順

AWS Managed Microsoft ADの作成

  • マネージメントコンソールの「Directory Service」から、AWS Managed Microsoft ADを作成する。
    • ディレクトリタイプ: AWS Managed Microsoft AD
    • エディション: Standard Edition
    • ディレクトリの DNS 名: mksamba-aws.com
  • 以下の図のように、2つのAZにまたがって作成される。

  • AWS Managed Microsoft ADのドメインを管理する用のEC2インスタンス(Windows Server 2016)を作成
    • AWS Managed Microsoft ADは、ドメインにユーザを追加したりするUIがないので、別途ドメインの管理ツールを入れたWindows Server を用意する。
    • AMI: Windows_Server-2016-Japanese-Full-Base-2020.01.15 を使用しインスタンスを作成。
    • AWS Managed Microsoft AD で作成したmksamba-aws.comドメインに参加する。
      • DNS設定をAWS Managed Microsoft ADのIPに変更
      • mksamba-aws.comへ参加(mksamba-aws.com\adminユーザを使用)
    • ADの操作(admin以外のユーザIDの追加等)ができるように、管理ツールを入れる。
      • サーバーマネージャー - ローカルサーバ - 機能 - リモートサーバ管理ツール - 役割管理ツール - Active Directory 管理センター

  • 検証用ユーザの作成
    • 「Active Directory ユーザとコンピュータ」 を開いてAWS Managed Microsoft ADに接続し、テスト用のユーザ「mksamba-aws.com\aws-user」を作成しておく。なお「admin」は、AWS Managed Microsoft AD で管理用に最初から用意されているユーザ。

EC2インスタンス(Windows Server 2016)でADを作成

  • AMI: Windows_Server-2016-Japanese-Full-Base-2020.01.15 を使用しインスタンスを作成。
  • ADの設定
    • サーバマネージャー - ローカルサーバ - 役割 - Active Directory ドメインサービス を追加。
    • 自身のドメインを 「mksamba-onpremises.com」とする。
  • 検証用ユーザの追加
    • 「Active Directory ユーザとコンピュータ」 を開いて、ユーザ「mksamba-onpremises.com\onpremises-user」を作成しておく。

AWS Managed Microsoft AD(mksamba-aws.com) と自作のAD(mksamba-onpremises.com) の信頼関係の設定

  • 条件付きフォワーダーの設定(自作ADにて)
    • 「管理ツール - DNS」 にて、条件付きフォワーダーの設定を行う。mksamba-aws.com の名前解決を行う際のDNSサーバのIPアドレスとして、AWS Managed Microsoft AD のIPを設定する。

  • 信頼関係の設定(自作ADにて)
    • 「Active Directory ドメインと信頼関係」 を開いて、「mksamba-onpremises.com」のプロパティ」 - 「信頼」- 「新しい信頼」から、対向のドメイン(mksamba-aws.com)の情報を入力する。

  • 信頼関係の設定(マネージメントコンソールにて)
    • 作成済のAWS Managed Microsoft AD の「ネットワークとセキュリティ」のタブを開き、「信頼関係」- 「信頼関係の追加」を行う。
    • 対向のドメイン「mksamba-onpremises.com」及び条件付きフォワーダのIP(自営AD化したEC2インスタンスのIP)を指定する。
    • しばらくすると、信頼関係のステータスが「検証済み」となり、信頼関係が確立される。



マネージメントコンソールのログイン認証にADを使うための設定

  • 作成済のAWS Managed Microsoft AD の「アプリケーションアクセス管理」のタブを開き、「アプリケーションアクセスURL」を作成する。ADに登録したユーザを使ってマネージメントコンソールにログインする場合は、このURLにアクセスして、ユーザID/パスワードを入力してログインすることになる。

  • 「アプリケーションアクセス管理」のタブの「AWSマネジメントコンソール」を「有効」に変更する。変更後、「AWSアプリ及びサービス」にて、「AWS Management Console」のステータスが有効になっていることを確認する。

  • IAM Roleを作成する。Roleに設定する権限は、ADでの認証を使ってログインするユーザに与えたい権限を設定する。次に、Roleに対して、マネージメントコンソールとの連携を行うため、「信頼関係」タブにて、「信頼関係の編集」を開き、設定を追加する必要がある。設定する内容は以下のページを参照のこと。(AWS公式: Editing the Trust Relationship for an Existing Role)

  • 作成したIAM Role(mksamba-ec2role)が「アプリケーションアクセス管理」の「コンソールアクセスの委任」のところに表示されることを確認する。

  • Role(mksamba-ec2role)を選択し、ユーザを追加する。今回は、AWS Managed Microsoft AD上のユーザ「mksamba-aws.com\aws-user」と、信頼関係がある自作AD上のユーザ「mksamba-onpremises.com\onpremises-user」の2つのユーザを追加する。

動作確認

ログイン画面

  • 先のステップで作成した「アプリケーションアクセスURL」にアクセスする。AWS Managed Microsoft AD上のユーザ「mksamba-aws.com\aws-user」もしくは、信頼関係がある自作AD上のユーザ「mksamba-onpremises.com\onpremises-user」でログインしてみる。

ログイン後の画面

  • 「mksamba-onpremises.com\onpremises-user」でログインすると、「フェデレーションログイン」として表示される。

CloudTrail アクセスログ

  • CloudTrailで ConsoleLoginのログを確認する。以下のようにユーザ名部分(ドメイン名なし)で表示されている。

所感

  • 久しぶりにADの設定などを行い、AWSというよりはWindowsの知識が求められると感じた。幅広いジャンルの知識を得られるよういろんなサービスを触っていきたい。

参考記事