AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWSSupport-ResetAccess

描述

此文档在指定的 EC2 实例上使用 EC2Rescue 工具,通过 EC2 控制台 (Windows) 或生成并添加新 SSH 密钥对 (Linux) 的方式重新启用密码解密。如果丢失了密钥对,则此 Automation 将创建一个启用了密码的 AMI,您可以使用此 AMI 启动具有您拥有的密钥对的新 EC2 实例 (Windows)。

文档类型

Automation

所有者

Amazon

平台

Windows、Linux

参数

  • 实例 ID

    类型:字符串

    说明:(必需)要重置其访问权限的 EC2 实例的 ID。

    重要

    Systems Manager Automation 会停止此实例,并在尝试任何操作前创建一个 AMI。存储在实例存储卷中的数据将丢失。如果不使用弹性 IP,则公有 IP 地址将发生更改。

  • SubnetId

    类型:字符串

    默认值:CreateNewVPC

    说明:(可选)EC2Rescue 实例的子网 ID。默认情况下,Systems Manager Automation 会创建一个新 VPC。或者,您也可以使用 SelectedInstanceSubnet 来使用实例所在的子网,或指定一个自定义的子网 ID。

    重要

    子网必须与 InstanceId 位于同一可用区中,并且必须允许访问 SSM 终端节点。

  • EC2RescueInstanceType

    类型:字符串

    允许的值:t2.small、t2.medium、t2.large

    默认值:t2.small

    说明:(必需)EC2Rescue 实例的 EC2 实例类型。建议大小:t2.small。

  • AssumeRole

    类型:字符串

    说明:(可选)此执行的 IAM 角色。如果未指定任何角色,则 AWS Systems Manager Automation 将使用运行此文档的用户的权限。

示例

为 Windows 启用 EC2 密码生成

aws ssm start-automation-execution --document-name AWSSupport-ResetAccess --parameters 'InstanceId=WINDOWSINSTANCEID'

为 Windows 启用 EC2 密码生成,并为 EC2Rescue 实例使用提供的实例子网

aws ssm start-automation-execution --document-name AWSSupport-ResetAccess --parameters 'InstanceId=WINDOWSINSTANCEID,SubnetId=SelectedInstanceSubnet'

为 Linux 生成新的 SSH 密钥

aws ssm start-automation-execution --document-name AWSSupport-ResetAccess --parameters 'InstanceId=LINUXINSTANCEID'

为 Linux 生成新的 SSH 密钥,并为 EC2Rescue 实例使用提供的实例子网

aws ssm start-automation-execution --document-name AWSSupport-ResetAccess --parameters 'InstanceId=LINUXINSTANCEID,SubnetId=SelectedInstanceSubnet'

检索执行输出

aws ssm get-automation-execution --automation-execution-id EXECUTIONID --output text --query 'AutomationExecution.Output'

所需的 IAM 权限

您必须至少具有 ssm:ExecuteAutomationssm:GetParameter 才能检索 SSH 密钥参数名称,并且需要具有 ssm:GetAutomationExecution 才能读取 Automation 输出。有关所需权限的更多信息,请参阅AWSSupport-StartEC2RescueWorkflow

文档步骤

  1. aws:assertAwsResourceProperty - 断言提供的实例为 Windows。

    1. (EC2Rescue for Windows) 如果提供的实例是 Windows:

      1. aws:executeAutomation - 使用 EC2Rescue for Windows 离线密码重置脚本调用 AWSSupport-StartEC2RescueWorkflow

      2. aws:executeAwsApi - 从嵌套的 Automation 检索备份 AMI ID

      3. aws:executeAwsApi - 从嵌套的 Automation 检索启用了密码的 AMI ID

      4. aws:executeAwsApi - 从嵌套的 Automation 检索 EC2Rescue 摘要

    2. (EC2Rescue for Linux) 如果提供的实例是 Linux:

      1. aws:executeAutomation - 使用 EC2Rescue for Linux 离线 SSH 密钥注入脚本调用 AWSSupport-StartEC2RescueWorkflow

      2. aws:executeAwsApi - 从嵌套的 Automation 检索备份 AMI ID

      3. aws:executeAwsApi - 检索注入的 SSH 密钥的 SSM 参数名称

      4. aws:executeAwsApi - 从嵌套的 Automation 检索 EC2Rescue 摘要

输出

getEC2RescueForWindowsResult.Output

getWindowsBackupAmi.ImageId

getWindowsPasswordEnabledAmi.ImageId

getEC2RescueForLinuxResult.Output

getLinuxBackupAmi.ImageId

getLinuxSSHKeyParameter.Name