Micorsoft Office製品がインストールされたEC2に3人以上リモートデスクトップできる環境を作る

記事タイトルとURLをコピーする

今回はMicorsoft Office製品がインストールされたEC2に、3人以上リモートデスクトップして作業できる環境を作ります。

はじめに

CR課の喜多です。

2024年11月14日のアップデートにより、AWS License ManagerでMicrosoft Remote Desktop Services (RDS)の単体をユーザーベースのサブスクリプション形式で購入できるようになりました。
それに伴い、AWS License ManagerがマネージドなRemote Desktopライセンスサーバーを提供するようになったため、3人以上でのリモートデスクトップ接続が可能になりました。

アップデートの背景は、以下のブログが詳しいので、ぜひご一読ください。

blog.serverworks.co.jp

今回のアップデートにより、Micorsoft Office製品がインストールされたEC2に、3人以上リモートデスクトップして作業できる環境が構築できるようになりましたので、実際に構築していきます。

なお、以前弊社ブログにてMicrosoft OfficeがインストールされたAMIの構築をご紹介しておりますが、基本的な手順は同じです。Remote Desktopライセンスサーバーの構築と、Remote Desktop Session Host(RDSH)の設定が追加となります。

blog.serverworks.co.jp

今回作成した構成

事前準備

IAMインスタンスプロファイルの準備

以下の許可ポリシーがアタッチされたIAMインスタンスプロファイルを準備ください。

  • AmazonSSMManagedInstanceCore または AmazonSSMManagedEC2InstanceDefaultPolicy
  • AWSMarketplaceMeteringFullAccess

IAMロールから作成する際は、ユースケースに「EC2」を選択してください。

VPCなどの準備

EC2を起動するためのVPC、サブネットなどを準備ください。
新規で作成する場合は「VPCを作成」から「VPCなど」を選ぶと簡単ですね。
なお、Systems Managerと接続する必要がありますが、今回はVPC Endpointを作成して接続しております。
(構成図にあるLicense ManagerとのVPC Endpointは自動で作成されますので準備不要です)
また、VPC のDNS ホスト名、DNS 解決を有効化してください。

AWS Managed Microsoft ADの準備

AWS Managed Microsoft AD(MSAD)が必要です(オンプレミスのActive DirectoryをAD Connectorで取得するような構成はAWS上でライセンス管理ができないため使えません)。
事前にMSAD(Standard Edition、Enterprise Editionどちらでも問題ありません)の準備と、Office製品を利用するActive Directoryユーザーを準備してください。

Route 53 Resolver アウトバウンドエンドポイントの作成

前提条件に記載の通り、Route53 ResolverはManaged Microsoft ADのドメインへ名前解決ができないため、アウトバウンドエンドポイントを作成します。
(なお、事前準備で、VPC のDNS ホスト名、DNS 解決を有効化する、と記載しましたが、こちらの前提条件に明記されているためです。)

docs.aws.amazon.com

DNS resolution
The Active Directory that you've registered for user-based subscriptions must be accessible from any VPCs and subnets that you've configured in License Manager settings. To ensure that Active Directory nodes are accessible, configure DNS resolution as follows:

  • Configure DNS forwarding between the VPCs and Active Directories that are configured in your License Manager settings for user-based subscriptions.You can use Amazon Route 53 or another DNS service for DNS forwarding. For more information, see the blog post Integrating your Directory Service’s DNS resolution with Amazon Route 53 Resolvers.
  • Enable DNS hostnames and DNS resolution for your VPC. For more information, see View and update DNS attributes for your VPC.

以下の通り作成します。

セキュリティグループはMSADのDNSアドレスへのアウトバウンド通信許可をしたものをご用意ください

ターゲットIPアドレスはMSADのDNSアドレス

AWS Secrets Manager シークレットの登録

RDS license serverでユーザー管理を行うための管理ユーザーの認証情報を、事前にAWS Secrets Manager シークレットに登録する必要があります。
なお、この管理ユーザーは以下の権限が必要となります。

  • Active Directoryドメインの下にOUを作成できる
  • 作成されたOU内にインスタンスを追加できる
  • Active Directory ドメイン内のターミナルサーバーグループにコンピューターオブジェクトを追加できる
  • ライセンスサーバーレポートを作成するため、Active Directoryドメイン内のユーザーオブジェクトにターミナルサーバー ライセンスサーバーの読み取りと書き込みの制御を委任されている

