Windows Sysprep 後に キーペアを変更して、フリートマネージャーを使用した RDP 接続は可能ですか

Windows Sysprep 後に キーペアを変更して、フリートマネージャーを使用した RDP 接続は可能ですか

Clock Icon2025.03.19

困っていること

Windows Server 2016 以降の OS で EC2 インスタンスを利用しています。複製目的のため SID などが重複しないよう Windows Sysprep を行い、停止中の EC2 インスタンスよりカスタム AMI 取得しました。
その取得した カスタム AMI を利用した EC2 インスタンス起動時に、元の EC2 インスタスに設定していたキーペアと異なる、キーペアを設定したいです。
変更後のキーペアで、SSM フリートマネージャーを使用したマネージドノードに対する RDP 接続が可能か教えてください。

どう対応すればいいの?

Windows Sysprep (EC2Launch, EC2Launch v2) 設定画面より "Random" を選択後に実行していれば可能です。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launch-config.html
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launch-v2-settings.html

管理者アカウントの設定
有効にすると、ローカルマシンに作成される管理者アカウントのユーザー名とパスワードの属性を設定できます。この機能を有効にしないと、Sysprep 後に管理者アカウントがシステムに作成されません。adminPasswordtype が Specify である場合のみ、adminPasswordにパスワードを入力してください。
パスワードの種類は次のとおりです。

Random
EC2Launch は、ユーザーのキーを使用してパスワードを生成し、暗号化します。この設定はインスタンス起動後に無効になるため、インスタンスを再起動したり、停止して起動した場合でもパスワードは保持されます。

Specify
EC2Launch は、adminPassword で指定したパスワードを使用します。指定したパスワードがシステム要件を満たさない場合は、代わりに EC2Launch によってランダムなパスワードが生成されます。このパスワードはクリアテキストとして agent-config.yml に保存され、Sysprep で管理者パスワードが設定されると削除されます。EC2Launch は、ユーザーのキーを使用してパスワードを暗号化します。

Do not set
EC2Launch は、unattend.xml ファイルで指定したパスワードを使用します。unattend.xml でパスワードを指定しないと、管理者アカウントは無効になります。

確認してみた

同じキーペアを設定した Windows OS の EC2 インスタンスを 3 台起動します。

  • Name: Random
  • Name: Do Nothing
  • Name: Specify

01

弊社ブログを参考に、Windows Sysprep を実施します。
https://dev.classmethod.jp/articles/windows2019-ec2-clone/

検証のため以下のように Name タグ通りの設定で、各 EC2 インスタンスへ Windows Sysprep を実施しました。

※ Random
Random

※ Do Nothing
Do Nothing

※ Specify
Specify

Windows Sysprep 実施後、停止中の EC2 インスタンスより カスタム AMI を取得します。
(AMI 名には、どのような設定で実施した記載)

02

元の EC2 インスタンスと異なるキーペアを設定して、カスタム AMI より EC2 インスタンスを起動します。

03

準備は整ったので、検証します。

  • Random
    異なる キーペアでも RDP 接続可能です。
    04

05

  • Do Nothing
    以下のエラーが表示され、異なる キーペアで RDP 接続できません。

06

  • Specify
    他 2 台と同様にマネージドノードとして登録されるように起動したものの、認識されません。

07

08

09

Specify で設定して Windows Sysprep を実行後、起動した 元の EC2 インスタンス (Name:Specify) も Ping ステータスが "Connection Lost" になっているなども合わせて確認できます。

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.