如何重置 EC2 Windows 实例的管理员密码?

上次更新日期:2021 年 7 月 23 日

我想重置我的 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例的管理员密码。该如何操作?

解决方法

您可以使用 AWS Systems Manager 或 EC2Rescue 重置 EC2 Windows 实例的管理员密码。

Systems Manager Run Command AWSSupport-RunEC2RescueForWindowsTool(联机方法)

先决条件:

  • 您必须为 AWS 账户配置 Systems Manager,并在实例上安装 Systems Manager 代理。有关更多信息,请参阅设置 AWS Systems Manager
  • 该实例必须拥有使用公有 IP 地址或 NAT 访问 Internet 的权限(适用于 Systems Manager)。
    -或者-
    该实例必须使用为 Systems Manager 配置的 Amazon Virtual Private Cloud (Amazon VPC) 终端节点。
    有关更多信息,请参阅 VPC 终端节点

要通过 Run Command 使用 Systems Manager 重置管理员密码,请按照以下步骤操作:

1.    将以下策略附加到与实例关联的 IAM 角色,以便将加密的密码写入参数仓库。

{ 
  "Version": "2012-10-17", 
  "Statement": [ 
    { 
      "Effect": "Allow", 
      "Action": [ 
      "ssm:PutParameter" 
      ], 
      "Resource": [ 
        "arn:aws:ssm:*:*:parameter/EC2Rescue/Passwords/i-*" 
        ] 
    } 
  ] 
}

2.    打开 AWS Systems Manager 控制台,然后从导航窗格中选择运行命令

3.    选择运行命令

4.    在 Command document(命令文档)部分,选择 AWSSupport-RunEC2RescueForWindowsTool。

5.    在命令参数部分,验证命令是否设置为 ResetAccess

6.    在目标部分,选择手动选择实例,然后选择您的实例。

7.    选择运行

8.    在目标和输出部分,选择您的实例的实例 ID

9.    有关如何检索新密码的说明,请选择查看输出

10.    在重新获得实例的访问权限后,最好轮换密码并从 Parameter Store 中删除此参数。

有关更多信息,请参阅将 EC2Rescue for Windows Server 与 Systems Manager Run Command 结合使用

Systems Manager Automation AWSSupport-ResetAccess (脱机方法)

警告:在运行自动化之前,请注意以下事项:

  • 如果您没有使用弹性 IP 地址,则当您停止实例时,将会释放公有 IP 地址。
  • 如果此实例具有实例存储卷,当实例停止时,实例上的任何数据都将丢失。
  • 如果实例关闭行为设置为终止,则实例停止时将会终止。
  • 如果实例属于 Auto Scaling 组,请先从 Auto Scaling 组分离该实例。在您停止和启动实例后,重新将该实例附加到 Auto Scaling 组。

有关更多信息,请参阅停止并启动实例

AWSSupport-ResetAccess 是一个 Systems Manager Automation 文档,它使用 AWS CloudFormation 和 AWS Lambda 函数实现 EC2Rescue 脱机密码重置操作的自动化。自动化文档:

  • 创建一个实例,帮助恢复您的可用区。
  • 附加和分离 EBS 卷。
  • 运行 EC2Rescue 实用工具。
  • 创建与您的环境隔离的 Amazon VPC 以用于 EC2Rescue。
  • 创建实例的备份 AMI。

在以下情况下,您可以使用 AWSSupport-ResetAccess 文档:

  • 您丢失了 EC2 密钥对,并希望从 EC2 实例创建启用了密码的 AMI,以便使用现有密钥对启动新的实例。
  • 您丢失了本地管理员密码,并希望生成可使用当前 EC2 密钥对解密的新密码。

重要提示:您不能将 AWSSupport-ResetAccess 文档与加密的根 EBS 卷一起使用。

1.    打开 AWS Systems Manager 控制台,然后从导航窗格中选择 自动化

2.    选择执行自动化

3.    在自动化文档部分,选择 AWSSupport-ResetAccess,然后选择下一步

4.    对于 Input parameters(输入参数),输入您的 EC2 实例的 InstanceID

5.    选择执行

