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

时间:2016-04-08 09:39:42

标签: php amazon-web-services amazon-ec2 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);
    }

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

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.

之前我直接从正在运行的AMI实例创建了EC2

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

3 个答案:

答案 0 :(得分:3)

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

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

要访问服务器,需要使用密钥对的私有一半解密密码。这可以通过获取Windows密码操作在控制台中完成。

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

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

答案 1 :(得分:3)

This instance was launched from a custom AMI!

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

  

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

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

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

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

答案 2 :(得分:0)

如果您从自定义AMI(即快照)启动实例,则此功能不再可用。您将需要重设密码。

如果您丢失了Windows管理员密码,并且在Windows Server 2016之前使用Windows AMI,则可以使用EC2Config服务生成新密码-> Resetting windows Admin Pass with EC2Config

如果您丢失了Windows管理员密码并使用Windows Server 2016或更高版本的AMI,则可以使用EC2Rescue工具,该工具使用EC2Launch服务生成新密码-> Resetting windows Admin Pass with EC2Launch