Sysprep 済み AMI から作成した EC2 インスタンスでパスワード復号化できない原因を教えてください

Sysprep 済み AMI から作成した EC2 インスタンスでパスワード復号化できない原因を教えてください

Clock Icon2025.02.03

困っていること

Windows EC2 インスタンスの Sysprep 実行時に、以下の手順で操作したにも関わらず、新規インスタンスにログインできない事象が発生しました。

【実施した手順】

  1. Amazon EC2Launch settings を開き、Administrator password settingsで 「Random」 を選択
  2. 「Shutdown with Sysprep」 を実行
  3. Sysprep 完了後のインスタンスから AMI を作成
  4. 作成した AMI から新規 EC2 インスタンスを起動

【発生している問題】
新規起動したインスタンスに対して、EC2 コンソールからプライベートキーによるパスワードの復号化ができない

スクリーンショット 2025-02-02 123509

どう対応すればいいの?

「Administrator password settings」 を 「Random」 に指定されているものの、動作としては 「Do Not Set」 となっている状況が考えられます。
たとえば、「Do Not Set」 から 「Random」 に変更し、「Save」 を押下せずに 「Shutdown with Sysprep」 を実行されたために設定が反映されず 「Do Not Set」 として動作してしまった可能性がございます。

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

この様な状況を回避するためにも、AMI を作成する際は EC2Launch settings にて 「Save」 ボタンを押下した後に、「Shutdown with Sysprep」 を実行する手順を追加してください。
なお、「Save」 ボタン押下後に 「C:\ProgramData\Amazon\EC2Launch\config\agent-config.yml」 を確認することをお勧めします。こちらより設定が反映されているか否かを確認可能です。

01

02

YAML ファイルの例
version: 1.0
config:
  - stage: boot
	tasks:
      - task: extendRootPartition
  - stage: preReady
    tasks:
      - task: activateWindows
        inputs:
          activation:
            type: amazon
      - task: setDnsSuffix
        inputs:
          suffixes:
            - $REGION.ec2-utilities.amazonaws.com
      - task: setAdminAccount
        inputs:
          password:
            type: random
      - task: setWallpaper
        inputs:
          path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg
          attributes:
            - hostName
            - instanceId
            - privateIpAddress
            - publicIpAddress
            - instanceSize
            - availabilityZone
            - architecture
            - memory
            - network
  - stage: postReady
    tasks:
      - task: startSsm

参考資料

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

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

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

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.