AWS SSOのID基盤として、別アカウント・別リージョンのIaaS Active Directoryを使う

こんにちは、ひろかずです。

AWS環境のインスタンスにActive Directoryを構成している環境は、よくあると思います。

AWS SSOを構成しようとしたとき、別アカウント・別リージョンのActive Directoryを、AWS SSOのID基盤として利用したくなる需要がありそうなので、一筆書きます。

  • AWS SSOは、2019年1月25日現在Virginiaリージョンのみ利用可能であり、かつOrganizationのマスターアカウントに構成する必要があります。

ざっくり構成

前提条件

  • Organizationを構成しており、マスターアカウント、メンバーアカウント双方の構成を変更する権限を有していること。
  • Active Directoryサーバは、メンバーアカウントのVirginia以外のリージョンで構成済みであること

参考ドキュメント

工程

  1. AD Connector配置用のサブネットを構成する
  2. VPC間をVPC Peeingで接続する
  3. Active Directoryサーバーに、AD Connector接続用の権限委譲設定を行う
  4. AD Connectorを構成する
  5. AWS SSOを構成する
  6. 動作確認

1. AD Connector配置用のサブネットを構成する

マスターアカウントのVirginiaリージョンに、VPCを作成し、以下のようなサブネットを構成します。

  • 詳細な手順は省略します
  • デフォルトVPCは使用しません

2. VPC間をVPC Peeingで接続する

 

マスターアカウント側で、ピア接続の申請

AWSコンソールのVPC管理画面のナビゲーションペインにて[ピアリング接続]を選択して、[ピア接続の作成]を選択

ネームタグに識別可能な名前を設定し、1で作成したサブネットが所属しているVPCを選択

また、接続先VPC設定として、以下を行う。

  • メンバーアカウントのAWSアカウントIDを入力
  • Active Directoryサーバが配置されているリージョンを指定
  • Active Directoryサーバが配置されているVPCを指定

メンバーアカウント側で、ピア申請の承認

AWSコンソールのVPC管理画面のナビゲーションペインにて[ピアリング接続]を選択して、リクエストされたピア接続を選択し、[アクション] > [リクエストの承認]を選択

PeeringしたVPCのルーティング設定

マスターアカウント側VPCのルーティングテーブル

以下のように設定する

メンバーアカウント側VPCのルーティングテーブル

以下のように設定する

3. Active Directoryサーバーに、AD Connector接続用の設定を行う

 

AD Connector接続用のセキュリティ グループを作成し、Active Directoryサーバーにアタッチする

プロトコル/ポート

  • UDP/53
  • UDP/88
  • UDP/123
  • UDP/138
  • UDP/389
  • UDP/445
  • TCP/88
  • TCP/53
  • TCP/135
  • TCP/389
  • TCP/445
  • TCP/3268
  • TCP/9389

ソースIPは、すべて 10.9.0.0/16 とする

Active Directoryサーバーに、AD Connector接続用の制御委任設定を行う

Active Directoryサーバにリモートデスクトップでログインし、[Active Directoryユーザーとコンピュータ]を開く

[Users]配下に、グループ[Connectors]を作成

ドメインのトップを右クリックし、[制御の委任]を選択

[次へ]を選択

[追加]を選択

選択するオブジェクト名として、先程作成したグループ[Connectors]を入力し、[名前の確認]を選択して、[OK]を選択

グループ[Connectors]が登録されていることを確認して、[次へ]を選択

[委任するカスタムタスクを作成する]を選択して、[次へ]を選択

[フォルダー内の次のオブジェクトのみ]を選択して、以下オブジェクトを選択

  • [ユーザーオブジェクト]
  • [コンピュータオブジェクト]

また、以下チェックボックスを選択して、[次へ]を選択

  • 選択されたオブジェクトをこのフォルダーに作成する
  • 選択されたオブジェクトをこのフォルダーから削除する

以下のアクセス許可の表示を選択

  • [全般]
  • [プロパティ固有]

以下アクセス許可を選択して、[次へ]を選択

  • [読み取り]
  • [書き込み]
  • [すべてのプロパティの書き込み] (自動的に選択される)

[完了]を選択

ユーザー[connector]を作成し、(強力な)パスワードを設定し、グループ[Connectors]に参加

4. AD Connectorを構成する

マスターアカウントのAWSコンソールから、Virginiaリージョンを選択し、Directory Serviceの管理画面を開く

  • [ディレクトリのセットアップ]を選択

[AD Connector]を選択

[スモール]を選択して、[次へ]を選択

先にAD Connector用に作成しておいたVPCとサブネットを選択して、[次へ]を選択

Active Directoryのドメイン情報と、AD Connector接続用ユーザー情報を登録して、[次へ]を選択

確認画面で[作成]を選択し、ディレクトリ一覧画面にて、ステータスがアクティブになることを確認

5. AWS SSOを構成する

Organizationの機能を全て有効にする

マスターアカウントのAWSコンソールにログインし、Organizationの管理画面で[管理]タブを選択

  • すべてのAWSサービスについて、ステータスが[有効]になるよう、[アクセスの有効化]を選択すること

AWS SSOの有効化

マスターアカウントのAWSコンソールから、Virginiaリージョンを選択し、AWS SSOの管理画面を開く

  • [AWS SSOを有効にする]を選択

[ディレクトリの管理]を選択

[ディレクトリの変更]を選択

[Microsoft ADディレクトリ]を選択し、先程作成したAD Connector(fnifni.net)を選択

[COMFIRM]と入力して、[次へ]を選択

SSOさせるAWSアカウントを選択して、[ユーザーの割り当て]を選択

  • 今回は、Active Directoryサーバーを配置しているAWSアカウント(fnifni21)を選択します

今回は、Active DirectoryのAuthというグループに所属しているユーザーにSSO権限を割り当てます。

  • 検索窓にauthと入力して、[接続されたディレクトリを検索]を選択
  • 見つかったグループを選択して、[次のステップ: アクセス権限セット]を選択

[アクセス権限セットを作成]を選択

[既存の職務機能ポリシーを使用]または[カスタムアクセス権限セット]を選択して、職務機能ポリシーを選択して、[作成]を選択

  • 今回は[既存の職務機能ポリシーを使用]を選択します。
  • 今回は[AdministratorAccess]を選択します。
  • [完了]を選択

6. 動作確認

Active Directory ユーザーとコンピュータで、Authグループにユーザーを追加

ユーザーポータルURLを確認

ユーザーポータルURLにアクセスして、Active Directoryのauthグループに所属しているユーザーでログインする

接続先アカウントと権限から[Management console]または[Command line or programmatic access]を選択

  • 今回は、[Management console]を選択

Active Directoryサーバーの存在を確認することができました

感想的な何か

構成すること自体の難易度は高くありませんね。
渡す権限がAdministratorでは大きすぎるので、SCPである程度操作を制限することを検討するのが良いと思います。

今日はここまでです。
お疲れ様でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です