无法获取从 AMI 创建的实例的密码

Suh*_*pta 5 php amazon-ec2 amazon-web-services amazon-ami

以下代码成功创建了一个实例。

try {
        $ec2 = new Ec2Client($options);
        $result = $ec2->runInstances([
             'ImageId' => 'ami-xxxxxxxx', // REQUIRED
             'InstanceInitiatedShutdownBehavior' => 'stop',
             'InstanceType' => 't1.micro',
             'MaxCount' => 1, // REQUIRED
             'MinCount' => 1, // REQUIRED,
             'EbsOptimized' => false, // SEE COMMENT
             'KeyName' => 'TestCloud',
             'Monitoring' => [
                'Enabled' => true // REQUIRED
              ]
        ]);
    }catch(Exception $exc) {
        var_dump($exc);
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从 检索连接 (RDP) 到该实例的密码时aws console,出现以下错误:

Password is not available.
This instance was launched from a custom AMI, or the default password has changed. 
A password cannot be retrieved for this instance. If you have forgotten your password, 
you can reset it using the Amazon EC2 configuration service. For
more information, see Passwords for a Windows Server Instance.
Run Code Online (Sandbox Code Playgroud)

早些时候,我AMI直接从正在运行的EC2实例创建了该实例。

这可能是什么原因?错过了什么?

moo*_*oot 6

This instance was launched from a custom AMI!
Run Code Online (Sandbox Code Playgroud)

使用自定义 AMI时请仔细阅读: http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/troubleshooting-windows-instances.html

提供的帐户和密码基于您用于启动实例的 AMI。您可以检索自动生成的管理员帐户密码,或使用创建 AMI 的原始实例中使用的帐户和密码

您不需要生成新密码,AWS 也不会允许。您只需使用在生成当前 AMI 的前一个实例上设置的相同 RDP 密码连接到新实例。

这是正确的行为。想象一下,您自定义整个 AWS EC2,您不希望任何人轻松覆盖对 EC2 实例的 RDP 访问。

这也意味着,在您自定义实例并弄乱密码后,您无法从中创建快照并希望 AWS 在服务器内重置密码。


Joh*_*ein 5

Get Windows Password工具只能用于对 Windows EC2 实例的初始访问

为管理员帐户生成随机密码。然后使用用于启动实例的密钥对的公共部分对密码进行加密。然后,加密的密码通过系统日志提供回 EC2 。(您通常可以通过使用管理控制台中的“获取系统日志”命令来查看它。)

要访问服务器,需要使用密钥对的私有部分对密码进行解密。这可以通过控制台中的“获取 Windows 密码”操作来完成。

非常重要:访问服务器后,请更改密码!或者,更好的是,将实例添加到 Active Directory 域。加密密码旨在提供对实例的初始访问。它不应该被用作持续的安全机制。

根据您收到的错误消息,该实例似乎没有通过系统日志发送加密密码。因此,EC2 无法解密它。这可能是因为 AMI 不是从 AWS 提供的映像创建的(该映像用于EC2Config创建加密密码并通过系统日志报告该密码),或者实例上的配置已以某种方式更改,无法运行该实用程序。

  • AMI 是从已运行的 EC2 实例创建的,该实例是通过亚马逊控制台上的启动实例向导创建的。这台机器可以轻松地在“获取密码”上创建密码。但现在创建的新机器无法生成密码。启动实例的正确方法是什么? (3认同)