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

3 分钟阅读
0

我想重置 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例的管理员密码。

解决方法

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

Systems Manager Run Command AWSSupport-RunEC2RescueForWindowsTool(在线方法)

先决条件:

  • 您必须为 AWS 账户配置 Systems Manager,并在实例上安装 Systems Manager 代理。有关详细信息,请参阅Setting up AWS Systems Manager
  • 该实例必须拥有使用公有 IP 地址或 NAT 访问互联网的权限(适用于 Systems Manager)。

    该实例必须使用为 Systems Manager 配置的 Amazon Virtual Private Cloud(Amazon VPC)端点。
    有关详细信息,请参阅 AWS PrivateLink 概念

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

  1. 将以下策略附加到与实例关联的 AWS Identity and Access Management(AWS IAM)角色,将加密密码写入 Parameter Store:
{  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Effect": "Allow",  
      "Action": [  
        "ssm:PutParameter"  
      ],  
      "Resource": [  
        "arn:aws:ssm:*:*:parameter/EC2Rescue/Passwords/i-*"  
      ]  
    }  
  ]  
}
  1. 打开 AWS Systems Manager 控制台,然后从导航窗格中选择运行命令

  2. 选择运行命令

  3. 对于命令文档,选择 AWSSupport-RunEC2RescueForWindowsTool。

  4. 对于命令参数,请验证命令是否设置为 ResetAccess

  5. 对于目标,选择手动选择实例,然后选择您的实例。

  6. 选择运行

  7. 目标与输出部分中,选择您实例的实例 ID

  8. 选择查看输出以查看有关如何检索新密码的说明。

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

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

在托管节点上重置密码(在线方法)

您可以为 Amazon EC2 实例的托管节点上的任何用户重置密码。

有关详细的说明,请参阅Reset a password on a managed node。在使用此方法之前,请务必确认您已满足所有先决条件

  1. 打开 Systems Manager 控制台

  2. 在左侧导航窗格中,选择 Fleet Manager

  3. 选择需要新密码的节点。

  4. 实例操作菜单中,选择重置密码

  5. 用户名中,输入要更改密码的用户的名称。这可以是任何在节点上有账户的用户名。

  6. 选择提交

  7. 按照输入新密码命令窗口中的提示指定新密码。

Systems Manager Automation AWSSupport-ResetAccess(离线方法)

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

  • 如果您没有使用弹性 IP 地址,那么在您停止实例时,系统会释放公有 IP 地址。
  • 如果该实例有实例存储卷,则当该实例停止时,其上的所有数据都将丢失。
  • 如果将实例关闭行为设置为终止,则该实例会在停止时终止。
  • 如果该实例属于自动扩缩组,请先将其与自动扩缩组分离。然后,在停止并启动实例后,请将该实例连接回自动扩缩组。

有关详细信息,请参阅停止和启动您的实例

AWSSupport-ResetAccess 是一个 Systems Manager Automation 文档,它使用 AWS CloudFormation 和 AWS Lambda 函数自动重置 EC2Rescue 离线密码。自动化文档执行以下操作:

  • 创建一个实例以协助在您的可用区中恢复。
  • 连接和分离 Amazon Elastic Block Store (Amazon EBS) 卷。
  • 运行 EC2Rescue 实用程序。
  • 为 EC2Rescue 创建一个与您的环境隔离的 Amazon VPC。
  • 创建实例的备份 AMI。

你可以在以下场景中使用 AWSSupport-ResetAccess 文档:

  • 您丢失了 EC2 密钥对。现在,您想从自己的 EC2 实例创建启用了密码的 AMI,以使用现有密钥对启动新实例。
  • 您丢失了本地管理员密码。现在您想生成一个可以使用当前 EC2 密钥对解密的新密码。

**重要事项:**您不能对加密的根 EBS 卷使用 AWSSupport-ResetAccess 文档。

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

  2. 选择执行自动化

  3. 对于自动化文档,选择 AWSSupport-ResetAccess,然后选择下一步

  4. 对于输入参数,请输入您的 EC2 实例的 InstanceID

  5. 选择执行

  6. 耐心等待,直至状态变为成功。这最长可能需要 25 分钟。

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

  1. 使用您的现有密钥对通过 EC2 控制台为新生成的密码解码。有关详细信息,请参阅启动实例后如何找回我的 Windows 管理员密码?

如果您丢失了 EC2 密钥对

  1. 停止您的实例。

警告: 在停止实例之前,请注意以下几点:

  • 如果您没有使用弹性 IP 地址,那么在您停止实例时,系统会释放公有 IP 地址。
  • 如果该实例有实例存储卷,则当该实例停止时,其上的所有数据都将丢失。
  • 如果将实例关闭行为设置为终止,则该实例会在停止时终止。
  • 如果该实例属于自动扩缩组,则先将其与自动扩缩组分离。然后,在停止并启动实例后,请将该实例连接回自动扩缩组。

有关详细信息,请参阅停止和启动您的实例

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

  2. 搜索您的实例 ID

  3. 选择名为 AWSSupport-EC2Rescue-Post-Script-Backup-i-xxxxxxxxx_Date 的 AMI,然后选择启动

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

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

EC2Rescue(离线或在线方法)

要在下次使用 EC2Rescue 启动实例时重置管理员密码,请执行以下操作:

  1. 创建一个临时帮助程序实例,该实例应与您要重置密码的实例位于同一个可用区。或者,您可以使用位于同一可用区域内具有 RDP 访问权限的实例。

  2. 为需要重置密码的实例拍摄快照或创建 AMI 备份。

  3. 停止需要重置密码的实例。

  4. 将根卷与需要重置密码的实例分离。

  5. 将步骤 4 中分离的根卷附加到步骤 1 中的临时帮助程序实例上。

  6. 下载 EC2Rescue 并运行 EC2Rescue 可执行文件来解压缩 zip 文件

  7. 运行 EC2Rescue 实用程序。选择脱机实例,然后选择附加到临时帮助程序实例的根 EBS 卷。

  8. 选择诊断和救援。在检测可能的问题中,选中 Ec2SetPassword 复选框,然后选择下一步

  9. 完成 EC2Rescue 启动向导,然后将根 EBS 卷连接回原始实例,以验证新密码。

有关详细信息,请参阅如何使用 EC2Rescue 来解决我的 Amazon EC2 Windows 实例的问题?

相关信息

适用于 Amazon EC2 的 Identity and Access Management

排查 EC2 Windows 实例的问题

使用 EC2Rescue for Windows Server

Run the EC2Rescue tool on unreachable instances

AWS Systems Manager