こんにちは、ひろかずです。
AWS環境のインスタンスにActive Directoryを構成している環境は、よくあると思います。
AWS SSOを構成しようとしたとき、別アカウント・別リージョンのActive Directoryを、AWS SSOのID基盤として利用したくなる需要がありそうなので、一筆書きます。
- AWS SSOは、2019年1月25日現在Virginiaリージョンのみ利用可能であり、かつOrganizationのマスターアカウントに構成する必要があります。
ざっくり構成
前提条件
- Organizationを構成しており、マスターアカウント、メンバーアカウント双方の構成を変更する権限を有していること。
- Active Directoryサーバは、メンバーアカウントのVirginia以外のリージョンで構成済みであること
参考ドキュメント
- AWS Single Sign-On | User Guide
- Enabling All Features in Your Organization
- AD Connector Prerequisites
工程
- AD Connector配置用のサブネットを構成する
- VPC間をVPC Peeingで接続する
- Active Directoryサーバーに、AD Connector接続用の権限委譲設定を行う
- AD Connectorを構成する
- AWS SSOを構成する
- 動作確認
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である程度操作を制限することを検討するのが良いと思います。
今日はここまでです。
お疲れ様でした。