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

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

AWSSupport-EnableWindowsEC2SerialConsole

描述

该运行手册AWSSupport-EnableWindowsEC2SerialConsole可帮助您在亚马逊 EC2 Windows 实例上启用亚马逊 EC2 串行控制台、特殊管理控制台 (SAC) 和启动菜单。借助 Amazon Elastic Compute Cloud (Amazon EC2) 串行控制台功能,您可以访问亚马逊 EC2 实例的串行端口,以解决启动、网络配置和其他问题。运行手册自动执行在处于运行状态并由管理的实例以及处于停止状态或未由 AWS Systems Manager管理的实例上启用该功能所需的步骤。 AWS Systems Manager

如何工作?

AWSSupport-EnableWindowsEC2SerialConsole自动化运行手册有助于在运行微软 Windows Server 的亚马逊 EC2 实例上启用 SAC 和启动菜单。对于处于运行状态且由管理的实例 AWS Systems Manager,运行手册会运行 R AWS Systems Manager un Command PowerShell 脚本来启用 SAC 和启动菜单。对于处于停止状态或未由管理的实例 AWS Systems Manager,运行手册使用 AWSSupport-Startec2 创建一个临时 Amazon EC2 RescueWorkflow 实例,以离线执行所需的更改。

有关更多信息,请参阅适用于 Windows 实例的 Amazon EC2 串行控制台。

重要
  • 如果您在实例上启用 SAC,则依赖密码检索的 Amazon EC2 服务将无法在 Amazon EC2 控制台上运行。有关更多信息,请参阅使用 SAC 排查 Windows 实例的问题

  • 要配置对串行控制台的访问权限,您必须在账户级别授予串行控制台访问权限,然后配置 AWS Identity and Access Management (IAM) 策略以向您的用户授予访问权限。您还必须在每个实例上配置基于密码的用户,以使您的用户能够使用串行控制台进行故障排查。有关更多信息,请参阅配置对 Amazon EC2 串行控制台的访问权限。

  • 要查看您的账户是否启用了串行控制台,请参阅查看串行控制台的账户访问状态。

  • 只有在 Nitro 系统上构建的虚拟化实例才支持串行控制台访问。

有关更多信息,请参阅 Amazon EC2 串行控制台先决条件。

文档类型

自动化

所有者

Amazon

平台

Windows

参数