6.    等待状态变为 Success(成功)。这最多可能需要 25 分钟的时间。

注意:在 执行详细信息页面中,查看 已执行的步骤以监控执行进度。展开输出以查看自动化的输出。要返回此页面,请打开 AWS Systems Manager 控制台,然后从导航窗格中选择自动化。选择正在运行的自动化,然后选择查看详细信息

7.    使用您的现有密钥对通过 EC2 控制台为新生成的密码解码。有关更多信息,请参阅启动实例后,如何检索 Windows 管理员密码?

Systems Manager Run Command (在线方法)

先决条件:

  • 您必须为 AWS 账户配置 Systems Manager,并在实例上安装 Systems Manager 代理。有关更多信息,请参阅设置 AWS Systems Manager
  • 该实例必须拥有使用公有 IP 地址或 NAT 访问 Internet 的权限(适用于 Systems Manager)。
    -或者-
    该实例必须使用为 Systems Manager 配置的 Amazon Virtual Private Cloud (Amazon VPC) 终端节点。
    有关更多信息,请参阅 VPC 终端节点

1.    打开 AWS IAM 控制台

2.    依次选择角色创建新角色

3.    选择 EC2,然后选择选取

4.    在策略名称下,选中 AmazonSSMManagedInstanceCore,然后输入角色名称。

5.    选择 Create Role(创建角色)。

6.    打开 Amazon EC2 控制台,然后选择适当的区域。

7.    选择受影响的实例,然后依次选择操作安全性修改 IAM 角色

8.    选择刚创建的 IAM 角色,然后选择保存

注意:使用适当的 IAM 策略将 IAM 角色附加到实例后,请等待大约 5 分钟。您可以在 AWS Systems Manager 控制台托管实例中看到您的实例。如果实例未显示在“托管实例”下,请尝试重启实例。如果实例仍然未显示,请参阅为什么我的 EC2 实例没有出现在 Systems Manager 控制台的托管实例下?

9.    实例出现在托管实例中后,在 AWS Systems Manager 控制台中选择运行命令

10.    选择运行命令

11.    对于命令文档,请选择 AWS-RunPowerShellScript

12.    对于命令参数,请复制并粘贴以下命令。用您的密码替换 Password@123

net user Administrator Password@123

13.    对于目标,请选择手动选择实例,然后选择需要重置密码的实例。

14.    选择运行

注意:将所有设置保留为默认值。

成功完成 run 命令后,您现在可以使用步骤 12 中所用的本地管理员密码登录实例。

如果您丢失了 EC2 密钥对

1.    停止您的实例。

警告:停止实例之前,您需要注意以下事项:

  • 如果您没有使用弹性 IP 地址,则当您停止实例时,将会释放公有 IP 地址。
  • 如果此实例具有实例存储卷,当实例停止时,实例上的任何数据都将丢失。
  • 如果实例关闭行为设置为终止,则实例停止时将会终止。
  • 如果实例属于 Auto Scaling 组,请先从 Auto Scaling 组分离该实例。在您停止和启动实例后,重新将该实例附加到 Auto Scaling 组。

有关更多信息,请参阅停止并启动实例

2.    打开 Amazon EC2 控制台,然后选择 AMI

3.    搜索您的实例 ID

4.    选择名为 AWSSupport-EC2Rescue-Post-Script-Backup-i-xxxxxxxxx_Date 的 AMI,然后选择 Launch(启动)。

5.    按照启动向导操作以指定实例的配置,然后选择您拥有的密钥对。

6.    在终止其他实例之前,确认您能够连接到新实例,并且您的应用程序正在按预期运行。

EC2Rescue(脱机或联机方法)

要在下一次启动时重新生成管理员密码,您可以使用 EC2Rescue 启用 EC2SetPassword

1.    选择 Diagnose and Rescue。EC2Config 部分显示当前的 Ec2SetPassword 设置。选择 Next

2.    在检测可能存在的问题部分,选中 Ec2SetPassword 复选框,然后选择下一步

有关更多信息,请参阅如何使用 EC2Rescue 工具排查我的 EC2 Windows 实例问题?