跳至内容

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

3 分钟阅读
0

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

解决方法

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

先决条件:

  • 您必须配置 AWS Systems Manager,然后在实例上安装 Systems Manager 代理。有关详细信息,请参阅设置 AWS Systems Manager
  • 该实例必须能够访问互联网并使用公共 IP 地址或 NAT 网关。
    -或-
    该实例必须使用为 Systems Manager 配置的 Amazon Virtual Private Cloud(Amazon VPC)端点。
    有关详细信息,请参阅 AWS PrivateLink 概念

要使用 Systems Manager Run Command 重置管理员密码,请完成以下步骤:

  1. 将以下策略附加到与实例关联的 AWS Identity and Access Management (IAM) 角色:

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

    此策略将加密的密码写入 Parameter Store。

  2. 打开 Systems Manager 控制台

  3. 在导航窗格中,选择 Run Command

  4. 选择 Run a Command(运行命令)。

  5. 对于 Command document(命令文档),选择 AWSSupport-RunEC2RescueForWindowsTool

  6. 对于 Command parameters(命令参数),请验证 Command 是否设置为 ResetAccess

  7. 对于 Targets(目标),选择 Choose instances manually(手动选择实例),然后选择您的实例。

  8. 选择 Run(运行)。

  9. Targets and outputs(目标与输出)部分中,选择您实例的 Instance ID(实例 ID)。

  10. 选择 View output(查看输出)以查看有关如何检索新密码的说明。

**注意:**在重新获得实例的访问权限后,最佳做法是轮换密码并从 Parameter Store 中删除此参数。

有关详细信息,请参阅使用 EC2Rescue 和 Systems Manager 对受损的 Windows 实例进行故障排除

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

**重要事项:**在运行自动化之前,请查看以下信息:

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

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

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

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

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

**重要事项:**您不能对加密的根 Amazon EBS 卷使用 AWSSupport-ResetAccess 文档。
要使用 AWSSupport-ResetAccess 重置您的密码,请完成以下步骤:

  1. 打开 Systems Manager 控制台
  2. 在导航窗格中,选择自动化
  3. 选择 Execute automation(执行自动化)。
  4. 对于 Automation document(自动化文档),选择 AWSSupport-ResetAccess,然后选择 Next(下一步)。
  5. 对于 Input parameters(输入参数),输入您的 EC2 实例的 InstanceID
  6. 选择 Execute(执行)。
  7. 耐心等待,直至状态变为 Success(成功)。这最长可能需要 25 分钟。
    注意: 在执行详细信息页面上,查看已执行步骤以监控进度。展开输出以查看自动化的输出。要返回此页面,请打开 Systems Manager 控制台,然后从导航窗格中选择自动化。选择正在运行的自动化,然后选择 View details(查看详细信息)。
  8. 使用您的现有密钥对通过 Amazon EC2 控制台为新生成的密码解码。有关详细信息,请参阅启动 EC2 实例后如何找回我的 Windows 管理员密码?

丢失 Amazon EC2 密钥对

如果您丢失 Amazon EC2 密钥对,请完成以下步骤:

  1. 停止实例
  2. 打开 Amazon EC2 控制台,然后选择 AMI
  3. 搜索您的实例 ID
  4. 选择名为 AWSSupport-EC2Rescue-Post-Script-Backup-i-#########_Date 的 AMI,然后选择 Launch(启动)。
  5. 按照启动向导进行操作,指定您的实例配置,然后选择您拥有的密钥对。
  6. 在终止其他实例之前,验证您是否能够连接到新实例,以及您的应用程序是否按预期运行。

EC2Rescue(离线或在线方法)

要在下次启动实例时使用 EC2Rescue 重置管理员密码,请完成以下步骤:

  1. 创建临时帮助程序实例,该实例与您要重置密码的实例位于同一个可用区。或者,您可以使用位于同一可用区的具有远程桌面协议 (RDP) 访问权限的实例。
  2. 为需要重置密码的实例拍摄快照或创建 AMI 备份
  3. 停止需要重置密码的实例
  4. 将根卷与需要重置密码的实例分离
  5. 将步骤 4 中的根卷附加到步骤 1 中的临时帮助程序实例上。
  6. 下载 EC2Rescue 并运行 EC2Rescue 可执行文件来解压缩 zip 文件
  7. 运行 EC2Rescue 工具。选择 Offline Instance(脱机实例),然后选择附加到临时帮助程序实例的根 EBS 卷。
  8. 选择 Diagnose and Rescue(诊断和救援)。在 Detect possible issues(检测可能的问题)中,选中 Ec2SetPassword 复选框,然后选择 Next(下一步)。
  9. 完成 EC2Rescue 启动向导。然后,将根 EBS 卷连接回原始实例以验证新密码。

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

托管节点(在线方法)

您可以为 Amazon EC2 实例的托管节点上的任何用户重置密码。在使用此选项之前,请务必确认您满足所有先决条件

  1. 打开 Systems Manager 控制台

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

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

  4. Node actions(节点操作)菜单中,选择 Node Settings(节点设置)。然后,选择 Reset Node User Password(重置节点用户密码)。
    **注意:**要使用“重置密码”功能,必须进行加密。在会话管理器首选项页面上配置 AWS Key Management Service (AWS KMS) 密钥

  5. 将以下策略附加到与实例关联的 IAM 角色以进行解密:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "AllowKMSDecrypt",
                "Effect": "Allow",
                "Action": [
                    "kms:Decrypt"
                ],
                "Resource": "arn:aws:kms:REGION:AccountID:key/KeyId"
            }
        ]
    }

    附加到实例的实例配置文件或 IAM 角色必须具有您在为会话管理器配置加密时指定的密钥的 kms:Decrypt 权限。

  6. 对于 User name(用户名),从列表中选择一个用户名或输入要更改密码的用户名。这可以是任何在节点上有账户的用户名。

  7. 选择 Submit(提交)。

  8. 按照 Enter new password(输入新密码)命令窗口中的提示指定新密码。

相关信息

适用于 Amazon EC2 的 Identity and Access Management

排查 Amazon EC2 Windows 实例问题

使用 EC2Rescue 对受损的 Amazon EC2 Windows 实例进行故障排除

在无法访问的实例上运行 EC2Rescue 工具