AWSSupport-TroubleshootSSH - AWS Systems Manager 自动化运行手册参考

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWSSupport-TroubleshootSSH

描述

AWSSupport-TroubleshootSSH 运行手册安装适用于 Linux 的 Amazon EC2Rescue工具,使用该工具检查或尝试修复阻止通过 SSH 远程连接到 Linux 计算机的常见问题。(可选)如果用户明确允许进行离线修复,则可以通过停止和启动实例来离线应用更改。默认情况下,运行手册以只读模式运行。

运行此自动化(控制台)

有关使用 AWSSupport-TroubleshootSSH 运行手册的信息,请参阅来自 AWS Premium Support 的此 AWSSupport-TroubleshootSSH故障排除主题

文档类型

自动化

所有者

Amazon

平台

Linux

参数

  • 操作

    类型:字符串

    有效值:CheckAll | FixAll

    默认值:CheckAll

    说明:(必需)指定只检查而不修复问题还是检查并自动修复任何发现的问题。

  • AllowOffline

    类型:字符串

    有效值:true | false

    原定设置值:false

    说明:(可选)仅修复 - 如果当在线故障排除失败或提供的实例不是托管实例时允许进行离线 SSH 修复,请将其设置为 true。注意:对于离线修复,SSM Automation 会停止实例,并在尝试任何操作前创建一个 AMI。

  • AutomationAssumeRole

    类型:字符串

    描述:(可选)允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称(ARN)。如果未指定任何角色,则 Systems Manager Automation 使用启动此运行手册的用户的权限。

  • InstanceId

    类型:字符串

    说明:(必需)您的 Linux EC2 实例的 ID。

  • S3BucketName

    类型:字符串

    说明:(可选)仅离线 - 您账户中用于上传故障排除日志的 S3 存储桶的名称。请确保存储桶策略不会向不需要访问收集的日志的各方授予不必要的读/写权限。

  • SubnetId

    类型:字符串

    默认值:SelectedInstanceSubnet

    说明:(可选)仅离线 - 用于执行离线故障排除的 EC2Rescue 实例的子网 ID。如果未指定子网 ID,AWS Systems Manager Automation 将创建一个新 VPC。

    重要

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

所需的 IAM 权限

AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。

建议接收命令的 EC2 实例具有一个附加了 AmazonSSMManagedInstanceCore Amazon 托管策略的 IAM 角色。对于在线修复,用户必须至少具有 ssm:DescribeInstanceInformationssm:StartAutomationExecutionssm:SendCommand 才能运行此 Automation 并将命令发送到实例,并且需要具有 ssm:GetAutomationExecution 才能读取 Automation 输出。对于离线修复,用户必须至少具有 ssm:DescribeInstanceInformationssm:StartAutomationExecutionec2:DescribeInstances 以及 ssm:GetAutomationExecution 才能读取自动化输出。AWSSupport-TroubleshootSSH 调用 AWSSupport-ExecuteEC2Rescue 以执行离线修复 — 请查看 AWSSupport-ExecuteEC2Rescue 的权限以确保您可以成功运行自动化。

文档步骤

  1. aws:assertAwsResourceProperty - 检查实例是否为托管实例

    1. (在线修复)如果实例为托管实例,则:

      1. aws:configurePackage - 通过 AWS-ConfigureAWSPackage 安装适用于 Linux 的 EC2Rescue。

      2. aws:runCommand - 运行 bash 脚本来运行适用于 Linux 的 EC2Rescue。

    2. (离线修复)如果实例并非托管实例,则:

      1. aws:assertAwsResourceProperty - 断言AllowOffline = true

      2. aws:assertAwsResourceProperty - 断言 Action = FixAll

      3. aws:assertAwsResourceProperty - 断言 SubnetId 的值

      4. (使用提供的实例的子网)如果 SubnetId 为 SelectedInstanceSubnet,则使用 aws:executeAutomation 通过提供的实例的子网运行 AWSSupport-ExecuteEC2Rescue

      5. (使用提供的自定义子网)如果 SubnetId 不是 SelectedInstanceSubnet,则使用 aws:executeAutomation 通过提供的子网值运行 AWSSupport-ExecuteEC2Rescue

输出

troubleshootSSH.Output

troubleshootSSHOffline.Output

troubleshootSSHOfflineWithSubnetId.Output