所需的 IAM 权限

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingInstances", "ec2:GetSerialConsoleAccessStatus", "ec2:Describe*", "ec2:createTags", "ec2:createImage", "ssm:DescribeAutomationExecutions", "ssm:DescribeInstanceInformation", "ssm:GetAutomationExecution", "ssm:ListCommandInvocations", "ssm:ListCommands" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume", "ec2:ModifyInstanceAttribute", "ec2:RebootInstances", "ec2:StartInstances", "ec2:StopInstances", "iam:GetInstanceProfile", "ssm:GetParameters", "ssm:SendCommand", "ssm:StartAutomationExecution" ], "Resource": [ "arn:${Partition}:ec2:${Region}:${AccountId}:instance/${InstanceId}", "arn:${Partition}:ec2:${Region}:${AccountId}:volume/${VolumeId}", "arn:${Partition}:iam::${AccountId}:instance-profile/${InstanceProfileName}", "arn:${Partition}:ssm:${Region}::parameter/aws/service/*", "arn:${Partition}:ssm:${Region}::automation-definition/AWSSupport-StartEC2RescueWorkflow:*", "arn:${Partition}:ssm:${Region}::document/AWS-ConfigureAWSPackage", "arn:${Partition}:ssm:${Region}::document/AWS-RunPowerShellScript" ] }, { "Effect": "Allow", "Action": [ "cloudformation:CreateStack" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/Name": "AWSSupport-EC2Rescue: *" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "AWSSupport-EC2Rescue-AutomationExecution", "Name" ] } } }, { "Effect": "Allow", "Action": [ "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "ec2:AttachVolume", "ec2:DetachVolume", "ec2:RebootInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:SendCommand" ], "Resource": "*", "Condition": { "StringLike": { "aws:ResourceTag/Name": "AWSSupport-EC2Rescue: *" } } }, { "Effect": "Allow", "Action": [ "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:RunInstances" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "cloudformation.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "iam:PassedToService": [ "ssm.amazonaws.com", "ec2.amazonaws.com" ] } } } ] }

说明

按照这些步骤对自动化进行配置:

  1. 导航到 AWS Systems Manager 控制台AWSSupport-EnableWindowsEC2SerialConsole中的。

  2. 选择 Execute automation(执行自动化)。

  3. 对于输入参数,请输入以下内容:

    • InstanceId:(必填)

      您要启用亚马逊 EC2 串行控制台、(SAC) 和启动菜单的 Amazon EC2 实例的 ID。

    • AutomationAssumeRole:(可选)

      允许 Systems Manager Automation 代表您执行操作的 IAM 角色的亚马逊资源名称 (ARN)。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。

    • HelperInstanceType:(视情况而定)

      运行手册预配置的 Amazon EC2 实例的类型,用于为离线实例配置 Amazon EC2 串行控制台。

    • HelperInstanceProfileName:(视情况而定)

      帮助程序实例的现有 IAM 实例配置文件的名称。如果您在处于停止状态或不由管理的实例上启用 SAC 和启动菜单 AWS Systems Manager,则这是必需的。如果未指定 IAM 实例配置文件,则自动化会代表您创建一个。

    • SubnetId:(视情况而定)

      帮助程序实例的子网 ID。默认情况下,它使用的子网与所提供的实例所在的子网相同。

      重要

      如果您提供自定义子网,则该子网必须与位于同一个可用区中 InstanceId,并且必须允许访问 Systems Manager 端点。只有当目标实例处于停止状态或不是由管理时,才需要这样做 AWS Systems Manager。

    • CreateInstanceBackupBeforeScriptExecution:(可选)

      指定 True 可在启用 SAC 和启动菜单之前创建 Amazon EC2 实例的亚马逊系统映像 (AMI) 备份。Automation 完成后,AMI 仍将存在。您有责任保护对 AMI 的访问权限或将其删除。

    • BackupAmazonMachineImagePrefix:(视情况而定)

      如果将CreateInstanceBackupBeforeScriptExecution参数设置为,则创建的 Amazon 系统映像 (AMI) 的前缀True

    Input parameters for configuring EC2 serial console, including instance ID and IAM role settings.
  4. 选择执行。

  5. 自动化启动。

  6. 文档将执行以下步骤:

    • CheckIfEc2SerialConsoleAccessEnabled:

      检查是否在账户级别启用了 Amazon EC2 串行控制台访问权限。注意:默认情况下,无法访问串行控制台。有关更多信息,请参阅配置对 Amazon EC2 串行控制台的访问权限。

    • CheckIfEc2InstanceIsWindows:

      断言目标实例平台是否是 Windows。

    • GetInstanceType:

      检索目标实例的实例类型。

    • CheckIfInstanceTypeIsNitro:

      检查实例类型虚拟机管理程序是否基于 Nitro。仅在 Nitro 系统上构建的虚拟化实例支持串行控制台访问。

    • CheckIfInstanceIsInAutoScaling群组:

      通过调用 DescribeAutoScalingInstances API 来检查 Amazon EC2 实例是否属于 Amazon EC2 Auto Scaling 组。如果该实例是 Amazon EC2 Auto Scaling 组的一部分,则它可以确保.NET 实例的移植助手处于待机生命周期状态。

    • WaitForEc2InstanceStateStablized:

      等待实例进入运行或停止状态。

    • GetEc2InstanceState:

      获取实例的当前状态。

    • BranchOnEc2InstanceState:

      基于上一步中检索到的实例状态进行分支。如果该实例状态正在运行,则进入CheckIfEc2InstanceIsManagedBySSM步骤,如果没有,则进入该CheckIfHelperInstanceProfileIsProvided步骤。

    • CheckIfEc2 InstanceIsManagedBy SSM:

      检查实例是否由管理 AWS Systems Manager。如果是托管的,则运行手册使用 PowerShell 运行命令启用 SAC 和启动菜单。

    • BranchOnPreEC2RescueBackup:

      基于CreateInstanceBackupBeforeScriptExecution输入参数进行分支。

    • CreateAmazonMachineImageBackup:

      创建实例的 AMI 备份。

    • 启用 S AndBootMenu AC:

      通过 PowerShell 运行命令脚本启用 SAC 和启动菜单。

    • RebootInstance:

      重新启动 Amazon EC2 实例以应用配置。如果实例处于联机状态并且由管理,则这是最后一步 AWS Systems Manager。

    • CheckIfHelperInstanceProfileIsProvided:

      在使用临时 Amazon EC2 实例离线启用 SAC 和启动菜单之前,请检查HelperInstanceProfileName指定的是否存在。

    • RunAutomationToInjectOfflineScriptFor启用 SACAndBootMenu:

      当实例处于停止状态或未由 AWS Systems Manager管理时,运行启用 SAC 和启动菜单。AWSSupport-StartEC2RescueWorkflow

    • GetExecutionDetails:

      检索备份和脱机脚本输出的图像 ID。

  7. 完成后,请查看 “输出” 部分,了解执行的详细结果:

    • 启用 SAC。输出AndBootMenu:

      EnableSACAndBootMenu步骤中执行命令的输出。

    • GetExecutionDetails.OfflineScriptOutput:

      RunAutomationToInjectOfflineScriptForEnablingSACAndBootMenu步骤中执行的离线脚本的输出。

    • GetExecutionDetails.BackupBeforeScriptExecution:

      如果CreateInstanceBackupBeforeScriptExecution输入参数为 True,则拍摄的 AMI 备份的映像 ID。

在运行和管理的实例上执行的输出 AWS Systems Manager

Console output showing successful operations and pending execution details.

在已停止或未由管理的实例上执行的输出 AWS Systems Manager

Console output showing offline script execution details and successful operations.

参考

Systems Manager Automation