また、シークレットの名称がlicense-manager-user-で始まる必要がある、キーの名称が指定されているなど、条件が細かいので、実際に登録される際には、一度以下リンクのAWSユーザーガイドを一読し、前提条件をご確認ください。
管理ユーザーの権限についてはMicrosoft Remote Desktop Servicesの項目に、シークレットの登録の前提条件についてはAdministrative credentials secretの項目に記載があります。

docs.aws.amazon.com

では、登録していきましょう。

新しいシークレットを保存する を選択

その他のシークレットのタイプ を選択し、管理ユーザーの情報を「username」「password」キーに入力

シークレットの名前は「license-manager-user-」で始まる必要があります

ローテーションの設定など、その他はデフォルトのままシークレットを作成

登録完了しました

AWS Marketplaceにてソフトウェアのサブスクライブ

購入者ガイドを参考に、AWSアカウントにサインインした状態で、AWS Marketplaceの以下の2製品をサブスクライブします。

なお、通常の最大2セッション迄の場合でもWin Remote Desktop Services SALが必要です。

View purchase optionsをクリック

License Agreementを確認し、Accept Teamsをクリック

2製品をサブスクライブするとAWS License Managerの製品ステータスがアクティブになります。

AWS License ManagerにてActive Directoryを登録

AWS License ManagerにてActive Directoryを登録します。
Active Directoryの登録の際、License Managerが自動でVPCエンドポイントを作成します。

docs.aws.amazon.com

To use Microsoft Office with user-based subscriptions, you must grant License Manager permission to update your VPC configuration. When you configure your VPC, License Manager creates VPC endpoints on your behalf. These endpoints are required for your resources to connect to activation servers and remain in compliance.

VPCエンドポイントに紐づけるセキュリティグループとして、インバウンドルールでTCPポート1688を許可する必要があります。

docs.aws.amazon.com

Security group for VPC endpoints
Identify or create a security group that permits inbound TCP port 1688 connectivity. When you configure your VPC settings, you'll specify this security group. For more information, see Work with security groups.
License Manager associates this security group to the VPC endpoints it creates on your behalf while configuring the VPC. For more information about VPC endpoints, see Access an AWS service using an interface VPC endpoint in the AWS PrivateLink Guide.

AWS License Manageの ユーザーベースのサブスクリプション>製品>Office Professional Plus の画面に移動し、ステップ 1: Active Directoryを登録 を行いましょう。

Active Directory を登録をクリックして開始
セキュリティグループはインバウンドルールでTCPポート1688を許可したものを指定してください

登録操作から10分程度で登録が完了します

AWS License ManagerにてRDSライセンスサーバーを設定

AWS License Manageの同じ画面から引き続き、ステップ 2: Active DirectoryのためにMicrosoft RDSライセンスサーバーを設定 を行います。

Microsoft RDS ライセンスサーバーを設定をクリックして開始

シークレットは先ほど登録したシークレットを指定

こちらも登録操作から10分程度で登録が完了します

AMIからEC2を起動

次はAWS License Manageの同じ画面から引き続き、ステップ 3: 既存のEC2インスタンスに変更を適用 になるのですが、まだEC2インスタンスはありませんので、新規で起動させます。
AWS MarketplaceにてOffice製品がインストールされたAMIからEC2を起動します。
AWS Marketplace: Office LTSC Professional Plus 2021を再び表示します。

画面の上にすでに購読済である旨メッセージが追加されています

View purchase optionsをクリックすると、購読した日などの詳細が表示されています。Continue to Configurationをクリックしてください。

Continue to Configurationをクリック

ソフトウェアバージョン(利用するOS)と利用するリージョンを選択します。

選択後、Continue to Launchをクリック

Choose ActionからLaunch through EC2を選択します。

選択後、Launchをクリック

AWSマネジメントコンソールのEC2 > Launch an instanceに画面遷移しますので、事前に準備したVPC、IAMインスタンスプロファイルなどを選択し、インスタンスを起動してください。

画面遷移すると既にAMIが選択されている状態になっています

ここまでの構築が問題なければインスタンスが起動し、AWS License Managerの ユーザーベースのサブスクリプション>ユーザーの関連付け の項目がアクティブになります。
ネットワーク構成などに誤りがあると、インスタンス立ち上げた後、すぐに自動ターミネートしてしまうのでご注意ください(体験談)。

