我想重置 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 重置管理员密码,请按照以下步骤操作:
- 将以下策略附加到与实例关联的 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-*"
]
}
]
}
-
打开 AWS Systems Manager 控制台,然后从导航窗格中选择运行命令。
-
选择运行命令。
-
对于命令文档,选择 AWSSupport-RunEC2RescueForWindowsTool。
-
对于命令参数,请验证命令是否设置为 ResetAccess。
-
对于目标,选择手动选择实例,然后选择您的实例。
-
选择运行。
-
在目标与输出部分中,选择您实例的实例 ID。
-
选择查看输出以查看有关如何检索新密码的说明。
-
在重新获得实例的访问权限后,最好轮换密码并从 Parameter Store 中删除此参数。
有关详细信息,请参阅将 EC2Rescue for Windows Server 与 Systems Manager Run Command 结合使用。
在托管节点上重置密码(在线方法)
您可以为 Amazon EC2 实例的托管节点上的任何用户重置密码。
有关详细的说明,请参阅Reset a password on a managed node。在使用此方法之前,请务必确认您已满足所有先决条件。
-
打开 Systems Manager 控制台。
-
在左侧导航窗格中,选择 Fleet Manager。
-
选择需要新密码的节点。
-
在实例操作菜单中,选择重置密码。
-
在用户名中,输入要更改密码的用户的名称。这可以是任何在节点上有账户的用户名。
-
选择提交。
-
按照输入新密码命令窗口中的提示指定新密码。
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 文档。
-
打开 Systems Manager 控制台,然后在导航窗格中选择自动化。
-
选择执行自动化。
-
对于自动化文档,选择 AWSSupport-ResetAccess,然后选择下一步。
-
对于输入参数,请输入您的 EC2 实例的 InstanceID。
-
选择执行。
-
耐心等待,直至状态变为成功。这最长可能需要 25 分钟。
注意: 在执行详细信息页面上,查看已执行步骤以监控进度。展开输出以查看自动化的输出。要返回此页面,请打开 Systems Manager 控制台,然后从导航窗格中选择自动化。选择正在运行的自动化,然后选择查看详细信息。
- 使用您的现有密钥对通过 EC2 控制台为新生成的密码解码。有关详细信息,请参阅启动实例后如何找回我的 Windows 管理员密码?
如果您丢失了 EC2 密钥对
- 停止您的实例。
警告: 在停止实例之前,请注意以下几点:
- 如果您没有使用弹性 IP 地址,那么在您停止实例时,系统会释放公有 IP 地址。
- 如果该实例有实例存储卷,则当该实例停止时,其上的所有数据都将丢失。
- 如果将实例关闭行为设置为终止,则该实例会在停止时终止。
- 如果该实例属于自动扩缩组,则先将其与自动扩缩组分离。然后,在停止并启动实例后,请将该实例连接回自动扩缩组。
有关详细信息,请参阅停止和启动您的实例。
-
打开 Amazon EC2 控制台,然后选择 AMI。
-
搜索您的实例 ID。
-
选择名为 AWSSupport-EC2Rescue-Post-Script-Backup-i-xxxxxxxxx_Date 的 AMI,然后选择启动。
-
按照启动向导进行操作,指定您的实例配置,然后选择您拥有的密钥对。
-
在终止其他实例之前,确认您能够连接到新实例,并且您的应用程序正在按预期运行。
EC2Rescue(离线或在线方法)
要在下次使用 EC2Rescue 启动实例时重置管理员密码,请执行以下操作:
-
创建一个临时帮助程序实例,该实例应与您要重置密码的实例位于同一个可用区。或者,您可以使用位于同一可用区域内具有 RDP 访问权限的实例。
-
为需要重置密码的实例拍摄快照或创建 AMI 备份。
-
停止需要重置密码的实例。
-
将根卷与需要重置密码的实例分离。
-
将步骤 4 中分离的根卷附加到步骤 1 中的临时帮助程序实例上。
-
下载 EC2Rescue 并运行 EC2Rescue 可执行文件来解压缩 zip 文件。
-
运行 EC2Rescue 实用程序。选择脱机实例,然后选择附加到临时帮助程序实例的根 EBS 卷。
-
选择诊断和救援。在检测可能的问题中,选中 Ec2SetPassword 复选框,然后选择下一步。
-
完成 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