MicrosoftADとインターフェース型のVPCエンドポイントを組み合わせる時に設定しておくこと
ご機嫌いかがでしょうか、豊崎です。
MicrosoftADを利用している状況下でインターフェース型のVPCエンドポイントを利用したかったのですが、SimpleADと一部挙動が異なったため、ちょっと設定に気をつける必要がありました。本投稿では構築時に気をつけるポイントについて書いていきたいと思います。
構成図
やりたいこと:MicrosoftADのドメインに参加した、プライベートサブネットに所属するEC2からSystems Manager Endpointへアクセスを行いたい。
構成としては以下です。
- 各EC2はMicrosoftADで管理しているドメインに参加している
- プライベートサブネットに配置されているEC2はSSM(Systems Manager)を利用するにあたってVPCエンドポイントを利用する
- VPCは10.0.0.0/16
- ドメインは「demo.local」
今回、MicrosoftADのDNS設定を変更する必要があるので、踏み台兼DNS接続用EC2にはサーバ管理ツールから「DNS Server Tool」を事前にインストールしてあります。
やってみる
なにはともあれ、SSMのVPCエンドポイントを設定しましょう。
AWSマネジメントコンソールのEC2ダッシューボード>エンドポイント>エンドポイントの作成をクリックして進んでいきます。
ssmのサービスをとプライベートサブネットを1a/1cで指定しています。
あとは特に変更せずにエンドポイントの作成をクリックしました。セキュリティグループはdefault(VPC内部の通信OK)を選択されていました。
SSMをVPCエンドポイントで利用するには以下3つのエンドポイントを設定する必要があるそうなので、上記手順を繰り返して、「ec2messages」、「s3」のVPCエンドポイントも登録します。
Systems Manager 用 VPC エンドポイントを作成する
さてそれでは、プライペートサブネットのEC2からSSMのエンドポイントに対してnslookupで名前解決を行ってみます。
C:\Windows\system32>nslookup ssm.ap-northeast-1.amazonaws.com サーバー: demo.local Address: 10.0.101.222 権限のない回答: 名前:ssm.ap-northeast-1.amazonaws.com Address: 54.239.96.213 C:\Windows\system32>nslookup ec2messages.ap-northeast-1.amazonaws.com サーバー: demo.local Address: 10.0.101.222 権限のない回答: 名前:ec2messages.ap-northeast-1.amazonaws.com Address: 54.240.225.178
プライベートIPで返される想定のアドレスがグローバルIPで返されてしまいます。。
SimpleADでは権威外のレコードについてはProvidedDNSにフォワードしてくれるのですが、挙動が異なるようです。。
最終的に、DNSサーバ(MicrosoftAD)の条件付きフォワーダに「amazonaws.com」=>「ProvidedDNSのIP(※)」とすることで インタフェース型のVPCエンドポイントをプライベートIPで名前解決することができました。 ※VPCが10.0.0.0の時、第四オクテットに+2したものがProvidedDNSのIPアドレスとなります。ここは状況に応じて読み替えてください。
設定方法
まずは、踏み台兼DNS接続用EC2からDNS Server Toolを使って、DNSサーバ(MicrosoftAD)に接続します。
左ペインのドメインの条件付きフォワーダー右クリックし、新規条件付きフォワーダーをクリックします。
DNSドメインに「amazonaws.com」、マスターサーバのIPアドレスの箇所にVPC内のProvidedDNSのIP(ここでは「10.0.0.2」)を入力してOKをクリックします。
それでは再度、プライペートサブネットのEC2からSSMのエンドポイントに対してnslookupで名前解決を行ってみます。
今度はプライベートのIPが帰ってきました。
C:\Windows\system32>nslookup ssm.ap-northeast-1.amazonaws.com サーバー: demo.local Address: 10.0.101.222 権限のない回答: 名前:ssm.ap-northeast-1.amazonaws.com Addresses: 10.0.101.179 10.0.2.101 C:\Windows\system32>nslookup ec2messages.ap-northeast-1.amazonaws.com サーバー: demo.local Address: 10.0.101.222 権限のない回答: 名前:ec2messages.ap-northeast-1.amazonaws.com Addresses: 10.0.101.9 10.0.2.197
これでMicrosoftADを利用していてもインターフェース型VPCエンドポイントを使うことができます。
ちなみに、Gateway型のVPCエンドポイント(今回の記事の中でいうとS3)は上記設定を行うことなく、利用できます。
さいごに
SimpleADとMicrosoftADは共に、自身の管理していないドメインに対してはPrividedDNSを参照してくれると思っていたのでびっくりしました。 MicrosoftADを利用しながらインターフェース型VPCエンドポイントのご利用を考えている方がいらっしゃいましたらご参考にしていただければと思います。 この記事が誰かのお役にたてば幸いです。