ここまでの構築が問題なければインスタンス設定ステータスがアクティブになります

なお、この状態で立ち上げたEC2インスタンスにリモートデスクトップ接続してもログインすることはできません。
Active DirectoryユーザーをOfficeライセンスにサブスクライブし、このインスタンスに関連付けすることでリモートデスクトップ接続できるようになります。
後続作業で設定していきましょう。

ユーザーをサブスクライブ

AWS License Manageの ユーザーベースのサブスクリプション>製品>Office Professional Plus の画面に戻り、ステップ 4: ユーザーをサブスクライブを行います。

ユーザーをサブスクライブをクリック
サブスクライブするユーザーを入力

1分程度で登録完了します

なお、Microsoft Remote Desktop Servicesへのサブスクライブも自動で行われます

ユーザーを関連付け

サブスクライブしたユーザーを、先ほど立ち上げたEC2インスタンスに関連付けます。
AWS License Managerの ユーザーベースのサブスクリプション>ユーザーの関連付け から先ほど起動したインスタンスを選択してください。

ユーザーを関連付けるをクリック

関連付けるユーザーを入力

数秒で完了します

なお、ユーザーをサブスクライブ、関連付ける場合、一度に入力できるユーザー数が限られているため、ユーザーが数十、数百に及ぶ場合、何回かに分けて入力する必要があります。

ここまでの手順で、2セッション同時迄であれば、リモートデスクトップ接続が可能になります。

aws-user1でリモートデスクトップ接続し、Excelを起動しました。右上にユーザーアカウントも表示されていますね

Remote Desktop Session Host(RDSH)の設定

最後にRemote Desktop Session Host(RDSH)のグループポリシー設定を行います。背景などの詳細は以下ブログの「Remote Desktop Session Host (RDSH) の設定」を参照ください。

blog.serverworks.co.jp

なお、既にEC2にRDSHはインストール済なので、設定のみ実施します。
事前に、AWS License Manageの ユーザーベースのサブスクリプション>製品>Microsoft Remote Desktop Services (RDS) からRDSライセンスサーバーエンドポイントをメモしておいてください。

RDSライセンスサーバーエンドポイントはこちらで確認可能です

EC2にリモートデスクトップ接続し、ローカルグループポリシーエディターを起動

Local Computer Policy>Administrative Templates>Windows Components>Remote Desktop Services>Remote Desktop Session Host>Licensingを選択

Ues the specified Remote Desktop license serversを選択し、Enabledを選択の上、Licese servers to useに先ほどメモしたRDSライセンスサーバーエンドポイントを入力

Set the Remote Desktop licensing mode を選択し、Enableを選択の上、Specify the licensing mode for the RD Session Host serverでPer Userを選択

これで完了です!早速リモートデスクトップ接続してみましょう!!
3人ともExcel開いていますが、Wordなども操作可能です。

おまけ:OSの日本語化

選択可能なAMIのOSは英語版のみですので、必要に応じて日本語化を行ってください。
以前、Visual Studio製品がインストールされたAMIを日本語化しておりますのでご参考にしてください。

blog.serverworks.co.jp

おわりに

Micorsoft Office製品がインストールされたEC2を構築し、複数人同時作業可能な環境を構築しました。準備や構築手順は多いですが、ユーザーガイドを確認しながら構築すると困るところもなく構築できる印象です。私はユーザーガイドを見逃してネットワーク構成間違えてしまいましたが…(VPCエンドポイントの自動作成を見逃していました)
AWS上でMicorsoft Office製品を利用したい場合はご参考にしてください。

本記事がどなたかのお役に立てば幸いです。

【2024/12/09追記】
AWSサポートに確認し、EC2に必要IAMインスタンスプロファイルはAmazonSSMManagedInstanceCoreの代わりにAmazonSSMManagedEC2InstanceDefaultPolicyでも良いことを確認しました。
なお、AWS Systems Managerの権限が必要な理由は、EC2のドメインへの参加、OS の強化、付属製品へのアクセス監査などのために、Run Commandを利用しているためです。
AWS Systems Managerの権限なくEC2を起動すると、Run Commandが利用できないため、インスタンスを起動しても、AWS License Managerのユーザーの関連付けがアクティブにならず、しばらくすると自動ターミネートします。