如何重置 EC2 Windows 实例的管理员密码?
我想重置 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 重置管理员密码,请完成以下步骤:
-
将以下策略附加到与实例关联的 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。
-
在导航窗格中,选择 Run Command。
-
选择 Run a Command(运行命令)。
-
对于 Command document(命令文档),选择 AWSSupport-RunEC2RescueForWindowsTool。
-
对于 Command parameters(命令参数),请验证 Command 是否设置为 ResetAccess。
-
对于 Targets(目标),选择 Choose instances manually(手动选择实例),然后选择您的实例。
-
选择 Run(运行)。
-
在 Targets and outputs(目标与输出)部分中,选择您实例的 Instance ID(实例 ID)。
-
选择 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 重置您的密码,请完成以下步骤:
- 打开 Systems Manager 控制台。
- 在导航窗格中,选择自动化。
- 选择 Execute automation(执行自动化)。
- 对于 Automation document(自动化文档),选择 AWSSupport-ResetAccess,然后选择 Next(下一步)。
- 对于 Input parameters(输入参数),输入您的 EC2 实例的 InstanceID。
- 选择 Execute(执行)。
- 耐心等待,直至状态变为 Success(成功)。这最长可能需要 25 分钟。
注意: 在执行详细信息页面上,查看已执行步骤以监控进度。展开输出以查看自动化的输出。要返回此页面,请打开 Systems Manager 控制台,然后从导航窗格中选择自动化。选择正在运行的自动化,然后选择 View details(查看详细信息)。 - 使用您的现有密钥对通过 Amazon EC2 控制台为新生成的密码解码。有关详细信息,请参阅启动 EC2 实例后如何找回我的 Windows 管理员密码?
丢失 Amazon EC2 密钥对
如果您丢失 Amazon EC2 密钥对,请完成以下步骤:
- 停止实例。
- 打开 Amazon EC2 控制台,然后选择 AMI。
- 搜索您的实例 ID。
- 选择名为 AWSSupport-EC2Rescue-Post-Script-Backup-i-#########_Date 的 AMI,然后选择 Launch(启动)。
- 按照启动向导进行操作,指定您的实例配置,然后选择您拥有的密钥对。
- 在终止其他实例之前,验证您是否能够连接到新实例,以及您的应用程序是否按预期运行。
EC2Rescue(离线或在线方法)
要在下次启动实例时使用 EC2Rescue 重置管理员密码,请完成以下步骤:
- 创建临时帮助程序实例,该实例与您要重置密码的实例位于同一个可用区。或者,您可以使用位于同一可用区的具有远程桌面协议 (RDP) 访问权限的实例。
- 为需要重置密码的实例拍摄快照或创建 AMI 备份。
- 停止需要重置密码的实例。
- 将根卷与需要重置密码的实例分离。
- 将步骤 4 中的根卷附加到步骤 1 中的临时帮助程序实例上。
- 下载 EC2Rescue 并运行 EC2Rescue 可执行文件来解压缩 zip 文件。
- 运行 EC2Rescue 工具。选择 Offline Instance(脱机实例),然后选择附加到临时帮助程序实例的根 EBS 卷。
- 选择 Diagnose and Rescue(诊断和救援)。在 Detect possible issues(检测可能的问题)中,选中 Ec2SetPassword 复选框,然后选择 Next(下一步)。
- 完成 EC2Rescue 启动向导。然后,将根 EBS 卷连接回原始实例以验证新密码。
有关详细信息,请参阅如何使用 EC2Rescue 解决我的 Amazon EC2 Windows 实例的问题?
托管节点(在线方法)
您可以为 Amazon EC2 实例的托管节点上的任何用户重置密码。在使用此选项之前,请务必确认您满足所有先决条件:
-
在导航窗格中,选择 Fleet Manager。
-
选择需要新密码的节点。
-
在 Node actions(节点操作)菜单中,选择 Node Settings(节点设置)。然后,选择 Reset Node User Password(重置节点用户密码)。
**注意:**要使用“重置密码”功能,必须进行加密。在会话管理器首选项页面上配置 AWS Key Management Service (AWS KMS) 密钥。 -
将以下策略附加到与实例关联的 IAM 角色以进行解密:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKMSDecrypt", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:REGION:AccountID:key/KeyId" } ] }附加到实例的实例配置文件或 IAM 角色必须具有您在为会话管理器配置加密时指定的密钥的 kms:Decrypt 权限。
-
对于 User name(用户名),从列表中选择一个用户名或输入要更改密码的用户名。这可以是任何在节点上有账户的用户名。
-
选择 Submit(提交)。
-
按照 Enter new password(输入新密码)命令窗口中的提示指定新密码。
相关信息
适用于 Amazon EC2 的 Identity and Access Management
相关内容
- 已提问 2 年前

