こんにちは!イーゴリです。
下記の記事にて、AWS License ManagerでMicrosoft Remote Desktop Services (RDS)をユーザーベースのサブスクリプション形式で購入する方法を紹介しましたが、今回はAWS が提供する SPLA の RDS SAL マルチアカウント / マルチVPC の展開方法を紹介したいと思います。
- イメージ図
- 前提条件
- License Managerのホストゾーン名の構成についての注意点
- プライベートホストゾーンを他のAWSアカウントのVPCに関連付ける手順
- SPLA 対象の EC2 が、お客様の自己管理 AD サーバーもしくはAWS Managed ADを DNS サーバーとして参照している場合
イメージ図
前提条件
- TGWやVPCピアリングなどを用いた、アカウント間のネットワーク通信(適切なルーティングを含む)が構成されていること
- VPC の設定で enableDnsHostnames と enableDnsSupport が有効(true)になっていること
Amazon VPC の設定 プライベートホストゾーンを使用するには、次の Amazon VPC 設定で true を指定する必要があります:
・enableDnsHostnames
・enableDnsSupport
License Managerのホストゾーン名の構成についての注意点
TGWやVPCピアリングなどを使ってアカウント間の通信(ルーティングも含む)を構成していても、RDSHからAWS License Managerのエンドポイントを指定しても名前解決はできません。
SPLAのLicense Managerを展開すると、「aws-license-manager-license-server.amazon.com」というRoute 53のプライベートホストゾーンが自動的に作成されます。このプライベートホストゾーンは、対象のVPC(License Manager設定時のVPC)に関連付けられるため、デフォルトでは他のVPCやアカウントからエンドポイントを指定しても名前解決はできませんので、ご注意ください。
そのため、SPLA対象のEC2インスタンスが aws-license-manager-license-server.amazon.com に問い合わせできるようにするには、このプライベートホストゾーンを他のAWSアカウントのVPCにも関連付ける必要があります。
「IPアドレスを直接指定すれば良いのでは?」と考える方もいるかもしれませんが、このエンドポイントは動的IPを使用しているため、非推奨です。将来的にIPアドレスが変更され、接続できなくなるリスクがあるため、必ずDNSによる名前解決を行うようにしてください。
プライベートホストゾーンを他のAWSアカウントのVPCに関連付ける手順
下記の制約があるため、AWS CLIを使います。
VPC とプライベートホストゾーンの関連付けを許可する場合や、関連付けを作成する場合はいずれも、Route 53 コンソールを使用することはできません。
変更前の確認(アカウントA)
コマンド:
aws route53 get-hosted-zone --id Z06263833MIV466
出力結果:
{ "HostedZone": { "Id": "/hostedzone/Z06263833MIV466", "Name": "license-manager-user-subscriptions-license-server.amazon.com.", "CallerReference": "1733199117", "Config": { "PrivateZone": true }, "ResourceRecordSetCount": 4 }, "VPCs": [ { "VPCRegion": "ap-northeast-1", "VPCId": "vpc-07d12d2e135d" } ] }
VPCの関連付け(アカウントA)
コマンド:
aws route53 create-vpc-association-authorization \ --hosted-zone-id Z06263833MIV466 \ --vpc VPCRegion=ap-northeast-1,VPCId=vpc-0e6632f68337
出力結果:
{ "HostedZoneId": "Z06263833MIV466", "VPC": { "VPCRegion": "ap-northeast-1", "VPCId": "vpc-0e6632f68337" } }
認証リクエストの送信(アカウントB)
コマンド:
aws route53 associate-vpc-with-hosted-zone \ --hosted-zone-id Z06263833MIV466 \ --vpc VPCRegion=ap-northeast-1,VPCId=vpc-0e6632f68337
出力結果:
{ "ChangeInfo": { "Id": "/change/C08098311XQ2BR3", "Status": "PENDING", "SubmittedAt": "2025-04-08T03:23:52.622000+00:00", "Comment": "" } }
変更後の確認(アカウントA)
コマンド:
aws route53 get-hosted-zone --id Z06263833MIV466
出力結果:
{ "HostedZone": { "Id": "/hostedzone/Z06263833MIV466", "Name": "license-manager-user-subscriptions-license-server.amazon.com.", "CallerReference": "1733199117", "Config": { "PrivateZone": true }, "ResourceRecordSetCount": 4 }, "VPCs": [ { "VPCRegion": "ap-northeast-1", "VPCId": "vpc-07d12d2e135d" }, { "VPCRegion": "ap-northeast-1", "VPCId": "vpc-0e6632f68337" } ] }
関連付け承認の解除
aws route53 delete-vpc-association-authorization \ --hosted-zone-id Z06263833MIV466 \ --vpc VPCRegion=ap-northeast-1,VPCId=vpc-0e6632f68337
動作確認
アカウントBにあるEC2から下記のコマンドを実行します。
例:
dig <対象レコード.ドメイン名>
コマンド:
dig test.license-manager-user-subscriptions-license-server.amazon.com
出力結果:
; <<>> DiG 9.18.33 <<>> test.license-manager-user-subscriptions-license-server.amazon.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2672 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;test.license-manager-user-subscriptions-license-server.amazon.com. IN A ;; ANSWER SECTION: test.license-manager-user-subscriptions-license-server.amazon.com. 300 IN A 192.168.1.1 ;; Query time: 0 msec ;; SERVER: 192.168.0.2#53(192.168.0.2) (UDP) ;; WHEN: Tue Apr 08 08:22:20 UTC 2025 ;; MSG SIZE rcvd: 110
上記の結果にテストレコードが表示されているため、問題ありません。
SPLA 対象の EC2 が VPC デフォルトの Amazon Provided DNS(.2)を参照していれば、名前解決が可能です。
一方で、お客様管理の AD サーバーを DNS として使用している場合(DHCP オプションセットや手動設定により、Amazon Provided DNS を使用していない場合)は注意が必要です。 その場合は、AD サーバー側に条件付きフォワーダーを設定し、Route 53 Resolver に名前解決を委ねる構成にしてください。
SPLA 対象の EC2 が、お客様の自己管理 AD サーバーもしくはAWS Managed ADを DNS サーバーとして参照している場合
SPLA 対象の EC2 はDHCPオプションセットが変更された場合やWindows ServerのDHCP設定が手動で変更された場合などにADのEC2 Windows Server もしくは AWS Managed ADにて条件付きフォワーダーを構成する必要があります。
※Global Forwarder が AWS 提供の DNS(AWS Provided DNS)として設定されている場合、条件付きフォワーダーの設定は不要です。
条件付きフォワーダーを設定する手順
自己管理 AD サーバーの場合
Windows ServerでAmazon Route 53のIPを指定します。
[Windows] -> [Windows 管理ルーツ] -> [DNS]を押下します。
[対象AD] -> [条件付きフォワーダー]-> [新規条件付きフォワーダー] を押下します。
DNSドメイン:aws-license-manager-license-server.amazon.com
Amazon Provided DNS(.2)を追加します(私の場合は10.123.0.0/16のVPCのため、10.123.0.2を入力します)。
必要に応じて、「この Active Directoryに条件付きフォワーダーを保存し、次の方法でレプリケートする」を選択し、適切なオプションを選択します。
「OK」を押下します。
AWS Managed ADの場合
※Global Forwarder が AWS 提供の DNS(AWS Provided DNS)として設定されている場合、条件付きフォワーダーの設定は不要です。
上記と同様の手順で構成しますが、DNS に接続するためには別の EC2 から DNS ツールを使って接続する必要があります。
Configure DNS forwarder settings repost.aws
AWS Managed AD を管理するための EC2 が用意されていること
DNS ツールがインストールされていること
簡単に説明すると、対象の AWS Managed AD の DNS アドレスを控え(例:172.16.0.216)、 [Windows] -> [Windows 管理ツール] -> [DNS] をクリックします。
対象の EC2 に DNS サーバーが設定されていない場合は、以下の画像のような画面が表示されますので、 控えた IP を入力し、「OK」をクリックします。
その後の手順は変わりません。
以上、御一読ありがとうございました。
本田 イーゴリ (記事一覧)
カスタマーサクセス部
・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, CLF
・Azure AZ-900
・EC-Council CCSE
趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