

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

# Amazon EC2
<a name="automation-ref-ec2"></a>

 AWS Systems Manager Automation 为 Amazon 弹性计算云提供了预定义的运行手册。Amazon Elastic Block Store 的运行手册位于《运行手册参考》[Amazon EBS](automation-ref-ebs.md)部分。有关运行手册的更多信息，请参阅[使用运行手册](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。有关如何查看运行手册内容的信息，请参阅 [查看运行手册内容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-ASGEnterStandby`](automation-aws-asgenterstandby.md)
+ [`AWS-ASGExitStandby`](automation-aws-asgexitstandby.md)
+ [`AWS-CreateImage`](automation-aws-createimage.md)
+ [`AWS-DeleteImage`](automation-aws-deleteimage.md)
+ [`AWS-PatchAsgInstance`](automation-aws-patchasginstance.md)
+ [`AWS-PatchInstanceWithRollback`](automation-aws-patchinstancewithrollback.md)
+ [`AWS-QuarantineEC2Instance`](aws-quarantineec2instance.md)
+ [`AWS-ResizeInstance`](automation-aws-resizeinstance.md)
+ [`AWS-RestartEC2Instance`](automation-aws-restartec2instance.md)
+ [`AWS-SetupJupyter`](aws-setup-jupyter.md)
+ [`AWS-StartEC2Instance`](automation-aws-startec2instance.md)
+ [`AWS-StopEC2Instance`](automation-aws-stopec2instance.md)
+ [`AWS-TerminateEC2Instance`](automation-aws-terminateec2instance.md)
+ [`AWS-UpdateLinuxAmi`](automation-aws-updatelinuxami.md)
+ [`AWS-UpdateWindowsAmi`](automation-aws-updatewindowsami.md)
+ [`AWSConfigRemediation-EnableAutoScalingGroupELBHealthCheck`](automation-aws-enable-asg-health-check.md)
+ [`AWSConfigRemediation-EnforceEC2InstanceIMDSv2`](automation-aws-enforce-ec2-imdsv2.md)
+ [`AWSEC2-CloneInstanceAndUpgradeSQLServer`](automation-awsec2-CloneInstanceAndUpgradeSQLServer.md)
+ [`AWSEC2-CloneInstanceAndUpgradeWindows`](automation-awsec2-CloneInstanceAndUpgradeWindows.md)
+ [`AWSEC2-PatchLoadBalancerInstance`](automation-awsec2-patch-load-balancer-instance.md)
+ [`AWSEC2-SQLServerDBRestore`](automation-awsec2-sqlserverdbrestore.md)
+ [`AWSSupport-ActivateWindowsWithAmazonLicense`](automation-awssupport-activatewindowswithamazonlicense.md)
+ [`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`](automation-awssupport-analyzeawsendpointreachabilityfromec2.md)
+ [`AWSPremiumSupport-ChangeInstanceTypeIntelToAMD`](automation-aws-changeinstancetypeinteltoamd.md)
+ [`AWSSupport-CheckXenToNitroMigrationRequirements`](automation-awssupport-checkxentonitromigrationrequirements.md)
+ [`AWSSupport-CloneXenEC2InstanceAndMigrateToNitro`](automation-awssupport-clonexenec2instanceandmigratetonitro.md)
+ [`AWSSupport-ConfigureEC2Metadata`](automation-awssupport-configureec2metadata.md)
+ [`AWSSupport-ContainEC2Instance`](automation-awssupport-containec2instance.md)
+ [`AWSSupport-CopyEC2Instance`](automation-awssupport-copyec2instance.md)
+ [`AWSPremiumSupport-DiagnoseDiskUsageOnLinux`](automation-awspremiumsupport-diagnosediskusageonlinux.md)
+ [`AWSSupport-EnableWindowsEC2SerialConsole`](automation-enable-windows-ec2-serial-console.md)
+ [`AWSPremiumSupport-ExtendVolumesOnWindows`](automation-awspremiumsupport-extendvolumesonwindows.md)
+ [`AWSSupport-ExecuteEC2Rescue`](automation-awssupport-executeec2rescue.md)
+ [`AWSSupport-ListEC2Resources`](automation-awssupport-listec2resources.md)
+ [`AWSSupport-ManageRDPSettings`](automation-awssupport-managerdpsettings.md)
+ [`AWSSupport-ManageWindowsService`](automation-awssupport-managewindowsservice.md)
+ [`AWSSupport-MigrateEC2ClassicToVPC`](automation-awssupport-migrate-ec2-classic-to-vpc.md)
+ [`AWSSupport-MigrateXenToNitroLinux`](automation-awssupport-migrate-xen-to-nitro.md)
+ [`AWSSupport-ResetAccess`](automation-awssupport-resetaccess.md)
+ [`AWSSupport-ResetLinuxUserPassword`](automation-awssupport-resetlinuxuserpassword.md)
+ [`AWSSupport-RunEC2RescueForWindowsTool`](automation-awssupport-runec2rescueforwindowstool.md)
+ [`AWSPremiumSupport-ResizeNitroInstance`](automation-aws-resizenitroinstance.md)
+ [`AWSSupport-ShareEncryptedAMIOrEBSSnapshot`](awssupport-share-encrypted-ami-or-ebs-snapshot.md)
+ [`AWSSupport-RestoreEC2InstanceFromSnapshot`](automation-awssupport-restoreec2instancefromsnapshot.md)
+ [`AWSSupport-SendLogBundleToS3Bucket`](automation-awssupport-sendlogbundletos3bucket.md)
+ [`AWSSupport-StartEC2RescueWorkflow`](automation-awssupport-startec2rescueworkflow.md)
+ [`AWSSupport-TroubleshootActiveDirectoryReplication`](automation-aws-troubleshootactivedirectoryreplication.md)
+ [`AWSPremiumSupport-TroubleshootEC2DiskUsage`](automation-awspremiumsupport-troubleshootEC2diskusage.md)
+ [`AWSSupport-TroubleshootEC2InstanceConnect`](automation-troubleshoot-ec2-instance-connect.md)
+ [`AWSSupport-TroubleshootLinuxMGNDRSAgentLogs`](automation-troublshoot-linux-mngdrs-agent-logs.md)
+ [`AWSSupport-TroubleshootRDP`](automation-awssupport-troubleshootrdp.md)
+ [`AWSSupport-TroubleshootSSH`](automation-awssupport-troubleshootssh.md)
+ [`AWSSupport-TroubleshootSUSERegistration`](automation-awssupport-troubleshoot-suse-registration.md)
+ [`AWSSupport-TroubleshootWindowsPerformance`](awssupport-troubleshoot-windows-performance.md)
+ [`AWSSupport-TroubleshootWindowsUpdate`](awssupport-troubleshoot-windows-update.md)
+ [`AWSSupport-UpgradeWindowsAWSDrivers`](automation-awssupport-upgradewindowsawsdrivers.md)

# `AWS-ASGEnterStandby`
<a name="automation-aws-asgenterstandby"></a>

**描述**

在 Auto Scaling 组中更改亚马逊弹性计算云 (Amazon EC2) 实例的待机状态。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ASGEnterStandby)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（必填）您要在 Auto Scaling 组中更改其备用状态的 Amazon EC2 实例的 ID。
+ LambdaRoleArn

  类型：字符串

  描述：（可选）允许 Automation 创建的 Lambda 代表您执行操作的角色的 ARN。如果未指定，将创建临时角色来运行 Lambda 函数。

# `AWS-ASGExitStandby`
<a name="automation-aws-asgexitstandby"></a>

**描述**

在 Auto Scaling 组中更改亚马逊弹性计算云 (Amazon EC2) 实例的待机状态。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ASGExitStandby)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（必填）要在 Auto Scaling 组中更改其备用状态的 EC2 实例的 ID。
+ LambdaRoleArn

  类型：字符串

  描述：（可选）允许 Automation 创建的 Lambda 代表您执行操作的角色的 ARN。如果未指定，将创建临时角色来运行 Lambda 函数。

# `AWS-CreateImage`
<a name="automation-aws-createimage"></a>

**描述**

co从 Amazon Elastic Compute Cloud (Amazon EC2) 实例创建新 Amazon Machine Image (AMI)。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateImage)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  说明：（必需）EC2 实例的 ID。
+ NoReboot

  类型：布尔值

  说明：（可选）创建映像前，不要重启实例。

**所需的 IAM 权限**

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateImage",
                "ec2:DescribeImages"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

# `AWS-DeleteImage`
<a name="automation-aws-deleteimage"></a>

**描述**

删除 Amazon Machine Image (AMI) 和所有关联的快照。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DeleteImage)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  说明：（必需）AMI 的 ID。

**所需的 IAM 权限**

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteSnapshot",
            "Resource": "arn:aws:ec2:*:*:snapshot/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeImages",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DeregisterImage",
            "Resource": "*"
        }
    ]
}
```

------

# `AWS-PatchAsgInstance`
<a name="automation-aws-patchasginstance"></a>

**描述**

在 Auto Scaling 组中修补亚马逊弹性计算云 (Amazon EC2) 实例。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-PatchAsgInstance)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  说明：（必需）要修补的实例的 ID。不要指定配置为在维护时段期间运行的实例 ID。
+ LambdaRoleArn

  类型：字符串

  说明：（可选）允许 Automation 创建的 Lambda 代表您执行操作的角色的 ARN。如果未指定，将创建临时角色来运行 Lambda 函数。
+ WaitForInstance

  类型：字符串

  默认值： PT2M

  说明：（可选）Automation 应休眠以允许实例重新进入运行状态的持续时间。
+ WaitForReboot

  类型：字符串

  默认值： PT5M

  说明：（可选）Automation 应休眠以允许修补后的实例进行重启的持续时间。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ssm:GetCommandInvocation`
+ `ssm:GetParameter`
+ `ssm:SendCommand`
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStacks`
+ `ec2:CreateTags`
+ `ec2:DescribeInstances`
+ `ec2:RunInstances`
+ `iam:AttachRolePolicy`
+ `iam:CreateRole`
+ `iam:DeleteRole`
+ `iam:DeleteRolePolicy`
+ `iam:DetachRolePolicy`
+ `iam:GetRole`
+ `iam:PassRole`
+ `iam:PutRolePolicy`
+ `lambda:CreateFunction`
+ `lambda:DeleteFunction`
+ `lambda:GetFunction`
+ `lambda:InvokeFunction`

# `AWS-PatchInstanceWithRollback`
<a name="automation-aws-patchinstancewithrollback"></a>

**描述**

使 EC2 实例符合适用的补丁基准。失败时对根卷进行回滚。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-PatchInstanceWithRollback)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（必填） EC2 InstanceId ，我们对其应用补丁基线。
+ LambdaAssumeRole

  类型：字符串

  描述：（可选）允许 Automation 创建的 Lambda 代表您执行操作的角色的 ARN。如果未指定，将创建临时角色来运行 Lambda 函数。
+ ReportS3Bucket

  类型：字符串

  说明：（可选）过程期间生成的合规性报告的 Amazon S3 存储桶目标。

**文档步骤**


****  

| 步骤编号 | 步骤名称 | 自动化操作 | 
| --- | --- | --- | 
|  1  |  createDocumentStack  |  `aws:createStack`  | 
|  2  |  IdentifyRootVolume  |  `aws:invokeLambdaFunction`  | 
|  3  |  PrePatchSnapshot  |  `aws:executeAutomation`  | 
|  4  |  installMissingUpdates  |  `aws:runCommand`  | 
|  5  |  SleepThruInstallation  |  `aws:invokeLambdaFunction`  | 
|  6  |  CheckCompliance  |  `aws:invokeLambdaFunction`  | 
|  7  |  SaveComplianceReportToS3  |  `aws:invokeLambdaFunction`  | 
|  8  |  ReportSuccessOrFailure  |  `aws:invokeLambdaFunction`  | 
|  9  |  RestoreFromSnapshot  |  `aws:invokeLambdaFunction`  | 
| 10 | DeleteSnapshot |  `aws:invokeLambdaFunction`  | 
|  11  |  deleteCloudFormation模板  |  `aws:deleteStack`  | 

**输出**

IdentifyRootVolume. 有效载荷

PrePatchSnapshot。输出

SaveComplianceReportToS3. 有效载荷

RestoreFromSnapshot. 有效载荷

CheckCompliance. 有效载荷

# `AWS-QuarantineEC2Instance`
<a name="aws-quarantineec2instance"></a>

 **描述** 

使用`AWS-QuarantineEC2Instance`运行手册，您可以为不允许任何入站或出站流量的亚马逊弹性计算云 (Amazon EC2) 实例分配安全组。

**重要**  
在运行此运行手册前，应仔细检查对 RDP 设置的更改。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-QuarantineEC2Instance)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  说明：（必需）要管理其 RDP 设置的托管实例的 ID。
+ IsolationSecurityGroup

  类型：字符串

  描述：（必需）您要分配给实例以防止入站或出站流量的安全组的名称。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `autoscaling:DescribeAutoScalingInstances`
+ `autoscaling:DetachInstances`
+ `ec2:CreateSecurityGroup`
+ `ec2:CreateSnapshot`
+ `ec2:DescribeInstances`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSnapshots`
+ `ec2:ModifyInstanceAttribute`
+ `ec2:RevokeSecurityGroupEgress`
+ `ec2:RevokeSecurityGroupIngress`

 **文档步骤** 
+ `aws:executeAwsApi` - 收集有关该实例的详细信息。
+ `aws:executeScript` - 验证该实例是否为自动扩缩组的一部分。
+ `aws:executeAwsApi` - 创建附加到该实例的根卷的一个快照。
+ `aws:waitForAwsResourceProperty` - 等待快照状态处于 `completed`。
+ `aws:executeAwsApi` - 将 `IsolationSecurityGroup` 参数中指定的安全组分配给您的实例。

 **输出** 

`GetEC2InstanceResources.RevokedSecurityGroupsIds`

`GetEC2InstanceResources.RevokedSecurityGroupsNames`

`createSnapshot.SnapId`

# `AWS-ResizeInstance`
<a name="automation-aws-resizeinstance"></a>

**描述**

更改亚马逊弹性计算云 (Amazon EC2) 实例的实例类型。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ResizeInstance)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  说明：（必需）实例的 ID。
+ InstanceType

  类型：字符串

  说明：（必需）实例类型。

# `AWS-RestartEC2Instance`
<a name="automation-aws-restartec2instance"></a>

**描述**

重启一个或多个亚马逊弹性计算云 (Amazon EC2) 实例。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-RestartEC2Instance)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型： StringList

  描述：（必填）要重启 IDs 的 Amazon EC2 实例。

# `AWS-SetupJupyter`
<a name="aws-setup-jupyter"></a>

 **描述** 

`AWS-SetupJupyter`运行手册可帮助你在亚马逊弹性计算云 (亚马 EC2逊) 实例上设置 Jupyter Notebook。您可以指定现有实例，也可以提供 Amazon Machine Image (AMI) 用于启动和设置新实例的自动化的 ID。开始之前，您必须先在 Parameter Store 中创建一个 `SecureString` 参数，用作 Jupyter 笔记本的密码。参数存储是一个工具 AWS Systems Manager。有关创建参数的更多信息，请参阅*AWS Systems Manager 用户指南*中的[创建参数](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html)。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-SetupJupyter)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（可选）的 ID AMI 你想用它来启动新实例和设置 Jupyter Notebook。
+ InstanceId

  类型：字符串

  说明：（必需）您想要设置 Jupyter 笔记本的实例的 ID。
+ InstanceType

  类型：字符串

  默认：t3.medium

  描述：（可选）如果您要启动新实例来设置 Jupyter 笔记本，则指定要使用的实例类型。
+ JupyterPasswordSSMKey

  类型：字符串

  描述：（必填）Parameter Store 中要用作 Jupyter 笔记本密码的 `SecureString` 参数的名称。
+ KeyPairName

  类型：字符串

  描述：（可选）要与新启动实例关联的密钥对。
+ RemoteAccessCidr

  类型：字符串

  默认：0.0.0.0/0

  描述：（可选）您希望允许 SSH 流量来自的 CIDR 范围。
+ RoleName

  类型：字符串

  默认： SSMManagedInstanceProfileRole

  描述：（可选）新启动实例的实例配置文件的名称。
+ StackName

  类型：字符串

  默认： CreateManagedInstanceStack\$1\$1自动化:execution\$1ID\$1\$1

  描述：（可选）您希望自动化使用的 CloudFormation 堆栈名称。
+ SubnetId

  类型：字符串

  默认：Default

  描述：（可选）您希望启动新实例以便使用的子网。
+ VpcId

  类型：字符串

  默认：Default

  描述：（可选）要将新实例启动到的虚拟私有云（VPC）的 ID。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:GetAutomationExecution`
+ `ssm:GetCommandInvocation`
+ `ssm:GetParameter`
+ `ssm:SendCommand`
+ `ssm:StartAutomationExecution`
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStacks`
+ `ec2:DescribeInstances`
+ `ec2:DescribeKeyPairs`
+ `ec2:RunInstances`
+ `iam:AttachRolePolicy`
+ `iam:CreateRole`
+ `iam:DeleteRole`
+ `iam:DeleteRolePolicy`
+ `iam:DetachRolePolicy`
+ `iam:GetRole`
+ `iam:PassRole`
+ `iam:PutRolePolicy`
+ `lambda:CreateFunction`
+ `lambda:DeleteFunction`
+ `lambda:GetFunction`
+ `lambda:InvokeFunction`

 **文档步骤** 
+ `aws:executeScript` - 使用您为运行手册输入参数指定的值，在您指定的实例上或新启动的实例上设置 Jupyter 笔记本。

# `AWS-StartEC2Instance`
<a name="automation-aws-startec2instance"></a>

**描述**

启动一个或多个亚马逊弹性计算云 (Amazon EC2) 实例。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-StartEC2Instance)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型： StringList

  描述：要启动的（必需） EC2 实例。

# `AWS-StopEC2Instance`
<a name="automation-aws-stopec2instance"></a>

**描述**

停止一个或多个亚马逊弹性计算云 (Amazon EC2) 实例。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-StopEC2Instance)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型： StringList

  描述：（必需）要停止的 EC2 实例。

# `AWS-TerminateEC2Instance`
<a name="automation-aws-terminateec2instance"></a>

**描述**

终止一个或多个亚马逊弹性计算云 (Amazon EC2) 实例。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-TerminateEC2Instance)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型： StringList

  描述：（必填）要终止 IDs 的一个或多个 EC2 实例。

# `AWS-UpdateLinuxAmi`
<a name="automation-aws-updatelinuxami"></a>

**描述**

使用 Linux 分发软件包和 Amazon 软件更新 Amazon Machine Image (AMI) 。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-UpdateLinuxAmi)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  允许的模式：`^$|^arn:aws[a-z0-9-]*:iam::(\d{12}|\{\{global:ACCOUNT_ID\}\}):role/[\w/.@+=,-]{1,1017}$`
  + 必须是有效的 IAM 角色 ARN 或空字符串。系统变量`{{global:ACCOUNT_ID}}`可用来代替 arn 中的 AWS 账户 ID。
+ ExcludePackages

  类型：字符串

  默认：无

  说明：（可选）在所有情况下从更新中排除的软件包的名称。默认值 ("none") 不排除任何软件包。

  允许的模式：`^(none|[a-zA-Z0-9\s,._+:=<>()\[\]/*-]+)$`
  + 必须为 “none” 或由字母、数字、空格和以下字符组成的以逗号分隔的项目列表：`, . _ + : = < > ( ) [ ] / * -`
+ IamInstanceProfileName

  类型：字符串

  默认： ManagedInstanceProfile

  说明：（必需）启用 Systems Manager 以管理实例的实例配置文件。

  允许的模式：`^[\w+=,.@-]{1,128}$`
  + 必须介于 1 到 128 个字符之间，并且仅包含字母、数字和以下字符：`+ = , . @ - _`
+ IncludePackages

  类型：字符串

  默认：all

  说明：（可选）仅更新这些指定的软件包。默认值 ("all") 将应用所有可用的更新。

  允许的模式：`^(all|[a-zA-Z0-9\s,._+:=<>()\[\]/*-]+)$`
  + 必须为 “all” 或由字母、数字、空格和以下字符组成的以逗号分隔的项目列表：`, . _ + : = < > ( ) [ ] / * -`
+ InstanceType

  类型：字符串

  默认：t2.micro

  说明：（可选）启动作为工作区主机的实例的类型。实例类型因区域而异。

  允许的模式：`^[a-z0-9]+(-[a-z0-9]+)*\.[a-z0-9]+$`
  + 必须采用 prefix.suffix 格式，其中两个部分都包含小写字母和数字，前缀可以包含连字符
+ MetadataOptions

  类型： StringMap

  默认：\$1” HttpEndpoint “: “已启用”，“HttpTokens“：“可选”\$1

  说明：（可选）实例的元数据选项。有关更多信息，请参阅 [InstanceMetadataOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html)。

  允许的模式：`^\{[^<>\$;|&\\]*\}$`
  + 必须用大括号 \$1\$1 括起来，并且不能包含以下字符：`< > $ ; | & \`
+ PostUpdateScript

  类型：字符串

  默认：无

  说明：（可选）在应用软件包更新后要运行的脚本的 URL。默认值 ("none") 不运行脚本。

  允许的模式：`^(none|https?://[\w\-._~:/?#\[\]@!$&'()*+,;=%]+)$`
  + 必须为 “无” 或有效的 HTTP/HTTPS 网址
+ PreUpdateScript

  类型：字符串

  默认：无

  说明：（可选）在更新前应用要运行的脚本的 URL。默认值 ("none") 不运行脚本。

  允许的模式：`^(none|https?://[\w\-._~:/?#\[\]@!$&'()*+,;=%]+)$`
  + 必须为 “无” 或有效的 HTTP/HTTPS 网址
+ SecurityGroupIds

  类型：字符串

  描述：（必填）要应用于的安全组 IDs 的列表，以逗号分隔。AMI

  允许的模式：`^sg-[a-z0-9]{8,17}$`
  + 必须以 “sg-” 开头，后跟 8-17 个小写字母或数字
+ SourceAmiId

  类型：字符串

  说明：（必需）源 Amazon 系统映像 ID。

  允许的模式：`^ami-[a-z0-9]{8,17}$`
  + 必须以 “ami-” 开头，后跟 8-17 个小写字母或数字
+ SubnetId

  类型：字符串

  描述：（可选）您希望启动实例以便使用的子网 ID。如果您已删除默认 VPC，则此参数是必需的。

  允许的模式：`^$|^subnet-[a-z0-9]{8,17}$`
  + 必须为空或者以 “subnet-” 开头，后跟 8-17 个小写字母或数字
+ TargetAmiName

  类型：字符串

  默认：UpdateLinuxAmi\$1from\$1 \$1\$1SourceAmiId\$1\$1 \$1on\$1 \$1global: date\$1Time\$1\$1

  说明：（可选）将创建的新 AMI 的名称。默认为系统生成的字符串，其中包括源 AMI ID 以及创建时间和日期。

  允许的模式：`^[a-zA-Z0-9()\[\]\{\} ./'@_:-]{3,128}$`
  + 必须介于 3 到 128 个字符之间，并且仅包含字母、数字、空格和以下字符：`( ) [ ] { } . / ' @ _ : -`

# `AWS-UpdateWindowsAmi`
<a name="automation-aws-updatewindowsami"></a>

**描述**

更新 Microsoft Windows Amazon Machine Image (AMI)。默认情况下，此运行手册安装所有 Windows 更新、Amazon 软件和 Amazon 驱动程序。然后，它运行 Sysprep 以创建新的 AMI。支持 Windows Server 2008 R2 到 Windows Server 2022。

**重要**  
本运行手册不支持 Windows Server 2025 及更高版本，因为 AWS Paravirtual 驱动程序与这些版本不兼容。有关更多信息，请参阅适用于 [Windows 实例的半虚拟化驱动程序](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html)。

**重要**  
如果您的实例 AWS Systems Manager 使用 VPC 终端节点连接，则除非在 us-east-1 区域中使用，否则本运行手册将失败。实例必须启用 TLS 1.2 才能使用此运行手册。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-UpdateWindowsAmi)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ 类别

  类型：字符串

  说明：（可选）指定一个或多个更新类别。可以使用逗号分隔值筛选类别。选项：应用程序、连接器、、、 CriticalUpdates DefinitionUpdates、驱动程序 DeveloperKits、、指南FeaturePacks、Microsoft SecurityUpdates、 ServicePacks、、、工具UpdateRollups、、更新。有效格式包括单个条目，例如：CriticalUpdates。或者你可以指定一个以逗号分隔的列表：CriticalUpdates, SecurityUpdates。注意：逗号两边不能有任何空格。
+ ExcludeKbs

  类型：字符串

  描述：（可选）指定要排除的一篇或多篇 Microsoft 知识库 (KB) 文章 IDs 。 IDs 您可以使用逗号分隔的值排除多个值。有效格式： KB9876543 或 9876543。
+ IamInstanceProfileName

  类型：字符串

  默认： ManagedInstanceProfile

  说明：（必需）启用 Systems Manager 以管理实例的角色名称。
+ IncludeKbs

  类型：字符串

  描述：（可选）指定要包含的一篇或多篇 Microsoft 知识库 (KB) 文章 IDs 。 IDs 您可以使用逗号分隔的值安装多个。有效格式： KB9876543 或 9876543。
+ InstanceType

  类型：字符串

  默认：t2.medium

  说明：（可选）启动作为工作区主机的实例的类型。实例类型因区域而异。默认为 t2.medium。
+ MetadataOptions

  类型： StringMap

  默认：\$1” HttpEndpoint “: “已启用”，“HttpTokens“：“可选”\$1

  说明：（可选）实例的元数据选项。有关更多信息，请参阅 [InstanceMetadataOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html)。
+ PostUpdateScript

  类型：字符串

  说明：（可选）以字符串形式提供的脚本。它将在安装操作系统更新后运行。
+ PreUpdateScript

  类型：字符串

  说明：（可选）以字符串形式提供的脚本。它将在安装操作系统更新前运行。
+ PublishedDateAfter

  类型：字符串

  说明：（可选）指定查找在此日期后发布的更新。例如，如果指定 01/01/2017，则返回在 Windows 更新搜索期间找到的在 01/01/2017 当天或之后发布的所有更新。
+ PublishedDateBefore

  类型：字符串

  说明：（可选）指定查找在此日期前发布的更新。例如，如果指定 01/01/2017，则返回在 Windows 更新搜索期间找到的在 01/01/2017 当天或之前发布的所有更新。
+ PublishedDaysOld

  类型：字符串

  说明：（可选）指定更新在发行日期后必须经过的天数。例如，如果指定 10，则返回在 Windows 更新搜索期间找到的已发布 10 天或更多天的所有更新。
+ SecurityGroupIds

  类型：字符串

  描述：（必填）要应用于的安全组 IDs 的列表，以逗号分隔。AMI
+ SeverityLevels

  类型：字符串

  说明：（可选）指定一个或多个与更新关联的 MSRC 严重性级别。可以使用逗号分隔值筛选严重性级别。默认情况下，将选择所有安全级别的补丁。如果提供了值，则使用这些值对更新列表进行筛选。选项：关键、重要、低、中或未指定。有效格式包括单个条目，例如：关键。或者，可以指定逗号分隔列表：关键,重要,低。
+ SourceAmiId

  类型：字符串

  描述：（必填）来源 AMI ID。
+ SubnetId

  类型：字符串

  描述：（可选）您希望启动实例以便使用的子网 ID。如果您已删除默认 VPC，则此参数是必需的。
+ TargetAmiName

  类型：字符串

  默认：UpdateWindowsAmi\$1from\$1 \$1\$1SourceAmiId\$1\$1 \$1on\$1 \$1global: date\$1Time\$1\$1

  说明：（可选）将创建的新 AMI 的名称。默认为系统生成的字符串，其中包括源 AMI ID 以及创建时间和日期。

# `AWSConfigRemediation-EnableAutoScalingGroupELBHealthCheck`
<a name="automation-aws-enable-asg-health-check"></a>

**描述**

`AWSConfigRemediation-EnableAutoScalingGroupELBHealthCheck`运行手册为您指定的 Amazon A EC2 uto Scaling（Auto Scaling）组启用运行状况检查。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableAutoScalingGroupELBHealthCheck)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ AutoScalingGroupARN

  类型：字符串

  描述：（必需）您希望启用运行状况检查的自动扩缩组的 Amazon 资源名称（ARN）。
+ HealthCheckGracePeriod

  类型：整数

  默认：300

  描述：（可选）Auto Scaling 在检查已投入使用的亚马逊弹性计算云 (Amazon EC2) 实例的运行状况之前等待的时间（以秒为单位）。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ec2:DescribeAutoScalingGroups`
+ `ec2:UpdateAutoScalingGroup`

**文档步骤**
+ `aws:executeScript` - 对您在 `AutoScalingGroupARN` 参数中指定的自动扩缩组启用运行状况检查。

# `AWSConfigRemediation-EnforceEC2InstanceIMDSv2`
<a name="automation-aws-enforce-ec2-imdsv2"></a>

**描述**

`AWSConfigRemediation-EnforceEC2InstanceIMDSv2`运行手册要求您指定的亚马逊弹性计算云 (Amazon EC2) 实例使用实例元数据服务版本 2 (IMDSv2)。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnforceEC2InstanceIMDSv2)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ InstanceId

  类型：字符串

  描述：（必填）您要要求使用的 Amazon EC2 实例的 ID IMDSv2。
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ HttpPutResponseHopLimit

  类型：整数

  描述：（可选）从 IMDS 服务返回请求者的跳跃响应限制。对于托管容器的 EC2 实例，设置为 2 或更大。设置为 0 表示不更改（默认）。

  允许的模式：`^([1-5]?\d|6[0-4])$`

  默认：0

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ec2:DescribeInstances`
+ `ec2:ModifyInstanceMetadataOptions`

**文档步骤**
+ `aws:executeScript`-将您在`InstanceId`参数中指定的 Amazon EC2 实例`required`上的`HttpTokens`选项设置为。
+ `aws:assertAwsResourceProperty`-需要对 Amazon EC2 实例进行验证 IMDSv2 。

# `AWSEC2-CloneInstanceAndUpgradeSQLServer`
<a name="automation-awsec2-CloneInstanceAndUpgradeSQLServer"></a>

**描述**

创建一个 AMI 来自一个 EC2 实例 Windows Server 运行 SQL Server 2008 或更高版本，然后将 AMI 升级到更高版本的 SQL Server。仅支持英文版本的 SQL Server。

支持的升级路径如下所示：
+ SQL Server 2008 到 SQL Server 2017、2016 或 2014
+ SQL Server 2008 R2 到 SQL Server 2017、2016 或 2014
+ SQL Server 2012 到 SQL Server 2019、2017、2016 或 2014
+ SQL Server 2014 到 SQL Server 2019、2017 或 2016
+ SQL Server 2016 到 SQL Server 2019 或 2017

如果您使用的是与 SQL Server 2019 不兼容的早期版本 Windows Server，则自动化文档必须将你的 Windows Server 版本升级到 2016。

升级是一个多步骤过程，可能需要 2 个小时才能完成。自动化会从该实例创建 AMI，然后从新实例启动临时实例 AMI 在指定的`SubnetID`。与您的原始实例关联的安全组将应用于临时实例。Automation 在临时实例上执行到 `TargetSQLVersion` 的就地升级。升级后，自动化会创建新的 AMI 从临时实例，然后终止临时实例。

您可以通过启动新应用程序来测试应用程序的功能 AMI 在你的 VPC 中。完成测试后，在执行下一次升级之前，请先计划应用程序停机时间，然后再完全切换到升级后的实例。

**注意**  
如果你想修改从新启动的 EC2 实例的计算机名 AMI ，请参见[重命名托管 SQL Server 独立实例的计算机](https://docs.microsoft.com/en-us/sql/database-engine/install-windows/rename-a-computer-that-hosts-a-stand-alone-instance-of-sql-server?view=sql-server-2017)。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSEC2-CloneInstanceAndUpgradeSQLServer)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**

**先决条件**
+ TLS 版本 1.2。
+ 仅支持英文版本的 SQL Server。
+ 该 EC2 实例必须使用一个版本 Windows Server 那是 Windows Server 2008 年 R2（或更高版本）和 SQL Server 2008（或更高版本）。
+ 验证实例上是否安装了 SSM Agent。有关更多信息，请参阅在 [Windows 服务器 EC2 实例上安装和配置 SSM 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-win.html)。
+ 将实例配置为使用 AWS Identity and Access Management (IAM) 实例配置文件角色。有关更多信息，请参阅[为 Systems Manager 创建 IAM 实例配置文件](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html)。
+ 验证实例的实例启动盘具有 20 GB 的可用磁盘空间。
+ 对于使用自带许可 (BYOL) SQL Server 版本的实例，以下额外的先决条件适用：
  + 提供包含目标 SQL Server 安装介质的 EBS 快照 ID。要实现此目的，应按照以下步骤进行：

    1. 确认该 EC2 实例运行的是 Windows Server 2008 R2 或更高版本。

    1. 在运行实例的同一可用区中创建一个 6 GB 的 EBS 卷。将卷附加到实例。例如，将其附加为驱动器 D。

    1. 例如，右键单击 ISO 并将其挂载为实例的驱动器 E。

    1. 将 ISO 的内容从驱动器 E:\$1 复制到驱动器 D:\$1

    1. 创建在步骤 2 中创建的 6 GB 卷的 EBS 快照。

**限制**
+ 只能在使用 Windows 身份验证的 SQL Server 上执行升级。
+ 验证实例上没有待处理的安全补丁更新。打开**控制面板**，然后选择**检查更新**。
+ 不支持 HA 和镜像模式下的 SQL Server 部署。

**参数**
+ IamInstanceProfile

  类型：字符串

  说明：（必需）IAM 实例配置文件。
+ InstanceId

  类型：字符串

  描述：（必填）正在运行的实例 Windows Server 2008 年 R2（或更高版本）和 SQL Server 2008（或更高版本）。
+ KeepPreUpgradeImageBackUp

  类型：字符串

  说明：（可选）如果设置为 `true`，则自动化不会删除在升级之前从实例中创建的 AMI。如果设置为 `true`，则必须由您删除此 AMI。默认情况下，将删除此 AMI。
+ SubnetId

  类型：字符串

  说明：（必需）为升级过程提供子网。验证子网是否具有与 AWS 服务、Amazon S3 和 Microsoft 的出站连接（用于下载补丁）。
+ SQLServerSnapshotId

  类型：字符串

  说明：（视情况而定）SQL Server 安装介质的快照 ID。对于使用 BYOL SQL Server 版本的实例，该参数是必需的。对于包含许可证的 SQL Server 实例（使用为微软 SQL Server 提供的适用于 Windows 服务器的 AWS 亚马逊系统映像启动的实例），此参数是可选的。
+ RebootInstanceBeforeTakingImage

  类型：字符串

  说明：（可选）如果设置为 `true`，则自动化在创建预升级 AMI 之前重新引导实例。默认情况下，自动化在升级前不重启。
+ 目标 SQLVersion

  类型：字符串

  描述：（可选）选择目标 SQL Server 版本。

  可能的目标：
  + SQL Server 2019
  + SQL Server 2017
  + SQL Server 2016
  + SQL Server 2014

  默认目标：SQL Server 2016

**输出**

AMIId：从升级到更高版本的 SQL Server 的实例创建的 AMI 的 ID。

# `AWSEC2-CloneInstanceAndUpgradeWindows`
<a name="automation-awsec2-CloneInstanceAndUpgradeWindows"></a>

**描述**

创建一个 Amazon Machine Image (AMI) 来自 Windows Server 2008 R2、2012 R2、2016 或 2019 年实例，然后升级 AMI 到 Windows Server 2016 年、2019 年或 2022 年。支持的升级路径如下所示。
+ Windows Server 2008 R2 到 Windows Server 2016 年。
+ Windows Server 2012 年 R2 到 Windows Server 2016 年。
+ Windows Server 2012 年 R2 到 Windows Server 2019。
+ Windows Server 2012 年 R2 到 Windows Server 2022。
+ Windows Server 2016 年至 Windows Server 2019。
+ Windows Server 2016 年至 Windows Server 2022。
+ Windows Server 2019 年至 Windows Server 2022。

升级操作是一个多步骤过程，可能需要 2 个小时才能完成。我们建议对内存至少为 2 v CPUs 和 4GB 的实例执行操作系统升级。自动化从实例创建一个 AMI，然后从新创建的 AMI，在您指定的 `SubnetId` 中启动一个临时实例。与您的原始实例关联的安全组将应用于临时实例。Automation 在临时实例上执行到 `TargetWindowsVersion` 的就地升级。要升级你的 Windows Server 2008 年 R2 实例变成 Windows Server 2016 年、2019 年或 2022 年，就地升级会执行两次，因为直接升级 Windows Server 2008 R2 到 Windows Server 不支持 2016 年、2019 年或 2022 年。自动化还会更新或安装临时实例所需的 AWS 驱动程序。升级后，自动化会从临时实例创建新 AMI，然后终止临时实例。

您可以通过在 Amazon Virtual Private Cloud (Amazon VPC)中从升级后的 AMI 启动测试实例来测试应用程序的功能。完成测试后，在执行下一次升级之前，请先计划应用程序停机时间，然后再完全切换到升级后的 AMI。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSEC2-CloneInstanceAndUpgradeWindows)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows Server 2008 R2、2012 R2、2016 或 2019 年标准版和数据中心版

**先决条件**
+ TLS 版本 1.2。
+ 验证实例上是否安装了 SSM Agent。有关更多信息，请参阅在 [Windows 服务器 EC2 实例上安装和配置 SSM 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-win.html)。
+ 必须在您的实例上安装 Windows PowerShell 3.0 或更高版本。
+ 对于加入到某个 Microsoft Active Directory 域的实例，建议指定一个没有连接到您的域控制器的 `SubnetId`，以帮助避免主机名冲突。
+ 实例子网必须具有与互联网的出站连接，这样可以访问 AWS 服务 诸如 Amazon S3 之类的网络，也可以访问从 Microsoft 下载补丁。如果子网是公有子网且实例具有公有 IP 地址，或者子网是私有子网并使用路由将互联网流量发送到公有 NAT 设备，即满足此要求。
+ 此自动化仅适用于 Windows Server 2008 年 R2、2012 年 R2、2016 年和 2019 年实例。
+ 配置 Windows Server 带有 AWS Identity and Access Management (IAM) 实例配置文件的实例，该配置文件为 Systems Manager 提供了必需的权限。有关更多信息，请参阅[为 Systems Manager 创建 IAM 实例配置文件](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html)。
+ 验证实例的启动盘具有 20 GB 的可用磁盘空间。
+ 如果该实例不使用 AWS提供的 Windows 许可，请指定一个包含以下内容的 Amazon EBS 快照 ID Windows Server 2012 年 R2 安装媒体。要实现此目的，应按照以下步骤进行：
  + 验证 EC2 实例是否正在运行 Windows Server 2012 年或以后。
  + 在运行实例的同一可用区中创建一个 6 GB 的 EBS 卷。将卷附加到实例。例如，将其附加为驱动器 D。
  + 例如，右键单击 ISO 并将其挂载为实例的驱动器 E。
  + 将 ISO 的内容从驱动器 E:\$1 复制到驱动器 D:\$1
  + 为上面步骤 2 中创建的 6 GB 卷创建 EBS 快照。

**限制**

此 Automation 不支持升级 Windows 域控制器、集群或 Windows 桌面操作系统。此自动化也不支持以下 EC2实例 Windows Server 安装了以下角色。
+ 远程桌面会话主机 (RDSH)
+ 远程桌面连接代理 (RDCB)
+ 远程桌面虚拟化主机 (RDVH)
+ 远程桌面 Web 访问 (RDWA)

**参数**
+ AlternativeKeyPairName

  类型：字符串

  描述：（可选）升级过程中要使用的备用密钥对的名称。这在分配给初始实例的密钥对不可用的情况下很有用。如果没有为初始实例分配密钥对，则必须为此参数指定一个值。
+ BYOLWindowsMediaSnapshotId

  类型：字符串

  描述：（可选）复制包括 Windows Server 2012R2 安装介质的 Amazon EBS 快照 的 ID。只有在升级 BYOL 实例时才需要。
+ IamInstanceProfile

  类型：字符串

  描述：（必需）启用 Systems Manager 以管理实例的 IAM 实例配置文件的名称。
+ InstanceId

  类型：字符串

  描述：（必填）正在运行的 EC2 实例 Windows Server 2008 R2、2012 R2、2016 或 2019。
+ KeepPreUpgradeImageBackUp

  类型：字符串

  描述：（可选）如果设置为 True，则自动化不会删除升级前从 EC2 实例创建的 AMI。如果设置为 True，则必须由您删除此 AMI。默认情况下，将删除此 AMI。
+ SubnetId

  类型：字符串

  描述：（必填）这是升级过程的子网，也是您的源 EC2 实例所在的位置。验证子网是否具有与 AWS 服务、Amazon S3 和 Microsoft 的出站连接（用于下载补丁）。
+ TargetWindowsVersion

  类型：字符串

  描述：（必需）选择目标 Windows 版本。

  默认：2022
+ RebootInstanceBeforeTakingImage

  类型：字符串

  描述：（可选）如果设置为 True，则 Automation 会重启实例，然后再创建升级前 AMI。默认情况下，Automation 在升级前不重启。

# `AWSEC2-PatchLoadBalancerInstance`
<a name="automation-awsec2-patch-load-balancer-instance"></a>

**描述**

升级并修补连接到任何负载均衡器（经典、ALB 或 NLB）的亚马逊 EC2 实例（Windows 或 Linux）的次要版本。在修补该实例之前，会应用默认的连接耗尽时间。您可以通过在**ConnectionDrainTime**参数中输入以分钟 (`1`-`59`) 为单位的自定义排水时间来覆盖等待时间。

自动化工作流程如下所示：

1. 确定实例所附加的负载均衡器或目标组，并验证该实例是否运行正常。

1. 该实例已从负载均衡器或目标组移除。

1. 此自动化将等待为连接耗尽时间指定的时间段。

1. 调[用 AWS RunPatchBaseline](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-about-aws-runpatchbaseline.html) 自动化来修补实例。

1. 该实例已从负载均衡器或目标组重新附加。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSEC2-PatchLoadBalancerInstance)

**文档类型**

自动化

**所有者**

Amazon

**先决条件**
+ 验证实例上是否安装了 SSM Agent。有关更多信息，[请参阅在 Windows 服务器 EC2 实例上使用 SSM 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-win.html)。

**参数**
+ **InstanceId**

  类型：字符串

  描述：（必需）与负载均衡器（经典、ALB 或 NLB）关联的要修补的实例的 ID。
+ **ConnectionDrainTime**

  类型：字符串

  描述：（可选）负载均衡器的连接耗尽时间，以分钟 (`1`-`59`) 为单位。
+ **S3BucketLog**

  类型：字符串

  描述：（可选）用于存储命令输出响应的 Amazon S3 存储桶的名称。您可以指定自己拥有的存储桶或与您共享的存储桶。如果您提供此参数，则还必须提供 Rol ** runCommandAssumee**。
+ **runCommandAssume 角色**

  类型：字符串

  描述：（可选）用于在实例上运行命令的 IAM 角色的 ARN。**该角色必须与`ssm.amazonaws.com`服务委托人建立信任关系，必须附加了 **Amazon SSMManaged InstanceCore** 策略，并且必须对为 S3 指定的 Amazon S3 存储桶具有写入权限BucketLog。**

# `AWSEC2-SQLServerDBRestore`
<a name="automation-awsec2-sqlserverdbrestore"></a>

**描述**

`AWSEC2-SQLServerDBRestore` 运行手册将存储在 Amazon S3 中的 Microsoft SQL Server 数据库备份还原到在 Amazon Elastic Compute Cloud (EC2) Linux 实例上运行的 SQL Server 2017。您可以提供自己的运行 SQL Server 2017 Linux 的 EC2 实例。如果未提供 EC2 实例，自动化将启动，并使用 SQL Server 2017 配置新的 Ubuntu 16.04 EC2 实例。自动化支持还原完整、差异和事务日志备份。此自动化将接收多个数据库备份并自动还原所提供的文件中每个数据库的最近的有效备份。

要自动将本地 SQL Server 数据库备份和恢复到运行 SQL Server 2017 Linux 的 EC2 实例，您可以使用 AWS签名的 PowerShell脚本[https://awsec2-server-upgrade-prod.s3.us-west-1.amazonaws.com/MigrateSQLServerToEC2Linux.ps1](https://awsec2-server-upgrade-prod.s3.us-west-1.amazonaws.com/MigrateSQLServerToEC2Linux.ps1)。

**重要**  
自动化每次运行时，此运行手册将重置 SQL Server 服务器管理员 (SA) 用户密码。自动化完成后，在连接到 SQL Server 实例之前，您必须重新设置您自己的 SA 用户密码。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSEC2-SQLServerDBRestore)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

## 先决条件
<a name="sql-server-db-restore-prerequisites"></a>

要运行此自动化，您必须满足以下先决条件：
+ 运行此自动化的 IAM 用户或角色必须拥有内联策略，并附有 [所需的 IAM 权限](#sql-server-db-restore-policy) 中概述的权限。
+ 如果您提供自己的 EC2 实例：
  + 您提供的 EC2 实例必须是运行微软 SQL Server 2017 的 Linux 实例。
  + 附加了 `AmazonSSMManagedInstanceCore` 托管策略的 AWS Identity and Access Management (IAM) 实例配置文件配置必须您提供的 EC2 实例。有关更多信息，请参阅[为 Systems Manager 创建 IAM 实例配置文件](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html)。
  + EC2 实例上必须安装 SSM 代理。有关更多信息，请参阅[在 Linux 的 EC2 实例上安装和配置 SSM 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-agent.html)。
  + EC2 实例必须具有足够的可用磁盘空间来下载和还原 SQL Server 备份。

## 限制
<a name="sql-server-db-restore-limitations"></a>

此自动化不支持还原到在 Windows Server 的 EC2 实例上运行的 SQL Server。此自动化仅还原与 SQL Server Linux 2017 兼容的数据库备份。有关更多信息，请参阅 [Linux 上的 SQL Server 2017 的版本和支持功能](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-editions-and-components-2017?view=sql-server-2017)。

## 参数
<a name="sql-server-db-restore-parameters"></a>

此自动化具有以下参数：
+ **DatabaseNames**

  类型：字符串

  说明：（可选）要还原的数据库的名称的逗号分隔列表。
+ **DataDirectorySize**

  类型：字符串

  说明：（可选）所需的新 EC2 实例的 SQL Server 数据目录的卷大小 (GiB)。

  默认值：100
+ **KeyPair**

  类型：字符串

  说明：（可选）要在创建新 EC2 实例时使用的密钥对。
+ **IamInstanceProfileName**

  类型：字符串

  说明：（可选）要附加到新 EC2 实例的 IAM 实例配置文件。IAM 实例配置文件必须附加了 `AmazonSSMManagedInstanceCore` 托管策略。
+ **InstanceId**

  类型：字符串

  说明：（可选）Linux 上的运行 SQL Server 2017 的实例。如果未提供， InstanceId 则自动化会使用提供的 InstanceType 和 SQLServer版本启动新的 EC2 实例。
+ **InstanceType**

  类型：字符串

  说明：（可选）要启动的 EC2 实例的实例类型。
+ **iss3 PresignedUrl**

  类型：字符串

  说明：（可选）如果 S3Input 是预签名 S3 URL，则表示 `yes`。

  默认值：No

  有效值：是 \$1 否 
+ **LogDirectorySize**

  类型：字符串

  说明：（可选）所需的新 EC2 实例的 SQL Server 日志目录的卷大小 (GiB)。

  默认值：100
+ **S3Input**

  类型：字符串

  描述：（必填）S3 存储桶名称、以逗号分隔的 S3 对象密钥列表，或 URLs 包含要还原的 SQL 备份文件的以逗号分隔的预签名 S3 列表。
+ **SQLServer版本**

  类型：字符串

  说明：（可选）要安装在新创建的 EC2 实例上的 SQL Server 2017 版本。

  有效值：Standard \$1 Enterprise \$1 Web \$1 Express
+ **SubnetId**

  类型：字符串

  说明：（可选）要在其中启动新 EC2 实例的子网。子网必须与 AWS 服务有出站连接。如果未提供值， SubnetId 则自动化将使用默认子网。
+ **TempDbDirectorySize**

  类型：字符串

  说明：（可选）所需的新 EC2 实例的 SQL Server TempDB 目录的卷大小 (GiB)。

  默认值：100

## 所需的 IAM 权限
<a name="sql-server-db-restore-policy"></a>

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags",
                "ec2:DescribeImages",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeInstances",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ssm:DescribeInstanceInformation",
                "ssm:GetAutomationExecution",
                "ssm:ListCommandInvocations",
                "ssm:ListCommands",
                "ssm:SendCommand",
                "ssm:StartAutomationExecution"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/ROLENAME"
        }
    ]
}
```

------

## 文档步骤
<a name="sql-server-db-restore-steps"></a>

要使用此自动化，请按照适用于实例类型的步骤进行操作：

**对于新 EC2 实例：**

1. `aws:executeAwsApi` - 在 Ubuntu 16.04 上检索 SQL Server 2017 的 AMI ID。

1. `aws:runInstances` - 启动适用于 Linux 的一个新 EC2 实例。

1. `aws:waitForAwsResourceProperty` - 等待新创建的 EC2 实例准备就绪。

1. `aws:executeAwsApi` - 如果实例未准备就绪，将重启实例。

1. `aws:assertAwsResourceProperty` - 验证安装了 SSM 代理。

1. `aws:runCommand`-在中运行 SQL Server 恢复脚本 PowerShell。

**对于现有 EC2 实例：**

1. `aws:waitForAwsResourceProperty` - 验证EC2 实例是否就绪。

1. `aws:executeAwsApi` - 如果实例未准备就绪，将重启实例。

1. `aws:assertAwsResourceProperty` - 验证安装了 SSM 代理。

1. `aws:runCommand`-在中运行 SQL Server 恢复脚本 PowerShell。

**输出**

获取实例。 InstanceId

restoreToNew实例. 输出

restoreToExisting实例. 输出

# `AWSSupport-ActivateWindowsWithAmazonLicense`
<a name="automation-awssupport-activatewindowswithamazonlicense"></a>

 **描述** 

`AWSSupport-ActivateWindowsWithAmazonLicense`运行手册激活亚马逊弹性计算云 (Amazon EC2) 实例 Windows Server 使用 Amazon 提供的许可。Automation 验证和配置所需的密钥管理服务操作系统设置并尝试激活。这包括通往 Amazon 的密钥管理服务器的操作系统路由以及密钥管理服务操作系统设置。将`AllowOffline`参数设置为`true`允许自动化成功定位不受 AWS Systems Manager管理但需要停止和启动实例的实例。

**注意**  
本运行手册不能用于 “自带许可证” (BYOL) 模式 Windows Server 实例。有关使用自己的许可证的信息，请参阅 [AWS上的 Microsoft 许可](https://aws.amazon.com/windows/resources/licensing/)。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ActivateWindowsWithAmazonLicense)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**
+ AllowOffline

  类型：字符串

  有效值：true \$1 false

  默认：false

  说明：（可选）当在线故障排除失败或提供的实例不是托管实例时，如果允许进行离线 Windows 激活修复，请将其设置为 `true`。
**重要**  
离线方法要求先停止提供的 EC2 实例，然后再启动。存储在实例存储卷中的数据将丢失。如果不使用弹性 IP，则公有 IP 地址将发生更改。
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  有效值：true \$1 false

  默认：false

  说明：（可选）若要在 Windows 已激活的情况下继续，请将其设置为 `true`。
+ InstanceId

  类型：字符串

  描述：（必填）您的托管 EC2 实例的 ID Windows Server.
+ SubnetId

  类型：字符串

  默认： CreateNewVPC

  描述：（可选）仅限脱机-用于执行离线故障排除的 EC2 Rescue 实例的子网 ID。使用 `SelectedInstanceSubnet` 以使用同一子网作为您的实例，或使用 `CreateNewVPC` 创建一个新 VPC。重要：子网必须与位于同一个可用区中 InstanceId，并且必须允许访问 SSM 端点。

**所需的 IAM 权限**

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

我们建议接收命令的 EC2 实例具有 IAM 角色并附有 Amazon A **SSMManagedInstanceCorema** zon 托管策略。你必须至少有 **ssm: StartAutomationExecution** 和 **ssm: SendCommand** 才能运行自动化并将命令发送到实例，还必须有 s **sm: GetAutomationExecution** 才能读取自动化输出。对于离线修复息，请参阅 `AWSSupport-StartEC2RescueWorkflow` 所需的权限。

 **文档步骤** 

1. `aws:assertAwsResourceProperty` - 检查所提供的实例的平台是否为 Windows。

1. `aws:assertAwsResourceProperty` - 确认所提供的实例是托管实例：

   1. （在线激活修复）如果输入实例是托管实例，则运行 PowerShell脚本`aws:runCommand`以尝试修复 Windows 激活问题。

   1. （离线激活修复）如果输入实例不是托管实例：

      1. `aws:assertAwsResourceProperty` - 验证`AllowOffline`旗帜是否设置为。`true`如果是，则启动离线修复，否则自动化将会结束。

      1. `aws:executeAutomation` - 使用 Windows 激活离线修复脚本调用 `AWSSupport-StartEC2RescueWorkflow`。该脚本使用 EC2 Config 或 EC2 Launch，具体取决于操作系统版本。

      1. `aws:executeAwsApi` - 阅读来自 `AWSSupport-StartEC2RescueWorkflow` 的结果。

 **输出** 

activateWindows.Output

getActivateWindowsOfflineResult。输出

# `AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`
<a name="automation-awssupport-analyzeawsendpointreachabilityfromec2"></a>

 **描述** 

`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`运行手册分析了从亚马逊弹性计算云 (Amazon EC2) 实例或弹性网络接口到终端节点的连接。 AWS 服务 IPv6 不支持。运行手册使用您为 `ServiceEndpoint` 参数指定的值来分析与端点的连接。如果在您的 VPC 中找不到 AWS PrivateLink 端点，运行手册将使用当前 AWS 区域中的服务的公有 IP 地址。此自动化使用 Amazon Virtual Private Cloud 中的 Reachability Analyzer。有关更多信息，请参阅 *Reachability Analyzer* 中的 [什么是 Reachability Analyzer?](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html)。

此自动化将检查以下事项：
+ 检查您的虚拟私有云（VPC）是否配置为使用 Amazon 提供的 DNS 服务器。
+ 检查您指定的 VPC 中是否存在 AWS PrivateLink 终端节点。 AWS 服务 如果找到一个端点，自动化将验证 `privateDns` 属性是否已开启。
+ 检查 AWS PrivateLink 终端节点是否使用默认终端节点策略。

 **注意事项** 
+ 每次在来源和目标之间运行分析时，您需要支付费用。有关更多信息，请参阅 [Amazon VPC 定价](https://aws.amazon.com/vpc/pricing/)。
+ 在自动化过程中，将创建网络洞察路径和网络洞察分析。如果自动化成功完成，运行手册将删除这些资源。如果清理步骤失败，则运行手册不会删除网络洞察路径，您需要手动将其删除。如果您不手动删除网络洞察路径，则该路径将继续计入您的 AWS 账户配额。有关 Reachability Analyzer 配额的更多信息，请参阅 *Reachability Analyzer* 中的 [Reachability Analyzer 配额](https://docs.aws.amazon.com//vpc/latest/reachability/reachability-analyzer-limits.html)。
+ 即使 Reachability Analyzer 返回 `PASS`，操作系统级配置（例如使用代理、本地 DNS 解析器或主机文件）也会影响连接。
+ 查看对 Reachability Analyzer 执行的所有检查的评估。如果任何检查返回的状态为 `FAIL`，那么，即使整体可达性检查返回的状态为 `PASS`，也可能会影响连接性。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（必需）您要分析自其的可达性的 Amazon EC2 实例或网络接口的 ID。
+ ServiceEndpoint

  类型：字符串

  描述：（必需）您要分析到其的可达性的服务端点的主机名。
+ RetainVpcReachabilityAnalysis

  类型：字符串

  默认：false

  描述：（可选）确定是否保留所创建的网络洞察路径和相关分析。默认情况下，用于分析可达性的资源将在成功分析后删除。如果您选择保留分析，则运行手册不会删除该分析，您可以在 Amazon VPC 控制台将其可视化。自动化输出中提供了控制台链接。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ec2:CreateNetworkInsightsPath`
+ `ec2:DeleteNetworkInsightsAnalysis`
+ `ec2:DeleteNetworkInsightsPath`
+ `ec2:DescribeAvailabilityZones`
+ `ec2:DescribeCustomerGateways`
+ `ec2:DescribeDhcpOptions`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInternetGateways`
+ `ec2:DescribeManagedPrefixLists`
+ `ec2:DescribeNatGateways`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeNetworkInsightsAnalyses`
+ `ec2:DescribeNetworkInsightsPaths`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribePrefixLists`
+ `ec2:DescribeRegions`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeTransitGatewayAttachments`
+ `ec2:DescribeTransitGatewayPeeringAttachments`
+ `ec2:DescribeTransitGatewayConnects`
+ `ec2:DescribeTransitGatewayRouteTables`
+ `ec2:DescribeTransitGateways`
+ `ec2:DescribeTransitGatewayVpcAttachments`
+ `ec2:DescribeVpcAttribute`
+ `ec2:DescribeVpcEndpoints`
+ `ec2:DescribeVpcEndpointServiceConfigurations`
+ `ec2:DescribeVpcPeeringConnections`
+ `ec2:DescribeVpcs`
+ `ec2:DescribeVpnConnections`
+ `ec2:DescribeVpnGateways`
+ `ec2:GetManagedPrefixListEntries`
+ `ec2:GetTransitGatewayRouteTablePropagations`
+ `ec2:SearchTransitGatewayRoutes`
+ `ec2:StartNetworkInsightsAnalysis`
+ `elasticloadbalancing:DescribeListeners`
+ `elasticloadbalancing:DescribeLoadBalancerAttributes`
+ `elasticloadbalancing:DescribeLoadBalancers`
+ `elasticloadbalancing:DescribeRules`
+ `elasticloadbalancing:DescribeTags`
+ `elasticloadbalancing:DescribeTargetGroups`
+ `elasticloadbalancing:DescribeTargetHealth`
+ `tiros:CreateQuery`
+ `tiros:GetQueryAnswer`
+ `tiros:GetQueryExplanation`

 **文档步骤** 

1. `aws:executeScript`：通过尝试解析主机名来验证服务端点。

1. `aws:executeScript`：收集有关 VPC 和子网的详细信息。

1. `aws:executeScript`：评估 VPC 的 DNS 配置。

1. `aws:executeScript`：评估 VPC 端点检查。

1. `aws:executeScript`：找到要连接到公共服务端点的互联网网关。

1. `aws:executeScript`：确定要用于可达性分析的目的地。

1. `aws:executeScript`：使用 Reachability Analyzer 分析从来源到端点的可达性，并在分析成功时清理资源。

1. `aws:executeScript`：生成可达性评估报告。

1. `aws:executeScript`：生成 JSON 形式的输出。

 **输出** 
+ `generateReport.EvalReport` - 自动化系统所执行检查的结果，采用文本格式。
+ `generateJsonOutput.Output` - 结果的最小版本，采用 JSON 格式。

# `AWSPremiumSupport-ChangeInstanceTypeIntelToAMD`
<a name="automation-aws-changeinstancetypeinteltoamd"></a>

 **描述** 

`AWSPremiumSupport-ChangeInstanceTypeIntelToAMD` 运行手册自动执行从英特尔支持的 Amazon Elastic Compute Cloud (Amazon EC2) 实例迁移到 AMD 支持的同等实例类型。此运行手册支持基于 Nitro 系统构建的通用型 (M)、可突发性通用型 (T)、计算优化型 (C) 和内存优化型 (R) 实例。此运行手册可用于不由 Systems Manager 管理的实例。

为了降低数据丢失和停机的潜在风险，运行手册会检查实例的停止行为、实例是否在 Amazon EC2 Auto Scaling 组中、实例的运行状况，以及同一个可用区中是否有 AMD 支持的同等实例类型可用。默认情况下，如果已连接实例存储卷或实例是 AWS CloudFormation 堆栈的一部分，则此运行手册不会更改实例类型。如果要更改此行为，请为 `AllowInstanceStoreInstances` 和 `AllowCloudFormationInstances` 参数中的任意一个指定 `yes`。

**重要**  
访问`AWSPremiumSupport-*`运行手册需要订阅 Business \$1 Support、Enterprise Support 或统一运营订阅。有关更多信息，请参阅[比较 AWS 支持 计划](https://aws.amazon.com/premiumsupport/plans/)。

 **注意事项** 
+ 我们建议您在使用此运行手册之前先备份您的实例。
+ 更改实例类型需要运行手册来停止您的实例。当实例停止时，存储在 RAM 或实例存储卷中的所有数据都将丢失，并自动释放公有 IPv4 地址。有关更多信息，请参阅[停止和启动实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)。
+ 如果您没有为`TargetInstanceType`参数指定值，则运行手册会尝试根据同一实例系列中的虚拟 CPUs 和内存来识别等效的 AMD 实例。如果运行手册无法识别等效的 AMD 实例类型，运行手册将结束。
+ 使用 `DryRun` 选项，您可以捕获等效的 AMD 实例类型并验证需求，而无需实际更改实例类型。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-ChangeInstanceTypeIntelToAMD) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ 确认

  类型：字符串

  描述：（必填）输入 `yes` 以确认您的目标实例将停止（如果它正在运行）。
+ InstanceId

  类型：字符串

  描述：（必填）要更改其类型的 Amazon EC2 实例的 ID。
+ TargetInstanceType

  类型：字符串

  默认：自动

  描述：（可选）要将您的实例更改为的 AMD 实例类型。默认`automatic`值在虚拟 CPUs 和内存方面使用等效的实例类型。例如，m5.large 将更改为 m5a.large。
+ AllowInstanceStoreInstances

  类型：字符串

  有效值：否 \$1 是

  默认值：no

  描述：（可选）如果您指定 `yes`，运行手册将在已附加实例存储卷的实例上运行。
+ AllowCloudFormationInstances

  类型：字符串

  有效值：否 \$1 是

  默认值：no

  描述：（可选）如果设置为`yes`，则运行手册将在属于 CloudFormation 堆栈的实例上运行。
+ AllowCrossGeneration

  类型：字符串

  有效值：否 \$1 是

  默认值：no

  描述：（可选）如果设置为 `yes`，运行手册将尝试在同一实例族中查找最新的等效 AMD 实例类型。
+ DryRun

  类型：字符串

  有效值：否 \$1 是

  默认值：no

  描述：（可选）如果设置为 `yes`，运行手册将返回等效的 AMD 实例类型并验证迁移要求，而无需更改实例类型。
+ SleepWait

  类型：字符串

  默认值： PT3S

  描述：（可选）运行手册在开始新的自动化之前应等待的时间。您为此参数提供的值必须符合 ISO 8601 标准。要了解有关创建 ISO 8601 字符串的更多信息，请参阅[为 Systems Manager 创建格式化的日期和时间字符串](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-datetime-strings.html#systems-manager-datetime-strings-format)。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:DescribeAutomationExecutions` 
+  `ssm:GetAutomationExecution` 
+  `ssm:StartAutomationExecution` 
+  `ec2:GetInstanceTypesFromInstanceRequirements` 
+  `ec2:DescribeInstanceAttribute` 
+  `ec2:DescribeInstances` 
+  `ec2:DescribeInstanceStatus` 
+  `ec2:DescribeInstanceTypeOfferings` 
+  `ec2:DescribeInstanceTypes` 
+  `ec2:DescribeTags` 
+  `ec2:ModifyInstanceAttribute` 
+  `ec2:StartInstances` 
+  `ec2:StopInstances` 

 **文档步骤** 

1. `aws:assertAwsResourceProperty`：确认目标 Amazon EC2 实例的状态为 `running`、`pending`、`stopped` 或 `stopping`。否则，自动化将结束。

1. `aws:executeAwsApi`：从 Amazon EC2 目标实例收集属性。

1. `aws:branch`：根据 Amazon EC2 实例的状态对自动化进行分支。

   1. 如果为 `stopped` 或 `stopping`，则自动化会运行 `aws:waitForAwsResourceProperty`，直到 Amazon EC2 实例完全停止。

   1. 如果为 `running` 或 `pending`，则自动化会运行 `aws:waitForAwsResourceProperty`，直到 Amazon EC2 实例通过状态检查。

1. `aws:assertAwsResourceProperty`：通过检查 `aws:autoscaling:groupName` 标签是否已应用，确认 Amazon EC2 实例不是 Auto Scaling 组的一部分。

1. `aws:executeAwsApi`：收集当前实例类型属性以查找等效的 AMD 实例类型。

1. `aws:assertAwsResourceProperty`：确认 AWS Marketplace 产品代码未与 Amazon EC2 实例关联。某些产品类型并非在所有实例类型上都可用。

1. `aws:branch`：根据您是否希望自动化检查 Amazon EC2 实例是否属于 CloudFormation 堆栈来分支自动化

   1. 如果`aws:cloudformation:stack-name`标签应用于实例，则会运行自动化`aws:assertAwsResourceProperty`以确认该实例不是 CloudFormation 堆栈的一部分。

1. `aws:branch`：根据实例根卷类型是否为 Amazon Elastic Block Store (Amazon EBS) 的实例对自动化进行分支。

1. `aws:assertAwsResourceProperty`：确认实例关闭行为是 `stop` 且不是 `terminate`。

1. `aws:executeScript`：确认此运行手册中只有一个针对当前实例的自动化。如果针对同一实例的另一个自动化已经在进行，则它会返回错误并结束。

1. `aws:executeAwsApi`: 返回具有相同内存量和 v CPUs 的 AMD 实例类型的列表

1. `aws:executeScript`：检查当前实例类型是否受支持并返回其等效的 AMD 实例类型。如果没有等效类型，自动化将结束。

1. `aws:executeScript`：确认 AMD 实例类型在同一可用区中可用，并验证所提供的 IAM 权限。

1. `aws:branch`：根据 `DryRun` 参数值是否为 `yes` 对自动化进行分支。

1. `aws:branch`：检查原始和目标实例类型是否相同。如果它们相同，自动化将结束。

1. `aws:executeAwsApi`：获取当前实例状态。

1. `aws:changeInstanceState`：停止 Amazon EC2 实例。

1. `aws:changeInstanceState`: 如果实例卡在了停止状态，则强制其停止。

1. `aws:executeAwsApi`：将实例类型更改为目标 AMD 实例类型。

1. `aws:sleep`：更改实例类型后等待 3 秒钟以确保最终一致性。

1. `aws:branch`：根据前实例的状态对自动化进行分支。如果是 `running`，则实例已启动。

   1. `aws:changeInstanceState`：如果 Amazon EC2 实例在更改实例类型之前正在运行，则启动该实例。

   1. `aws:waitForAwsResourceProperty`：等待 Amazon EC2 实例通过状态检查。如果实例未通过状态检查，实例将变回其原始的实例类型。

      1. `aws:changeInstanceState`：停止 Amazon EC2 实例，然后将其更改为原始实例类型。

      1. `aws:changeInstanceState`：强制 Amazon EC2 实例停止，然后再将其更改为原始实例类型，以防它卡在停止状态。

      1. `aws:executeAwsApi`：将 Amazon EC2 实例更改为其原始类型。

      1. `aws:sleep`：更改实例类型后等待 3 秒钟以确保最终一致性。

      1. `aws:changeInstanceState`：如果 Amazon EC2 实例在更改实例类型之前正在运行，则启动该实例。

      1. `aws:waitForAwsResourceProperty`：等待 Amazon EC2 实例通过状态检查。

1. `aws:sleep`：等待，然后结束运行手册。

# `AWSSupport-CheckXenToNitroMigrationRequirements`
<a name="automation-awssupport-checkxentonitromigrationrequirements"></a>

 **描述** 

`AWSSupport-CheckXenToNitroMigrationRequirements`运行手册验证亚马逊弹性计算云 (Amazon EC2) 实例是否满足成功将实例类型从 Xen 类型实例更改为基于 Nitro 的实例类型的先决条件。此自动化将检查以下事项：
+ 根设备是一个 Amazon Elastic Block Store (Amazon EBS) 卷。
+ `enaSupport` 属性已启用。
+ ENA 模块安装在实例上。
+ 该 NVMe 模块已安装在实例上。如果是，则模块安装完毕，脚本将验证该模块是否加载到 `initramfs` 镜像中。
+ 分析 `/etc/fstab` 并使用设备名称查找正在挂载的块设备。
+ 确定操作系统 (OS) 是否默认使用可预测的网络接口名称。

此运行手册支持以下操作系统：
+ Red Hat Enterprise Linux
+ CentOS
+ Amazon Linux 2
+ Amazon Linux
+ Debian 服务器
+ Ubuntu Server
+ SUSE Linux Enterprise Server 15 SP2
+ SUSE Linux Enterprise Server 12 SP5

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CheckXenToNitroMigrationRequirements)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  默认：false

  描述：（必填）在迁移到基于 Nit EC2 ro 的实例类型之前，您要检查其先决条件的 Amazon 实例的 ID。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:DescribeAutomationExecutions`
+ `ssm:DescribeAutomationStepExecutions`
+ `ssm:DescribeAutomationStepExecutions`
+ `ssm:DescribeInstanceInformation`
+ `ssm:DescribeInstanceProperties`
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ssm:GetDocument`
+ `ssm:ListCommands`
+ `ssm:ListCommandInvocations`
+ `ssm:ListDocuments`
+ `ssm:StartAutomationExecution`
+ `ssm:SendCommand`
+ `iam:ListRoles`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstancesTypes`

 **文档步骤** 
+ `aws:executeAwsApi` - 收集有关该实例的详细信息。
+ `aws:executeAwsApi` - 收集有关该实例虚拟机管理程序的信息。
+ `aws:branch` - 根据目标实例是否已经在运行基于 Nitro 的实例类型进行分支。
+ `aws:branch` - 检查基于 Nitro 的实例是否支持该实例的操作系统。
+ `aws:assertAwsResourceProperty` - 验证您指定的实例是否由 Systems Manager 管理以及其状态是否为 `Online`。
+ `aws:branch` - 根据实例的根设备是否是 Amazon EBS 卷进行分支。
+ `aws:branch` - 根据是否为实例启用了 ENA 属性进行分支。
+ `aws:runCommand` - 检查实例上是否有 ENA 驱动程序。
+ `aws:runCommand`-检查实例上的 NVMe 驱动程序。
+ `aws:runCommand` - 检查 `fstab` 文件是否存在无法识别的格式。
+ `aws:runCommand` - 检查实例上是否有可预测的接口名称配置。
+ `aws:executeScript` - 根据上述步骤生成输出。

 **输出** 

finalOutput.output - 自动化执行的检查的结果。

# `AWSSupport-CloneXenEC2InstanceAndMigrateToNitro`
<a name="automation-awssupport-clonexenec2instanceandmigratetonitro"></a>

 **描述** 

[这两InstanceAndMigrateToNitro本运行手册克隆、准备和迁移克隆的亚马逊弹性计算云 (Amazon EC **AWSSupport-CloneXenEC2**) Linux 实例，该实例目前在亚马逊 EC2 Xen 平台上运行，使其在亚马逊 EC2 Nitro 平台上运行。](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)这种自动化分为三个不同的分支：
+ **初步检查**：评估继续迁移的所有先决条件，包括检查目标 Amazon EC2 实例是否已在 Nitro 平台上运行、确定生命周期状态、验证操作系统以及验证 Systems Manager 连接。
+ **测试**：AMI从目标 Amazon EC2 实例创建测试并启动测试 Amazon EC2 实例以验证迁移过程，然后再继续。
+ **CloneAndMigrate**：创建目标 Amazon EC2 实例的克隆，安装必要的驱动程序，为 Nitro 平台配置系统，并将实例类型更改为所需的 Nitro 类型。

**重要**  
在批准停止目标 Amazon EC2 实例之前，请确保该实例上运行的所有应用程序都已正常关闭。如果 Amazon EC2 实例没有关联弹性 IP 地址，则在实例停止和启动后，自动公有 IPv4 地址将发生变化。

**重要**  
**免责声明**：执行本运行手册可能会对您的账户收取额外费用，用于购买 Amazon EC2 实例、Amazon EBS Volumes 等。AMI有关更多详细信息，请参阅[亚马逊 EC2 定价](https://aws.amazon.com/ec2/pricing/)和[亚马逊 EBS 定价](https://aws.amazon.com/ebs/pricing/)。

**重要**  
 **先决条件**   
目标 Amazon EC2 实例需要对存储库进行出站访问才能安装驱动程序和依赖项`kernel-devel`，例如`gcc`、`patch`、`rpm-build`、`wget`、`dracut`、、`make`、`linux-headers`、，并在需要时`unzip`使用包管理器。

 **受支持的操作系统** 
+ Red Hat Enterprise Linux（RHEL）8 和 9
+ 亚马逊 Linux 2 和 AL2023
+ Ubuntu Server 18.04 LTS、20.04 和 22.04
+ Debian 11 和 12（仅限AWS 分区）
+ SUSE12SP5 还有 SUSE15 SP (5,6)

 **如何工作？** 

运行手册执行以下高级步骤：
+ 验证先决条件并检查实例是否适合迁移。
+ 创建并测试AMI以确保迁移成功。
+ 启用增强联网 (ENA) 属性并安装最新的 ENA 驱动程序。
+ 在 initramfs 中验证和配置 NVMe 模块。
+ 分析并修改 /etc/fstab 以将设备名称替换为。 UUIDs
+ 禁用可预测的接口命名并移除永久性网络规则。
+ 将克隆的实例类型更改为所需的 Nitro 类型。
+ 创建最终版AMI，可用作启动 Nitro 实例的黄金镜像。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CloneXenEC2InstanceAndMigrateToNitro) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `autoscaling:DescribeAutoScalingInstances`
+ `ec2:CreateImage`
+ `ec2:CreateTags`
+ `ec2:DescribeImages`
+ `ec2:DescribeInstanceAttribute`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceStatus`
+ `ec2:DescribeInstanceTypeOfferings`
+ `ec2:DescribeInstanceTypes`
+ `ec2:DeregisterImage`
+ `ec2:ModifyInstanceAttribute`
+ `ec2:RunInstances`
+ `ec2:StartInstances`
+ `ec2:StopInstances`
+ `ec2:TerminateInstances`
+ `iam:PassRole`
+ `sns:Publish`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:DescribeInstanceInformation`
+ `ssm:SendCommand`

示例 IAM 策略：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "autoscaling:DescribeAutoScalingInstances",
                "ec2:CreateImage",
                "ec2:CreateTags",
                "ec2:DescribeImages",
                :ec2:DescribeInstanceAttribute:,
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeInstanceTypes",
                "ec2:DeregisterImage",
                "ec2:ModifyInstanceAttribute",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances",
                "iam:PassRole",
                "ssm:DescribeAutomationExecutions",
                "ssm:DescribeInstanceInformation",
                "ssm:SendCommand"
            ],
            "Resource": "*"
        }
    ]
}
```

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CloneXenEC2InstanceAndMigrateToNitro/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CloneXenEC2InstanceAndMigrateToNitro/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **`Execute automation`**。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**
     + 描述：（可选）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 ARN。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
     + 类型：`AWS::IAM::Role::Arn`
   + **TargetInstanceId （必填）：**
     + 描述：（必填）您要迁移到 Nitro 平台的目标 Amazon EC2 实例的实例 ID。
     + 类型：`AWS::EC2::Instance::Id`
   + **NitroInstanceType （可选）：**
     + 描述：（可选）输入目标 Nitro 实例类型。仅支持 Nitro M5、M6、C5、C6、R5、R6 和 T3 实例（例如 t3.small）。默认值：m5.xlarge。
     + 类型：`String`
     + 允许的模式：`^(m5a?z?d?n?|c5a?d?n?|r5a?d?n?b?|(c|m|r)6(a|i)?d?)\\.(2|4|8|12|16|24|32)?xlarge$|^t3a?\\.((x|2x)?large|nano|micro|small|medium)$`
     + 默认值：`m5.xlarge`
   + **SNSTopicArn（必填）：**
     + 描述：（必填）提供亚马逊 SNS 主题的 ARN 以获取批准通知。此 Amazon SNS 主题用于在自动执行期间发送批准通知。
     + 类型：`String`
     + 允许的模式：`^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):sns:(us(-gov|-isob?)?|ap|ca|af|me|cn|eu|sa)-(central|(north|south)?(east|west)?)-\\d:\\d{12}:[a-zA-Z0-9_.-]{1,256}$`
   + **ApproverIAM（必填）：**
     + 描述：（必填）提供能够批准或拒绝操作的 AWS 经过身份验证的委托人列表。最大审批者数量为 10。
     + 类型：`StringList`
     + 允许的模式：`^[a-zA-Z0-9_+=,.@\\-\/]{1,128}$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):(sts|iam)::[0-9]{12}:[a-zA-Z0-9_+=,.@\\-\/]{1,256}$`
   + **MinimumRequiredApprovals （可选）：**
     + 描述：（可选）恢复自动化所需的最低批准数量。默认值：1。
     + 类型：整数
     + 默认：1
   + **DeleteResourcesOnFailure （可选）：**
     + 描述：（可选）是否终止克隆的 Amazon EC2 实例以及自动化AMI是否失败。
     + 类型：`Boolean`
     + 允许的值：`[true, false]`
     + 默认值：`true`
   + **致谢（必填）：**
     + 描述：（必填）请阅读本自动化运行手册执行的操作的完整详细信息，如果您确认这些步骤，请写上 “是的，我理解并确认”。
     + 类型：`String`
     + 允许的模式：`^Yes, I understand and acknowledge$`
   + **AllowInstanceStoreInstances （可选）：**
     + 描述：（可选）如果您指定 `yes`，运行手册将在已附加实例存储卷的实例上运行。**警告：**实例停止后，实例存储卷中的数据将丢失。此参数有助于避免数据意外丢失。
     + 类型：`Boolean`
     + 允许的值：`[yes, no]`
     + 默认值：`no`

1. 选择**执行**。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **`checkConcurrency`**:

     确保只有一次针对当前 Amazon EC2 实例执行此运行手册。
   + **`getTargetInstanceProperties`**:

     获取目标 Amazon EC2 实例的详细信息。
   + **`checkIfNitroInstanceTypeIsSupportedInAZ`**:

     确定目标 Nitro 实例类型是否在与目标 Amazon EC2 实例相同的可用区中受支持。
   + **`createTestImage`**:

     AMI从提供的实例创建测试。
   + **`launchTestInstanceInSameSubnet`**:

     AMI使用与目标 Amazon EC2 实例相同的配置从测试中启动测试版 Amazon EC2 实例。
   + **`approvalToStopTargetInstance`**:

     等待指定委托人批准后停止目标实例。
   + **`createBackupImage`**:

     AMI从提供的实例创建用于备份。
   + **`launchInstanceInSameSubnet`**:

     AMI使用与源 Amazon EC2 实例相同的配置，从备份中启动一个新的 Amazon EC2 实例。
   + **`checkAndInstallENADrivers`**:

     确定 Amazon EC2 实例上增强型联网适配器 (ENA) 驱动程序的可用性，如果缺少则进行安装。
   + **`checkAndAddNVMEDrivers`**:

     确定克隆的 Amazon EC2 实例上的 NVMe 驱动程序的可用性，如果缺少则进行安装。
   + **`checkAndModifyFSTABEntries`**:

     确定中`/etc/fstab`是否使用了设备名称，如果找到 UUIDs，则将其替换为其名称。
   + **`setNitroInstanceTypeForClonedInstance`**:

     为克隆的亚马逊 EC2 实例设置提供的目标 Amazon EC2 实例类型。
   + **`approvalForCreatingImageAfterDriversInstallation`**:

     如果克隆的 Amazon EC2 实例在 Nitro 平台上成功启动，则等待用户批准。
   + **`createImageAfterDriversInstallation`**:

     仅当新的 Amazon EC2 实例在 Nitro 平台上成功启动时，才会从新的 Amazon EC2 实例创建映像。

1. 完成后，请查看 “**输出**” 部分，了解执行的详细结果。

**参考**

AWS Systems Manager  自动化
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CloneXenEC2InstanceAndMigrateToNitro/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWSSupport-ConfigureEC2Metadata`
<a name="automation-awssupport-configureec2metadata"></a>

 **描述** 

本运行手册可帮助您为亚马逊弹性计算云 (Amazon) 实例配置实例元数据服务 (IMDS EC2) 选项。使用此运行手册，您可以执行以下配置：
+  IMDSv2 例如，强制使用元数据。
+ 配置 `HttpPutResponseHopLimit` 值。
+ 允许或拒绝访问实例元数据。

有关实例元数据的更多信息，请参阅 *Amazon EC2 用户指南*中的[配置实例元数据服务](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ConfigureEC2Metadata)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ 强制执行 IMDSv2

  类型：字符串

  有效值：必需 \$1 可选

  默认：可选

  描述：（可选）强制执行 IMDSv2。如果您愿意`required`，Amazon EC2 实例将仅使用 IMDSv2。如果您愿意`optional`，则可以在 IMDSv1 和之间进行选择， IMDSv2 以访问元数据。
**重要**  
如果强制执行 IMDSv2，使用的应用程序 IMDSv1 可能无法正常运行。在强制执行之前 IMDSv2，请确保使用 IMDS 的应用程序已升级到支持的 IMDSv2版本。有关实例元数据服务版本 2 (IMDSv2) 的信息，请参阅 *Amazon EC2 用户指南*中的[配置实例元数据服务](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。
+ HttpPutResponseHopLimit

  类型：整数

  有效值：0-64

  默认：0

  描述：（可选）实例元数据请求的所需 HTTP PUT 响应跃点限制值 (1-64)。此值控制 PUT 响应可以遍历的跳点数。为防止响应在实例之外传播，请为参数值指定 `1`。
+ InstanceId

  类型：字符串

  描述：（必填）您要配置其元数据设置的 Amazon EC2 实例的 ID。
+ MetadataAccess

  类型：字符串

  有效值：启用 \$1 禁用

  默认值：启用

  描述：（可选）允许或拒绝访问 Amazon 实例中的 EC2 实例元数据。如果您指定 `disabled`，则所有其他参数将被忽略，且实例的元数据访问将被拒绝。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ec2:DescribeInstances`
+ `ec2:ModifyInstanceMetadataOptions`
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`

 **文档步骤** 

1. branchOnMetadataAccess-根据`MetadataAccess`参数值进行分支自动化。

1. disableMetadataAccess -调用 ModifyInstanceMetadataOptions API 操作以禁用元数据端点访问权限。

1. branchOnHttpPutResponseHopLimit -根据`HttpPutResponseHopLimit`参数的值分支自动化。

1. maintainHopLimitAndConfigureImdsVersion -如果`HttpPutResponseHopLimit`为 0，则保持当前跳跃限制并更改其他元数据选项。

1. waitBeforeAssertingIMDSv2状态-在断言 IMDSv2状态之前等待 30 秒。

1. setHopLimitAndConfigureImdsVersion -如果大`HttpPutResponseHopLimit`于 0，则使用给定的输入参数配置元数据选项。

1. waitBeforeAssertingHopLimit -在断言元数据选项之前等待 30 秒。

1. assertHopLimit -断言该`HttpPutResponseHopLimit`属性已设置为您指定的值。

1. branchVerificationOnIMDSv2选项-根据`EnforceIMDSv2`参数的值进行分支验证。

1. 断言 IMDSv2 IsOptional -将`HttpTokens`值设置为。`optional`

1. 断言 IMDSv2 IsEnforced -将`HttpTokens`值设置为。`required`

1. waitBeforeAssertingMetadataState -等待 30 秒后才断言元数据状态已禁用。

1. assertMetadataIs已禁用-断言元数据为。`disabled`

1. describeMetadataOptions -在应用您指定的更改后获取元数据选项。

 **输出** 

describeMetadataOptions.State

describeMetadataOptions.MetadataAccess

describeMetadataOptions.IMDSv2

describeMetadataOptions.HttpPutResponseHopLimit

# `AWSSupport-ContainEC2Instance`
<a name="automation-awssupport-containec2instance"></a>

 **描述** 

该`AWSSupport-ContainEC2Instance`运行手册为文章中概述的程序提供了自动解决方案，[当面临潜在的入侵或可疑情况时，如何隔离 Amazon EC2 实例](https://repost.aws/articles/ARwkDzoO-8RN-SDQnA1aX-XA)？ 自动化的分支取决于您指定的值。

 **如何工作？** 

本自动化运行手册通过一系列协调步骤对 Amazon EC2 实例`AWSSupport-ContainEC2Instance`进行网络控制。在`Contain`模式下执行时，它首先验证输入参数并检查实例是否未终止。然后，它将当前的安全组配置备份到 Amazon S3 存储桶，以便日后恢复。运行手册创建了两个安全组：临时的 “所有访问权限” 安全组和最后一个 “遏制” 安全组。它会逐渐将实例的网络接口从其原始安全组过渡到所有访问安全组，最后过渡到包含安全组。如果指定，它将创建实例的未加密和加密AMI备份。对于 Auto Scaling 组中的实例，它会处理必要的 Auto Scaling 组修改并将实例置于待机状态。在`Release`模式下执行时，它会使用 Amazon S3 中的备份设置将实例恢复到其原始网络配置。运行手册支持无需进行实际更改即可预览操作的`DryRun`参数，并在整个容器和发布工作流程中包括全面的错误处理和报告机制。

**重要**  
此运行手册执行各种需要提升权限的操作，例如修改安全组、创建安全组以及与 Auto AMI Scaling 组进行交互。这些操作可能会导致权限提升或影响您账户中的其他工作负载。您应查看向`AutomationAssumeRole`参数指定的角色授予的权限，并确保这些权限适用于预期用例。您可以参考以下 AWS 文档，了解有关 IAM 权限的更多信息：[https://docs.aws.amazon.com//IAM/latest/UserGuide/access_controlling.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_controlling.html)。
此运行手册执行的变异操作可能会导致您的工作负载不可用或中断。具体而言，它会修改与目标 Amazon EC2 实例关联的安全组，这可能会影响网络连接。此外，如果该实例是 Auto Scaling 组的一部分，则运行手册可能会修改该组的配置，从而可能影响其扩展行为。
在控制过程中，此运行手册会创建其他资源，例如安全组和。AMI虽然这些资源被标记为用于识别，但您应该知道它们的创建，并确保在控制过程完成后进行适当的清理或管理。
如果将`Action`参数设置为`Release`，则此运行手册会尝试将 Amazon EC2 实例的配置恢复到其原始状态。但是，还原过程有可能失败，从而使实例处于不一致的状态。运行手册提供了在出现此类故障时手动恢复的说明，但您应该做好在恢复过程中处理潜在问题的准备。
建议在生产环境中执行运行手册之前，请仔细阅读运行手册，了解其潜在影响，并在非生产环境中对其进行测试。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ContainEC2Instance) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

/

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ 自动缩放：CreateOrUpdateTags
+ 自动缩放：DeleteTags
+ 自动缩放：DescribeAutoScalingGroups
+ 自动缩放：DescribeAutoScalingInstances
+ 自动缩放：DescribeTags
+ 自动缩放：EnterStandby
+ 自动缩放：ExitStandby
+ 自动缩放：UpdateAutoScalingGroup
+ ec2: AuthorizeSecurityGroupEgress
+ ec2: AuthorizeSecurityGroupIngress
+ ec2: CopyImage
+ ec2: CreateImage
+ ec2: CreateSecurityGroup
+ ec2: CreateSnapshot
+ ec2: CreateTags
+ ec2: DeleteSecurityGroup
+ ec2: DeleteTags
+ ec2: DescribeImages
+ ec2: DescribeInstances
+ ec2: DescribeSecurityGroups
+ ec2: DescribeSnapshots
+ ec2: DescribeTags
+ ec2: ModifyNetworkInterfaceAttribute
+ ec2: RevokeSecurityGroupEgress
+ kms: CreateGrant
+ kms: DescribeKey
+ kms: GenerateDataKeyWithoutPlaintext
+ kms: ReEncryptFrom
+ kms: ReEncryptTo
+ s3：CreateBucket
+ s3：DeleteObjectTagging
+ s3：GetAccountPublicAccessBlock
+ s3：GetBucketAcl
+ s3：GetBucketLocation
+ s3：GetBucketOwnershipControls
+ s3：GetBucketPolicy
+ s3：GetBucketPolicyStatus
+ s3：GetBucketPublicAccessBlock
+ s3：GetObject
+ s3：ListBucket
+ s3：PutAccountPublicAccessBlock
+ s3：PutBucketPolicy
+ s3：PutBucketVersioning
+ s3：PutObject
+ s3：PutObjectTagging

策略示例：

------
#### [ JSON ]

****  

```
	{
		"Version":"2012-10-17",		 	 	 
		"Statement": [
			{
				"Sid": "ReadOperations",
				"Effect": "Allow",
				"Action": [
					"autoscaling:DescribeAutoScalingGroups",
					"autoscaling:DescribeAutoScalingInstances",
					"autoscaling:DescribeTags",
					"ec2:DescribeImages",
					"ec2:DescribeInstances",
					"ec2:DescribeSecurityGroups",
					"ec2:DescribeSnapshots",
					"ec2:DescribeTags",
					"kms:DescribeKey",
					"s3:GetAccountPublicAccessBlock",
					"s3:GetBucketAcl",
					"s3:GetBucketLocation",
					"s3:GetBucketOwnershipControls",
					"s3:GetBucketPolicy",
					"s3:GetBucketPolicyStatus",
					"s3:GetBucketPublicAccessBlock",
					"s3:GetObject",
					"s3:ListBucket"
				],
				"Resource": "*"
			},
			{
				"Sid": "WriteOperations",
				"Effect": "Allow",
				"Action": [
					"autoscaling:CreateOrUpdateTags",
					"autoscaling:DeleteTags",
					"autoscaling:EnterStandby",
					"autoscaling:ExitStandby",
					"autoscaling:UpdateAutoScalingGroup",
					"ec2:AuthorizeSecurityGroupEgress",
					"ec2:AuthorizeSecurityGroupIngress",
					"ec2:CopyImage",
					"ec2:CreateImage",
					"ec2:CreateSecurityGroup",
					"ec2:CreateSnapshot",
					"ec2:CreateTags",
					"ec2:DeleteSecurityGroup",
					"ec2:DeleteTags",
					"ec2:ModifyNetworkInterfaceAttribute",
					"ec2:RevokeSecurityGroupEgress",
					"kms:CreateGrant",
					"kms:GenerateDataKeyWithoutPlaintext",
					"kms:ReEncryptFrom",
					"kms:ReEncryptTo",
					"s3:CreateBucket",
					"s3:DeleteObjectTagging",
					"s3:PutAccountPublicAccessBlock",
					"s3:PutBucketPolicy",
					"s3:PutBucketVersioning",
					"s3:PutObject",
					"s3:PutObjectTagging"
				],
				"Resource": "*"
			}
		]
	}
```

------

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainEC2Instance/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainEC2Instance/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **Execute automation**（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**
     + 描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
     + 类型：`AWS::IAM::Role::Arn`
   + **操作（必填）：**
     + 描述：（必填）选择`Contain`隔离 Amazon EC2 实例或`Restore`尝试从先前的备份中恢复 Amazon EC2 实例配置的原始配置。
     + 类型：字符串
     + 允许的模式：`Contain|Restore`
   + **DryRun （可选）：**
     + 描述：（可选）设置为时`true`，自动化将不执行任何命令，而是报告其本来会尝试执行的操作，详细说明每个步骤。默认值：`true`。
     + 类型：布尔值
     + 允许的值：`true|false`
   + **创建AMIBackup （可选）：**
     + 描述：（可选）如果设置为`true`，则将在执行控制操作之前创建一个 AMI Amazon EC2 实例。
     + 类型：布尔值
     + 允许的值：`true|false`
   + **KmsKey （可选）：**
     + 描述：（可选）将用于创建加密的目标 Amazon EC2 实例AMI的 AWS KMS 密钥的 ID。默认值设置为`alias/aws/ebs`。
     + 类型：字符串
     + 允许的模式：`^(((arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:key/)?([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|mrk-[a-f0-9]{32}))|(arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:)?alias/.{1,})$`
   + **BackupS3BucketName （视情况而定）：**
     + 描述：（视情况而定）Amazon Amazon S3 存储桶，`Action`用于在配置时上传配置`Contain`或在配置`Action`时恢复配置`Release`。**注意：**如果提供的存储桶在账户中不存在，自动化系统将代表您创建一个 Amazon S3 存储桶。
     + 类型：`AWS::S3::Bucket::Name`
   + **TagIdentifier （可选）：**
     + 描述：（可选）一种标记`Key=BatchId,Value=78925`，其格式将添加到此 Runbook 在包含工作流程中创建或修改的 AWS 资源中。此标签可用于识别和管理在控制过程中关联的资源。在还原工作流程中，此参数指定的标签将从资源中删除。**注意：**标签键和值区分大小写。
     + 类型：字符串
     + 允许的模式：`^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$`
   + **BackupS3BucketAccess（视情况而定）：**
     + 描述：（视情况而定）运行控制操作后允许访问备份 Amazon S3 存储桶的 IAM 用户或角色的 ARN。当是时，此参数是必需`Action`的`Contain`。自动将`AutomationAssumeRole`正在其上下文中运行自动化的用户添加到列表中。
     + 类型：字符串
     + 允许的模式：`^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$`
   + **IngressTrafficRules （可选）：**
     + 描述：（可选）以逗号分隔的安全组入口规则映射，格式为 `[{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}]` Cidr IpProtocol、 FromPort 和 ToPort ，将应用于 Amazon EC2 实例。如果未提供任何规则，则会将没有任何入口规则的安全组附加到 Amazon EC2 实例，从而有效地将其与任何传入流量隔离开来。
     + 类型： MapList
     + 允许的模式：`^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}`
   + **EgressTrafficRules （可选）：**
     + 描述：（可选）以逗号分隔的安全组出站规则映射，其中包含 Cidr IpProtocol、 FromPort 和 ToPort ，格式`[{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}]`将应用于 Amazon EC2 实例。如果未提供任何规则，则会将没有任何出口规则的安全组附加到 Amazon EC2 实例，从而有效地阻止所有传出流量。
     + 类型： MapList
     + 允许的模式：`^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}`
   + **BackupS3KeyName （可选）：**
     + 描述：（可选）如果设置`Action`为`Restore`，则指定自动化用于尝试恢复目标 Amazon EC2 实例配置的 Amazon S3 密钥。Amazon S3 密钥通常遵循以下格式：`{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json`。密钥可以从之前的控制自动化执行的输出中获得。
     + 类型：字符串
     + 允许的模式：`^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$`

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **ValidateRequiredInputs**

     验证是否提供了所有必需的输入。
   + **AssertInstanceIsNotTerminated**

     检查目标 Amazon EC2 实例是否未终止（已删除）。
   + **GetAutoScalingInstanceInfo**

     如果目标 Amazon EC2 实例是 Auto Scaling 组的一部分，则获取 Amazon EC2 实例生命周期和组名称。
   + **CheckBackupS3BucketName**

     检查目标 Amazon S3 存储桶是否可能向其对象授予`read`或`write`公开访问权限。如果存储桶不存在，则会创建一个新的 Amazon S3 `BackupS3BucketName` 存储桶。
   + **BranchOnActionAndMode**

     根据输入参数对自动化进行分支`Action`和`DryRun`。
   + **BranchOnAutoScalingGroupMembership**

     根据目标 Amazon EC2 实例是否属于 Auto Scaling 组及其生命周期状态来分支自动化。
   + **DescribeAutoScalingGroups**

     获取并存储关联的 Amazon EC2 Auto Scaling 组配置。
   + **ModifyAutoScalingGroup**

     修改包含操作的关联的 Amazon EC2 Auto Scaling 组配置，将 Amazon EC2 实例设置为`Standby`状态并调整 Auto Scaling 组`MinSize`容量。
   + **BackupInstanceSecurityGroups**

     获取并存储目标 Amazon EC2 实例安全组的配置。
   + **CreateAllAccessSecurityGroup**

     创建一个临时安全组，允许取代目标 Amazon EC2 实例的安全组的所有入口流量。
   + **CreateContainmentSecurityGroup**

     使用指定的入口和出口规则创建限制性容器安全组，并用它替换临时的全部访问安全组。
   + **BranchOnCreateAMIBackup**

     根据`CreateAMIBackup`输入参数对自动化进行分支。
   + **AssertSourceInstanceRootVolumeIsEbs**

     检查目标 Amazon EC2 实例根卷是否是 Amazon EBS。
   + **CreateImage**

     创建目标 Amazon EC2 实例。AMI
   + **RestoreInstanceConfiguration**

     从备份中恢复目标 Amazon EC2 实例配置。
   + **ReportContain**

     输出遏制操作的试运行详细信息。
   + **ReportRestore**

     输出恢复操作的试运行详细信息。
   + **ReportRestoreFailure**

     提供在恢复工作流程失败的情况下恢复目标 Amazon EC2 实例原始配置的说明。
   + **ReportContainmentFailure**

     提供在控制工作流程失败的情况下恢复目标 Amazon EC2 实例原始配置的说明。
   + **FinalOutput**

     输出遏制操作的详细信息。

1. 执行完成后，请查看 “输出” 部分，了解执行的详细结果：
   + **FinalOutput。输出**

     当设置为 False 时`DryRun`，输出此运行手册执行的遏制操作的详细信息。
   + **RestoreInstanceConfiguration。输出**

     当设置为 False 时，输出此运行手册执行`DryRun`的还原操作。
   + **ReportContain。输出**

     设置为 Tr `DryRun` ue 时，输出此运行手册执行的遏制操作的详细信息。
   + **ReportRestore。输出**

     设置为 True 时`DryRun`，输出此运行手册执行的还原操作的详细信息。
   + **ReportContainmentFailure。输出**

     提供在控制工作流程失败的情况下恢复目标 Amazon EC2 实例原始配置的说明。
   + **ReportRestoreFailure。输出**

     提供在恢复工作流程失败的情况下恢复目标 Amazon EC2 实例原始配置的说明。

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ContainEC2Instance)
+ [运行简单的自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWSSupport-CopyEC2Instance`
<a name="automation-awssupport-copyec2instance"></a>

 **描述** 

该`AWSSupport-CopyEC2Instance`运行手册为知识中心文章中概述的程序提供了自动解决方案。[如何将我的 EC2实例移动到另一个子网、可用区或 VPC](https://aws.amazon.com/premiumsupport/knowledge-center/move-ec2-instance/)？ 自动化的分支取决于您为 `Region` 和 `SubnetId` 参数指定的值。

如果您为参数指定值但未为`SubnetId`参数指定值，`Region`则自动化会创建一个 Amazon Machine Image (AMI) 的目标实例并从中启动一个新实例 AMI 在您指定的子网中。

如果您为`SubnetId`参数和参数指定值，`Region`则自动化会创建一个 AMI 在目标实例中，复制 AMI 到 AWS 区域 您指定的，然后从中启动一个新实例 AMI 在您指定的子网中。

如果您为参数指定值但未为`Region`参数指定值，`SubnetId`则自动化会创建一个 AMI 在目标实例中，复制 AMI 到您指定的区域，然后从中启动一个新实例 AMI 位于目标区域的虚拟私有云 (VPC) 的默认子网中。

如果没有为`Region`或`SubnetId`参数指定任何值，则自动化会创建一个 AMI 的目标实例，并从中启动一个新实例 AMI 在您的 VPC 的默认子网中。

要复制 AMI 对于不同的区域，您必须为`AutomationAssumeRole`参数提供一个值。如果在`waitForAvailableDestinationAmi`步骤期间自动化超时，AMI 可能还在复制。在这种情况下，您可以等待复制完成，然后手动启动该实例。

在运行此自动化之前，请注意以下事项：
+ AMI 是基于Amazon Elastic Block Store (Amazon EBS) 快照。对于之前没有快照的大型文件系统，AMI 创建可能需要几个小时。要减少 AMI 创建时间，请在创建 Amazon EBS 快照之前创建 AMI.
+ 创建一个 AMI 不会为实例上的实例存储卷创建快照。有关将实例存储卷备份到 Amazon EBS 的信息，请参阅[如何将我的亚马逊实例上的实例存储卷备份到 Amazon EC2 E](https://aws.amazon.com/premiumsupport/knowledge-center/back-up-instance-store-ebs/) BS？
+ 新的 Amazon EC2 实例具有不同的私有 IPv4 或公 IPv6 有 IP 地址。您必须使用分配给新实例的新 IP 地址，更新对旧 IP 地址的所有引用（例如，在 DNS 条目中）。如果您在源实例上使用弹性 IP 地址，请务必将其附加到新实例。
+ 当副本启动并尝试联系域时，可能会出现域安全标识符 (SID) 冲突问题。在捕获 AMI 之前，请使用 Sysprep 或从域中移除已加入域的实例，以防止出现冲突问题。有关更多信息，请参阅[如何使用 Sysprep 创建和安装自定义](https://aws.amazon.com/premiumsupport/knowledge-center/sysprep-create-install-ec2-windows-amis/)的可重复使用的 Windows？AMIs

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CopyEC2Instance) 

**重要**  
我们不建议使用此运行手册来复制 Microsoft Active Directory Domain Controller 实例。

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（必需）要复制的实例的 ID。
+ KeyPair

  类型：字符串

  描述：（可选）要与新复制的实例关联的密钥对。如果您要将实例复制到其他区域，请确保指定的区域存在密钥。
+ 区域

  类型：字符串

  描述：（可选）要将实例复制到的区域。如果您为此参数指定一个值，但未为 `SubnetId` 和 `SecurityGroupIds` 参数指定值，自动化将尝试使用默认安全组在默认的 VPC 中启动实例。如果在目标区域启用 EC2-Classic，则启动将失败。
+ SubnetId

  类型：字符串

  描述：（可选）要将实例复制到的子网的 ID。如果目标区域启用了 EC2-Classic，则必须为此参数提供一个值。
+ InstanceType

  类型：字符串

  描述：（可选）复制的实例应当启动的目标实例类型。如果您没有为此参数指定一个值，则使用源实例类型。如果要将实例复制到的区域不支持源实例类型，自动化将失败。
+ SecurityGroupIds

  类型：字符串

  描述：（可选） IDs 要与复制的实例关联的安全组列表，以逗号分隔。如果您未为此参数指定一个值，且该实例未被复制到其他区域，则使用与源实例关联的安全组。如果您要将实例复制到其他区域，则使用目的地区域中默认 VPC 的默认安全组。
+ KeepImageSourceRegion

  类型：布尔值

  有效值：true \$1 false

  默认：True

  描述：（可选）如果您`true`为此参数指定，则自动化不会删除 AMI 源实例的。如果您`false`为此参数指定，则自动化会取消注册 AMI 并删除关联的快照。
+ KeepImageDestinationRegion

  类型：布尔值

  有效值：true \$1 false

  默认：True

  描述：（可选）如果您`true`为此参数指定，则自动化不会删除 AMI 它将被复制到您指定的区域。如果您`false`为此参数指定，则自动化会取消注册 AMI 并删除关联的快照。
+ NoRebootInstanceBeforeTakingImage

  类型：布尔值

  有效值：true \$1 false

  默认：false

  描述：（可选）如果您`true`为此参数指定，则在创建源实例之前，不会重新启动源实例 AMI。 使用此选项时，无法保证所创建映像的文件系统的完整性。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ec2:CreateImage`
+ `ec2:DeleteSnapshot`
+ `ec2:DeregisterImage`
+ `ec2:DescribeInstances`
+ `ec2:DescribeImages`
+ `ec2:RunInstances`

如果您要将实例复制到其他区域，则还需要具有以下权限。
+ `ec2:CopyImage`

 **文档步骤** 
+ describeOriginalInstance详细信息-从要复制的实例中收集详细信息。
+ assertRootVolumeIsEbs -检查根卷设备类型是否为`ebs`，如果不是，则结束自动化。
+ evalInputParameters -评估为输入参数提供的值。
+ createLocalAmi -创建一个 AMI 源实例的。
+ tagLocalAmi -标记 AMI 在上一步中创建。
+ branchAssertRegionIsSame -根据实例是在同一区域内复制还是复制到其他区域进行分支。
+ branchAssertSameRegionWithKeyPair -根据是否为在同一区域内复制的实例的`KeyPair`参数提供了值进行分支。
+ sameRegionLaunchInstanceWithKeyPair -从启动 Amazon EC2 实例 AMI 源实例位于您使用指定的 key pair 指定的子网或子网中。
+ sameRegionLaunchInstanceWithoutKeyPair -从启动 Amazon EC2 实例 AMI 源实例位于同一子网或不带密钥对（key pair）的子网中。
+ copyAmiTo区域-复制 AMI 到目标地区。
+ waitForAvailableDestinationAmi -等待复制的内容 AMI 要成为的状态`available`。
+ destinationRegionLaunch实例-使用复制的 EC2 实例启动 Amazon 实例 AMI.
+ branchAssertDestinationAmiToDelete -根据您为`KeepImageDestinationRegion`参数提供的值进行分支。
+ deregisterDestinationAmiAndDeleteSnapshots -注销复制的内容 AMI 并删除关联的快照。
+ branchAssertSourceAmiTodelete -根据您为`KeepImageSourceRegion`参数提供的值进行分支。
+ deregisterSourceAmiAndDeleteSnapshots -注销 AMI 从源实例创建并删除关联的快照。
+ sleep - 使自动化休眠 2 秒钟。这是最终步骤。

 **输出** 

sameRegionLaunchInstanceWithKeyPair.InstanceIds

sameRegionLaunchInstanceWithoutKeyPair.InstanceIds

destinationRegionLaunch实例。 DestinationInstanceId

# `AWSPremiumSupport-DiagnoseDiskUsageOnLinux`
<a name="automation-awspremiumsupport-diagnosediskusageonlinux"></a>

 **描述** 

该**AWSPremiumSupport-DiagnoseDiskUsageOnLinux**运行手册分析了目标亚马逊弹性计算云 (Amazon EC2) 实例的亚马逊弹性区块存储 (Amazon EBS) 卷，以确定它们是否需要扩展。它会根据运行手册输入参数中定义的阈值检查每个卷的使用情况、文件系统类型和扩展历史记录。该脚本会考虑诸如最近的修改、支持的文件系统和 AWS 音量限制等因素。然后，它会输出可供扩展的卷（如果有），以及每卷的相关细节。

 **如何工作？** 

此运行手册执行以下操作：
+ 验证目标实例是否由 Systems Manager 管理且未运行 Windows
+ 检索实例详细信息，包括平台和根设备类型
+ 获取 Amazon EC2 实例使用的卷
+ 在 Linux 上运行预检查以分析磁盘使用情况并确定扩展候选对象
+ 输出有待扩展的数量以及相关的细节

**重要**  
访问`AWSPremiumSupport-*`运行手册需要订阅 Business \$1 Support、Enterprise Support 或统一运营订阅。有关更多信息，请参阅[比较 AWS 支持 计划](https://aws.amazon.com/premiumsupport/plans/)。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-DiagnoseDiskUsageOnLinux) 

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ ssm：DescribeInstanceInformation
+ ec2: DescribeInstances
+ ec2: DescribeVolumes
+ ssm：SendCommand
+ ssm：ListCommandInvocations

策略示例：

```
 {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "ssm:DescribeInstanceInformation",
                 "ec2:DescribeInstances",
                 "ec2:DescribeVolumes",
                 "ssm:SendCommand",
                 "ssm:ListCommandInvocations"
             ],
             "Resource": "*"
         }
     ]
 }
```

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-DiagnoseDiskUsageOnLinux/description](https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-DiagnoseDiskUsageOnLinux/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **Execute automation**（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**
     + 描述：（可选）允许 Systems Manager Automation 代表您执行操作的 IAM 角色的亚马逊资源名称 (ARN)。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
     + 类型：`AWS::IAM::Role::Arn`
   + **InstanceId （必填）：**
     + 说明：（必需）您的 Amazon EC2 实例的 ID。
     + 类型：`String`
     + 允许模式：`^i-[0-9a-f]{8,17}$`
   + **VolumeExpansionUsageTrigger （必填）：**
     + 描述：（必填）触发扩展所需的分区空间的最小使用量（百分比）。
     + 类型：`String`
     + 允许模式：`^[0-9]{1,2}$`
   + **VolumeExpansionCapSize （必填）：**
     + 描述：（必填）Amazon EBS 卷将增加到的最大大小（以 GiB 为单位）。
     + 类型：`String`
     + 允许模式：`^[0-9]{1,4}$`
   + **VolumeExpansionGibIncrease （必填）：**
     + 描述：（必填）增加音量的 GiB。`VolumeExpansionPercentageIncrease`将使用`VolumeExpansionGibIncrease`和之间最大的净增幅。
     + 类型：`String`
     + 允许模式：`^[0-9]{1,4}$`
   + **VolumeExpansionPercentageIncrease （必填）：**
     + 描述：（必填）增加音量的百分比。`VolumeExpansionPercentageIncrease`将使用`VolumeExpansionGibIncrease`和之间最大的净增幅。
     + 类型：`String`
     + 允许模式：`^[0-9]{1,2}$`

1. 选择**执行**。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **AssertInstanceIsManagedInstance**:

     检查目标实例是否由 Systems Manager 管理。
   + **DescribeInstance**:

     描述目标 Amazon EC2 实例并检索实例的详细信息`Platform`，包括、和。`RootDeviceType`
   + **BranchOnPlatform**:

     在平台类型上进行分支，如果平台与 Windows 不同，则继续执行。
   + **DescribeVolumes**:

     获取 Amazon EC2 实例使用的卷。
   + **RunPreChecksOnLinux**:

     对上一步中收集的卷进行检查。

1. 完成后，请查看 “**输出**” 部分，了解执行的详细结果。

**参考**

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-DiagnoseDiskUsageOnLinux/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWSSupport-EnableWindowsEC2SerialConsole`
<a name="automation-enable-windows-ec2-serial-console"></a>

 **描述** 

 该运行手册`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 RescueWorkflow](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-awssupport-startec2rescueworkflow.html) 创建临时 Amazon EC2 实例，以离线执行所需的更改。

 有关更多信息，请参阅适用于 [Windows 实例的 Amazon EC2 串行控制台。](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/ec2-serial-console.html)

**重要**  
如果您在实例上启用 SAC，则依赖密码检索的 Amazon EC2 服务将无法在 Amazon EC2 控制台上运行。有关更多信息，请参阅[使用 SAC 排查 Windows 实例的问题](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/troubleshooting-sac.html)。
要配置对串行控制台的访问权限，您必须在账户级别授予串行控制台访问权限，然后配置 AWS Identity and Access Management (IAM) 策略以向您的用户授予访问权限。您还必须在每个实例上配置基于密码的用户，以使您的用户能够使用串行控制台进行故障排查。有关更多信息，请参阅[配置对 Amazon EC2 串行控制台的访问权限。](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/configure-access-to-serial-console.html)
要查看您的账户是否启用了串行控制台，请参阅[查看串行控制台的账户访问状态。](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/configure-access-to-serial-console.html#sc-view-account-access)
只有在 [Nitro 系统](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/instance-types.html#nitro-instance-types)上构建的虚拟化实例才支持串行控制台访问。

 有关更多信息，请参阅 Amazon EC2 串行控制台[先决条件。](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/ec2-serial-console-prerequisites.html)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**

**所需的 IAM 权限**

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

------
#### [ JSON ]

****  

```
{
    "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:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE",
                "arn:aws:ec2:us-east-1:111122223333:volume/vol-049df61146EXAMPLE",
                "arn:aws:iam::111122223333:instance-profile/instance-profile-name",
                "arn:aws:ssm:us-east-1:111122223333:parameter/aws/service/*",
                "arn:aws:ssm:us-east-1:*:document/AWSSupport-StartEC2RescueWorkflow",
                "arn:aws:ssm:us-east-1:*:document/AWS-ConfigureAWSPackage",
                "arn:aws:ssm:us-east-1:*:document/AWS-RunPowerShellScript",
                "arn:aws:ssm:us-east-1:111122223333:automation-execution/*"
            ]
        },
        {
            "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": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ssm.amazonaws.com",
                        "ec2.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

 **说明** 

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

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

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **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`。

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **CheckIfEc2SerialConsoleAccessEnabled:**

     检查是否在账户级别启用了 Amazon EC2 串行控制台访问权限。注意：默认情况下，无法访问串行控制台。有关更多信息，请参阅[配置对 Amazon EC2 串行控制台的访问权限。](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/configure-access-to-serial-console.html#sc-grant-account-access)
   + **CheckIfEc2InstanceIsWindows:**

     断言目标实例平台是否是 Windows。
   + **GetInstanceType:**

     检索目标实例的实例类型。
   + CheckIfInstanceTypeIsNitro:****

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

     通过调用 `DescribeAutoScalingInstances` API 来检查 Amazon EC2 实例是否属于亚马逊 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 备份。
   + **启用 SACAndBootMenu：**

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

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

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

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

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

1. 完成后，请查看 “输出” 部分，了解执行的详细结果：
   + **启用SACAndBootMenu。输出：**

     `EnableSACAndBootMenu`步骤中执行命令的输出。
   + **GetExecutionDetails.OfflineScriptOutput:**

     `RunAutomationToInjectOfflineScriptForEnablingSACAndBootMenu`步骤中执行的离线脚本的输出。
   + **GetExecutionDetails.BackupBeforeScriptExecution:**

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

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-EnableWindowsEC2SerialConsole)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWSPremiumSupport-ExtendVolumesOnWindows`
<a name="automation-awspremiumsupport-extendvolumesonwindows"></a>

 **描述** 

该`AWSPremiumSupport-ExtendVolumesOnWindows`运行手册在目标亚马逊弹性计算云 (Amazon EC2) 实例上扩展了亚马逊弹性区块存储 (Amazon EBS) 卷、其分区和文件系统。

**重要注意事项**  
**操作影响和交易量状态**：Amazon EBS 卷修改分三个阶段进行：`modifying``optimizing`、和`completed`。当卷达到`optimizing`状态时，这种自动化会继续进行文件系统扩展。在此`optimizing`状态下，在调整分区大小期间，您可能会遇到暂时的性能影响和潜在的文件系统级中断。您可以[监控 Amazon EBS 卷修改的进度](https://docs.aws.amazon.com//ebs/latest/userguide/monitoring-volume-modifications.html)。
**成本和限制**：增加 Amazon EBS 卷大小将导致每月存储成本增加。有关更多信息，请参阅 [Amazon EBS 定价](https://aws.amazon.com/ebs/pricing)。本运行手册创建的备份 AMI 和关联快照将根据其大小和您保存的时间长短产生额外费用。对于某些卷类型，如果您需要在扩展后保持相同的每 GB IOPS 比率，则可能需要修改预配置的 IOPS。
**备份和恢复**：在对卷进行任何更改之前，运行手册会创建备份 AMI。AMI 和关联的快照不会自动从您的账户中删除。如果不再需要这些备份，则应手动删除这些备份。如果出现故障，可以从相关 AMI 的快照中恢复卷，如[使用快照替换 Amazon EBS 卷](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ebs-restoring-volume.html)中所述。

 **如何工作？** 

此运行手册执行以下操作：
+ 验证目标实例是否由 Systems Manager 管理并且正在运行 Windows Server
+ 确保只有一次针对当前 Amazon EC2 实例执行此运行手册
+ 从目标实例创建备份 Amazon 系统映像 (AMI)
+ 扩展指定用于扩展的 Amazon EBS 卷
+ 使用命令扩展目标实例上的文件系统 PowerShell 

**重要**  
访问`AWSPremiumSupport-*`运行手册需要订阅 Business \$1 Support、Enterprise Support 或统一运营订阅。有关更多信息，请参阅[比较 AWS 支持 计划](https://aws.amazon.com/premiumsupport/plans/)。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-ExtendVolumesOnWindows) 

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ec2:DescribeInstances`
+ `ec2:CreateImage`
+ `ec2:DescribeImages`
+ `ec2:DescribeVolumes`
+ `ec2:ModifyVolume`
+ `ssm:SendCommand`
+ `ssm:ListCommandInvocations`
+ `ssm:DescribeInstanceInformation`

示例 IAM 策略：

```
 {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "ec2:DescribeInstances",
                 "ec2:CreateImage",
                 "ec2:DescribeImages",
                 "ec2:DescribeVolumes",
                 "ec2:ModifyVolume",
                 "ssm:SendCommand",
                 "ssm:DescribeInstanceInformation",
                 "ssm:ListCommandInvocations"
             ],
             "Resource": "*"
         }
     ]
 }
```

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-ExtendVolumesOnWindows/description](https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-ExtendVolumesOnWindows/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **Execute automation**（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**
     + 描述：（可选）允许 Systems Manager Automation 代表您执行操作的 IAM 角色的亚马逊资源名称 (ARN)。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
     + 类型：`AWS::IAM::Role::Arn`
   + **InstanceId （必填）：**
     + 说明：（必需）Amazon EC2 实例的 ID。
     + 类型：`String`
     + 允许模式：`^i-[0-9a-f]{8,17}$`
   + **VolumeExpansionCapSize （必填）：**
     + 描述：（必填）Amazon EBS 卷将增加的最大大小（以 GiB 为单位）。
     + 类型：`String`
     + 允许模式：`^[0-9]{1,4}$`
   + **DiagnosticResults （必填）：**
     + 描述：（必填）`DiagnoseDiskUsage`文档中预检脚本的结果，格式为单行 CSV。字符串以开头，`EXTEND;`后面是每个卷的以逗号分隔的卷信息，卷之间用分号分隔。每个卷的信息包括：卷 ID、驱动器号、扩展标志（1 表示扩展，0 表示跳过）、以 GB 为单位的新大小、 AWS 区域和原因/操作。
     + 类型：`String`
     + 允许模式：`^EXTEND;[0-9a-zA-Z\\.;_%:\\-\/,\\s]{7,5400}$`

1. 选择**执行**。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **AssertInstanceIsManagedInstance**:

     验证目标实例是否由 Systems Manager 管理。
   + **DescribeInstance**:

     检索目标 Amazon EC2 实例的平台信息。
   + **BranchOnPlatform**:

     确认目标 Amazon EC2 实例平台是 Windows 服务器。
   + **CheckConcurrency**:

     确保只有一次针对当前 Amazon EC2 实例执行此运行手册。
   + **CreateImage**:

     从目标实例创建备份 Amazon 系统映像 (AMI)。
   + **WaitUntilImageReady**:

     等待 Amazon 系统映像 (AMI) 完成创建并进入`available`状态。
   + **扩展 EBSVolume**：

     扩展指定用于扩展的目标实例的 Amazon EBS 卷。
   + **DescribeVolumes**:

     描述指定用于扩展的目标实例的 Amazon EBS 卷。
   + **ExtendFilesystem**:

     使用 PowerShell 命令扩展目标实例的文件系统。

1. 完成后，请查看 “**输出**” 部分，了解执行的详细结果。

**参考**

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-ExtendVolumesOnWindows/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)
+ [请求修改 Amazon EBS 交易量](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/requesting-ebs-volume-modifications.html)

# `AWSSupport-ExecuteEC2Rescue`
<a name="automation-awssupport-executeec2rescue"></a>

 **描述** 

本运行手册使用 EC2Rescue 工具，用于对指定的 Linux 版亚马逊弹性计算云 (Amazon EC2) 实例进行故障排除并在可能的情况下修复常见的连接问题或 Windows Server。 不支持带有加密根卷的实例。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ExecuteEC2Rescue)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  有效值：t2.small \$1 t2.medium \$1 t2.large

  默认值：t2.small

  描述：（必填）的 EC2 实例类型 EC2Rescue 实例。推荐大小：`t2.small`
+ LogDestination

  类型：字符串

  描述：（可选）您账户中用于上传故障排除日志的 Amazon S3 存储桶的名称。请确保存储桶策略不会向不需要访问收集的日志的各方授予不必要的读/写权限。
+ SubnetId

  类型：字符串

  默认： CreateNewVPC

  描述：（可选）的子网 ID EC2Rescue 实例。默认情况下， AWS Systems Manager 自动化会创建一个新的 VPC。或者，您也可以使用 `SelectedInstanceSubnet` 来使用与您的实例相同的子网，或指定一个自定义的子网 ID。``
**重要**  
子网必须与 `UnreachableInstanceId` 位于同一可用区中，并且必须允许访问 SSM 端点。
+ UnreachableInstanceId

  类型：字符串

  描述：（必填）您无法访问的 EC2 实例的 ID。
**重要**  
Systems Manager Automation 会停止此实例，并在尝试任何操作前创建一个 AMI。存储在实例存储卷中的数据将丢失。如果不使用弹性 IP 地址，则公有 IP 地址将发生更改。

**所需的 IAM 权限**

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

您必须至少拥有 `ssm:StartAutomationExecution` 和 `ssm:GetAutomationExecution` 才能读取自动化输出。有关所需权限的更多信息，请参阅 [`AWSSupport-StartEC2RescueWorkflow`](automation-awssupport-startec2rescueworkflow.md)。

 **文档步骤** 

1. `aws:assertAwsResourceProperty`-断言提供的实例是否为 Windows Server: 

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

      1. `aws:executeAutomation`-使用救援`AWSSupport-StartEC2RescueWorkflow`调用 EC2 Windows Server 离线脚本。

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

      1. `aws:executeAwsApi`-从嵌套自动化中检索 EC2救援摘要。

   1. (EC2Rescue 对于 Linux）如果提供的实例是 Linux 实例：

      1. `aws:executeAutomation`-`AWSSupport-StartEC2RescueWorkflow` 使用 Rescue for Linux EC2 离线脚本调用

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

      1. `aws:executeAwsApi`-从嵌套自动化中检索 EC2救援摘要。

 **输出** 

`getEC2RescueForWindowsResult.Output`

`getWindowsBackupAmi.ImageId`

`getEC2RescueForLinuxResult.Output`

`getLinuxBackupAmi.ImageId`

# `AWSSupport-ListEC2Resources`
<a name="automation-awssupport-listec2resources"></a>

 **描述** 

`AWSSupport-ListEC2Resources`运行手册返回有关您指定的亚马逊 EC2 实例和相关资源的信息，例如亚马逊弹性区块存储 (Amazon EBS) 卷、弹性 IP 地址和亚马逊 A EC2 uto Scaling 组。 AWS 区域 默认情况下，信息从所有区域收集，并在在自动化的输出中显示。或者，您可以指定要将信息以逗号分隔值 (.csv) 文件形式上传到的 Amazon Simple Storage Service (Amazon S3) 存储桶。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ListEC2Resources)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（可选）要将所收集的信息上传到的 S3 存储桶的名称。
+ DisplayResourceDeletionDocumentation

  类型：字符串

  默认：True

  描述：（可选）如果设置为 `true`，此自动化会在输出中创建指向与删除资源相关的文档的链接。
+ RegionsToQuery

  类型：字符串

  默认：全部

  描述：（可选）您要从中收集亚马逊 EC2 相关信息的地区。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `autoscaling:DescribeAutoScalingGroups`
+ `ec2:DescribeAddresses`
+ `ec2:DescribeImages`
+ `ec2:DescribeInstances`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeRegions`
+ `ec2:DescribeVolumes`
+ `ec2:DescribeSnapshots`
+ `elasticloadbalancing:DescribeLoadBalancers`

此外，要成功将收集到的信息上传到您指定的 S3 存储桶，`AutomationAssumeRole` 需要执行以下操作：
+ `s3:GetBucketAcl`
+ `s3:GetBucketPolicyStatus`
+ `s3:PutObject`

**文档步骤**
+ `aws:executeAwsApi` - 收集为该账户启用的区域。
+ `aws:executeScript` - 确认为账户启用的区域支持 `RegionsToQuery` 参数中指定的区域。
+ `aws:branch` - 如果未对账户启用任何区域，自动化将结束。
+ `aws:executeScript`-列出您指定的账户和区域的所有 EC2 实例。
+ `aws:executeScript` - 列出您指定的账户和区域的所有亚马逊机器映像（AMI）。
+ `aws:executeScript` - 列出您指定的账户和区域的所有 EBS 卷。
+ `aws:executeScript` - 列出您指定的账户和区域的所有弹性 IP 地址。
+ `aws:executeScript` - 列出您指定的账户和区域的所有弹性网络接口。
+ `aws:executeScript` - 列出您指定的账户和区域的所有自动扩缩组。
+ `aws:executeScript` - 列出您指定的账户和区域的所有负载均衡器。
+ `aws:executeScript` - 在您为 `Bucket` 参数提供值时将收集到的信息上传到指定的 S3 存储桶。

# `AWSSupport-ManageRDPSettings`
<a name="automation-awssupport-managerdpsettings"></a>

 **描述** 

`AWSSupport-ManageRDPSettings` 运行手册能够让用户管理常见的远程桌面协议 (RDP) 设置，例如 RDP 端口和网络层身份验证 (NLA)。默认情况下，此运行手册读取和输出这些设置的值。

**重要**  
在运行此运行手册前，应仔细检查对 RDP 设置的更改。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ManageRDPSettings)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  说明：（必需）要管理其 RDP 设置的托管实例的 ID。
+ NLASetting 操作

  类型：字符串

  有效值：Check \$1 启用 \$1 禁用

  默认值：Check

  说明：（必需）要对 NLA 设置执行的操作：Check、Enable、Disable。
+ RDPPort

  类型：字符串

  默认值：3389

  说明：（可选）指定新的 RDP 端口。仅在操作设置为 Modify 时使用。端口号必须介于 1025-65535 之间。注意：更改端口后，将重启 RDP 服务。
+ RDPPort 操作

  类型：字符串

  有效值：Check \$1 修改

  默认值：Check

  说明：（必需）要应用于 RDP 端口的操作。
+ RemoteConnections

  类型：字符串

  有效值：Check \$1 启用 \$1 禁用

  默认值：Check

  描述：（必需）要对 fDeny TSConnections 设置执行的操作。

**所需的 IAM 权限**

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

接收命令的 EC2 实例必须具有 IAM 角色并附有 Amazon A **SSMManagedInstanceCorema** zon 托管策略。用户必须至少有 **ssm:** 才能将命令发送SendCommand到实例，还必须有 **ssm: GetCommandInvocation** 才能读取命令输出。

 **文档步骤** 

`aws:runCommand`-运行 PowerShell 脚本以更改或检查目标实例上的 RDP 设置。

 **输出** 

管理 RDPSettings .Output

# `AWSSupport-ManageWindowsService`
<a name="automation-awssupport-managewindowsservice"></a>

 **描述** 

`AWSSupport-ManageWindowsService` 运行手册允许您在目标实例上停止、启动、重启、暂停或禁用任何 Windows 服务。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ManageWindowsService)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（必需）要管理其服务的托管实例的 ID。
+ ServiceAction

  类型：字符串

  有效值：Check \$1 重启 \$1 强制重启 \$1 启动 \$1 停止 \$1 前置停止 \$1 暂停

  默认值：Check

  描述：（必填）要应用于 Windows 服务的操作。注意：`Force-Restart` 和 `Force-Stop` 可用于重启和停止具有从属服务的服务。
+ StartupType

  类型：字符串

  有效值：选中 \$1 自动 \$1 需求 \$1 已禁用 \$1 DelayedAutoStart

  默认值：Check

  描述：（必填）要应用于 Windows 服务的启动类型。
+ WindowsServiceName

  类型：字符串

  描述：（必需）有效的 Windows 服务名称。

**所需的 IAM 权限**

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

建议接收命令的 EC2 实例具有 IAM 角色并附有 Amazon A **SSMManagedInstanceCorema** zon 托管策略。用户必须至少有 **ssm: StartAutomationExecution** 和 **ssm: SendCommand** 才能运行自动化并将命令发送到实例，还必须有 **ssm: GetAutomationExecution** 才能读取自动化输出。

 **文档步骤** 

`aws:runCommand`-运行 PowerShell 脚本将所需的配置应用于目标实例上的 Windows 服务。

 **输出** 

manageWindowsService。输出

# `AWSSupport-MigrateEC2ClassicToVPC`
<a name="automation-awssupport-migrate-ec2-classic-to-vpc"></a>

**描述**

`AWSSupport-MigrateEC2ClassicToVPC`运行手册将亚马逊弹性计算云 (Amazon EC2) 实例从 EC2-Classic 迁移到虚拟私有云 (VPC)。本运行手册支持使用亚马逊弹性区块存储 (Amazon EBS) Elastic Block Store 根卷迁移硬件虚拟机 (HVM) 虚拟化类型的亚马逊 EC2 实例。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-MigrateEC2ClassicToVPC)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ ApproverIAM

  类型： StringList

  描述：（可选）可以批准或拒绝操作的 IAM 用户的 Amazon 资源名称 (ARNs)。如果您为 `MigrationType` 参数指定 `CutOver` 值，则此参数才应用。
+ DestinationSecurityGroupId

  类型： StringList

  描述：（可选）您要与在您的 VPC 中启动的 Amazon EC2 实例关联的安全组的 ID。如果您未为此参数指定值，则自动化会在您的 VPC 中创建一个安全组，并从 EC2-Classic 中的安全组中复制规则。如果无法将规则复制到新的安全组，则您的 VPC 的默认安全组将与 Amazon EC2 实例关联。
+ DestinationSubnetId

  类型：字符串

  描述：（可选）您要将 Amazon EC2 实例迁移到的子网的 ID。如果您没有为此参数指定一个值，则自动化将从 VPC 中随机选择一个子网。
+ InstanceId

  类型：字符串

  描述：（必填）您要迁移的 Amazon EC2 实例的 ID。
+ MigrationType

  类型：字符串

  有效值： CutOver \$1 测试

  描述：（必需）要执行的迁移的类型。

  该`CutOver`选项需要获得批准才能停止在 EC2-Classic中运行的Amazon EC2 实例。此操作获得批准后，Amazon EC2 实例将停止，并且自动化会创建一个 Amazon Machine Image (AMI)。 当 AMI 状态为`available`，从此启动了一个新的 Amazon EC2 实例 AMI 在`DestinationSubnetId`您的 VPC 中指定的中。如果您在 EC2-Classic 中运行的 Amazon EC2 实例附加了弹性 IP 地址，则该实例将被移至您的 VPC 中新创建的亚马逊 EC2 实例。如果在您的 VPC 中启动的 Amazon EC2 实例由于任何原因未能创建，则该 EC2 实例将被终止并请求批准以 EC2-Classic 启动您的亚马逊实例。

  该`Test`选项创建了一个 AMI 您的 Amazon EC2 实例，该实例在 EC2-Classic 中运行，无需重启。由于 Amazon EC2 实例不会重启，因此我们无法保证所创建映像的文件系统的完整性。当 AMI 状态为`available`，从此启动了一个新的 Amazon EC2 实例 AMI 在您`DestinationSubnetId`的 VPC 中指定的中。如果您在 EC2-Classic 中运行的 Amazon EC2 实例附加了弹性 IP 地址，则自动化会验证`DestinationSubnetId`您指定的地址是否公开。如果在您的 VPC 中启动的 Amazon EC2 实例由于任何原因未能创建，则该实例将被终止并终止自动运行。
+ SNSNotificationARNfor批准

  类型：字符串

  描述：（必需）要向其发送批准通知的 Amazon Simple Notiﬁcation Service (Amazon SNS) 主题的 ARN。如果您为 `MigrationType` 参数指定 `CutOver` 值，则此参数才应用。
+ TargetInstanceType

  类型：字符串

  默认：t2.2xlarge

  描述：（可选）您要在您的 VPC 中启动的 Amazon EC2 实例的类型。仅支持基于 Xen 的实例类型，例如 T2、M4 或 C4。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:GetDocument`
+ `ssm:ListDocumentVersions`
+ `ssm:ListDocuments`
+ `ssm:StartAutomationExecution`
+ `sns:GetTopicAttributes`
+ `sns:ListSubscriptions`
+ `sns:ListTopics`
+ `sns:Publish`
+ `ec2:AssociateAddress`
+ `ec2:AuthorizeSecurityGroupIngress`
+ `ec2:CreateImage`
+ `ec2:CreateSecurityGroup`
+ `ec2:DeleteSecurityGroup`
+ `ec2:MoveAddressToVpc`
+ `ec2:RunInstances`
+ `ec2:StopInstances`
+ `ec2:CreateTags`
+ `ec2:DescribeAddresses`
+ `ec2:DescribeInstanceAttribute`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceStatus`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroupReferences`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeTags`
+ `ec2:DescribeVpcs`
+ `ec2:DescribeInstanceTypes`
+ `ec2:DescribeImages`

**文档步骤**
+ `aws:executeAwsApi`-收集您在`InstanceId`参数中指定的 Amazon EC2 实例的详细信息。
+ `aws:assertAwsResourceProperty` - 确认您在 `TargetInstanceType` 参数中指定的实例类型是基于 XEN。
+ `aws:assertAwsResourceProperty`-确认您在`InstanceId`参数中指定的 Amazon EC2 实例属于 HVM 虚拟化类型。
+ `aws:assertAwsResourceProperty`-确认您在`InstanceId`参数中指定的亚马逊 EC2 实例具有 Amazon EBS 根卷。
+ `aws:executeScript` - 根据您为 `DestinationSecurityGroupId` 参数指定的值视需要创建一个安全组。
+ `aws:branch` - 根据您在 `DestinationSubnetId` 参数中指定的值进行分支。
+ `aws:executeAwsApi` - 标识您运行此自动化所在 AWS 区域 的默认 VPC。
+ `aws:executeAwsApi` - 随机选择位于默认 VPC 中的子网的 ID。
+ `aws:createImage`-创建一个 AMI 无需重新启动 Ama EC2 zon 实例。
+ `aws:branch` - 根据您为 `MigrationType` 参数指定的值进行分支。
+ `aws:branch` - 根据您为 `DestinationSubnetId` 参数指定的值进行分支。
+ `aws:runInstances`-从启动新实例 AMI 在-Classic 中 EC2无需重启 Amazon EC2 实例即可创建。
+ `aws:changeInstanceState`-如果上一步由于任何原因失败，则终止新启动的 Amazon EC2 实例。
+ `aws:runInstances`-从启动新实例 AMI 创建时无需在 EC2-Classic 中重启亚马逊 EC2 实例（如果提供）。`DestinationSubnetId`
+ `aws:changeInstanceState`-如果上一步由于任何原因失败，则终止新启动的 Amazon EC2 实例。
+ `aws:assertAwsResourceProperty`-确认在 EC2-Classic 中运行的 Amazon EC2 实例的停止行为。
+ `aws:approve`-等待批准才能停止 Amazon EC2 实例。
+ `aws:changeInstanceState`-停止在 EC2-Classic 中运行的 Amazon EC2 实例。
+ `aws:changeInstanceState`-如果需要，强制停止在 EC2-Classic 中运行的 Amazon EC2 实例。
+ `aws:createImage`-创建一个 AMI Amazon EC2 实例停止后的数据。
+ `aws:branch` - 根据为 `DestinationSubnetId` 参数指定的值进行分支。
+ `aws:runInstances`-从启动新实例 AMI 在 EC2-Classic 中由已停止的 Amazon EC2 实例创建。
+ `aws:approve`-如果上一步由于任何原因失败，则等待批准终止新启动的实 EC2 例，并在 EC2-Classic 中启动 Amazon 实例。
+ `aws:changeInstanceState`-终止新启动的 Amazon EC2 实例。
+ `aws:runInstances`-从启动新实例 AMI 由`DestinationSubnetId`参数中的 EC2-Classic 中已停止的 Amazon EC2 实例创建。
+ `aws:approve`-如果上一步由于任何原因失败，则等待批准终止新启动的实 EC2 例，并在 EC2-Classic 中启动 Amazon 实例。
+ `aws:changeInstanceState`-终止新启动的 Amazon EC2 实例。
+ `aws:changeInstanceState`-启动在-C EC2 lassic 中停止的 Amazon EC2 实例。
+ `aws:branch`-基于 Amazon EC2 实例是否具有公有 IP 地址进行分支。
+ `aws:executeAwsApi` - 验证公有 IP 地址是否为弹性 IP 地址。
+ `aws:branch` - 根据您在 `MigrationType` 参数中指定的值进行分支。
+ `aws:executeAwsApi` - 将弹性 IP 地址移至您的 VPC。
+ `aws:executeAwsApi` - 收集已移至 VPC 的弹性 IP 地址的分配 ID。
+ `aws:branch`-分支基于在您的 VPC 中运行的 Amazon EC2 实例启动的子网。
+ `aws:executeAwsApi` - 将弹性 IP 地址附加到 VPC 中新启动的实例。
+ `aws:executeScript`-确认您在您的 VPC 中运行的新启动的 Amazon EC2 实例的子网是公有的。

**输出**

g `etInstanceProperties.virtualizationType`-在-C EC2 lassic 中运行的 Amazon EC2 实例的虚拟化类型。

`getInstanceProperties.rootDeviceType`-在-C EC2 lassic 中运行的 Amazon EC2 实例的根设备类型。

`createAMIWithoutReboot.ImageId`-的身份证 AMI 创建时无需重启在-Classic 中 EC2运行的 Amazon EC2 实例。

`getDefaultVPC.VpcId`-如果未提供`DestinationSubnetId`参数值，则为启动新 Amazon EC2 实例的默认 VPC 的 ID。

`getSubnetIdinDefaultVPC.subnetIdFromDefaultVpc`-如果未提供`DestinationSubnetId`参数值，则在默认 VPC 中启动新 Amazon EC2 实例的子网的 ID。



`launchTestInstanceDefaultVPC.InstanceIds`-`Test` 迁移类型期间在您的默认 VPC 中新启动的 Amazon EC2 实例的 ID。

`launchTestInstanceProvidedSubnet.InstanceIds`-您在`Test`迁移类型期间指定的新启动`DestinationSubnetId`的 Amazon EC2 实例的 ID。

`createAMIAfterStoppingInstance.ImageId`-的身份证 AMI 在停止在 EC2-Classic 中运行的 Amazon EC2 实例之后创建。

`launchCutOverInstanceProvidedSubnet.InstanceIds`-您在`CutOver`迁移类型期间指定的新启动`DestinationSubnetId`的 Amazon EC2 实例的 ID。

`launchCutOverInstanceDefaultVPC.InstanceIds`-`CutOver` 迁移类型期间在您的默认 VPC 中新启动的 Amazon EC2 实例的 ID。

`verifySubnetIsPublicTestDefaultVPC.IsSubnetPublic` - 在默认 VPC 中由自动化选择的子网是否为公有子网。

`verifySubnetIsPublicTestProvidedSubnet.IsSubnetPublic` - 您在 `DestinationSubnetId` 中指定的子网是否为公有子网。

# `AWSSupport-MigrateXenToNitroLinux`
<a name="automation-awssupport-migrate-xen-to-nitro"></a>

 **描述** 

 `AWSSupport-MigrateXenToNitroLinux`运行手册将亚马逊弹性计算云 (Amazon EC2) Linux Xen 实例克隆、准备和迁移到 [Nitro 实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)。此运行手册为操作类型提供了两个选项：
+ `Clone&Migrate`— 此选项的工作流程包括**初步检查**、**测试**和 **Clone&Migrate**阶段。工作流程使用 `AWSSupport-CloneXenEC2InstanceAndMigrateToNitro` 运行手册运行。
+ `FullMigration` – 此选项运行 `Clone&Migrate` 工作流程，然后执行 **替换 Amazon EBS 根卷**的额外步骤。

**重要**  
使用此运行手册会给您的账户带来亚马逊 EC2实例的运行时间、亚马逊弹性区块存储 (Amazon EBS) 存储卷的创建以及 AMIs。 有关更多详情，请参阅[亚马逊 EC2 定价和亚马](https://aws.amazon.com/ec2/pricing/)[逊 EBS 定价](https://aws.amazon.com/ebs/pricing/)。

 **初步检查** 

在继续迁移之前，自动化会执行以下初步检查。如果任何检查失败，自动化将结束。此阶段只是 `Clone&Migrate` 工作流程的一部分。
+ 检查目标实例是否已经是 Nitro 实例类型。
+ 检查竞价型实例购买选项是否用于目标实例。
+ 检查实例存储卷是否附加到目标实例。
+ 验证目标实例操作系统 (OS) 是否为 Linux。
+  检查目标实例是否是 Amazon A EC2 uto Scaling 组的一部分。如果它是自动扩缩组的一部分，自动化操作将验证该实例是否处于 `standby` 状态。
+ 验证实例是否由管理。 AWS Systems Manager

 **测试** 

自动化会创建一个 Amazon Machine Image (AMI) 从目标实例启动测试实例，并从新创建的实例启动测试实例 AMI。 此阶段只是工作`Clone&Migrate`流程的一部分。

如果测试实例通过了所有状态检查，则自动化将暂停，并通过 Amazon Simple Notification Service (Amazon SNS) 通知请求指定委托人批准。如果提供了批准，则自动化会终止测试实例，停止目标实例，并继续迁移，同时新创建的 AMI 在`Clone&Migrate`工作流程结束时取消注册。

**注意**  
在提供批准之前，我们建议您确认目标实例上运行的所有应用程序均已正常关闭。

 **克隆和迁移** 

自动化创造了另一个 AMI 从目标实例，然后启动一个新实例以更改为 Nitro 实例类型。在继续迁移之前，自动化会完成以下先决条件。如果任何检查失败，自动化将结束。此阶段也只是 `Clone&Migrate` 工作流程的一部分。
+ 开启增强联网 (ENA) 属性。
+ 安装最新版本的 ENA 驱动程序（如果尚未安装），或者将 ENA 驱动程序版本更新至最新版本。为确保最佳网络性能，如果出现以下情况，则需要更新到最新的 ENA 驱动程序版本 Nitro 实例类型是第 6 代。
+  验证 NVMe 模块是否已安装。如果模块安装完毕，自动化将验证该模块是否加载到 `initramfs` 中。
+  使用区块设备名称（`/dev/sd*`或`/dev/xvd*`）分析`/etc/fstab`条目并将其替换为相应的条目 UUIDs。在修改配置之前，自动化会在路径 `/etc/fstab*` 上创建文件的备份。
+  关闭可预测的接口命名，方法是将 `net.ifnames=0` 选项添加到 `/etc/default/grub` 文件（如果存在）中的 `GRUB_CMDLINE_LINUX` 行，或添加到 `/boot/grub/menu.lst` 中的内核。
+  如果 `/etc/udev/rules.d/70-persistent-net.rules` 文件存在，则将其移除。在移除文件之前，自动化会在路径 `/etc/udev/rules.d/` 上创建文件的备份。

验证所有要求后，实例类型更改为 Nitro 您指定的实例类型。自动化会等待新创建的实例在启动后通过所有状态检查 Nitro 实例类型。然后，自动化会等待指定负责人的批准后再创建 AMI 成功推出的 Nitro 实例。如果批准被拒绝，自动化将结束，从而让新创建的实例保持运行状态，目标实例将保持停止状态。

 **替换根 Amazon EBS 卷** 

 如果您选择`FullMigration`作为`OperationType`，则自动化会将目标 Amazon EC2 实例迁移到 Nitro 您指定的实例类型。Automation 会请求指定委托人的批准，以将目标 Amazon EC2 实例的 Amazon EBS 根卷替换为克隆的 EC2 亚马逊实例的根卷。成功迁移后，克隆的 Amazon EC2 实例将终止。如果自动化失败，则原始的 Amazon EBS 根卷将附加到目标亚马逊 EC2 实例。如果连接到目标 Amazon EC2 实例的 Amazon EBS 根卷具有应用`aws:`前缀的标签，则不支持该`FullMigration`操作。

 **开始之前** 

目标实例必须具有出站互联网访问权限。这是为了访问驱动程序和依赖项的存储库，比如 kernel-devel, gcc, patch, rpm-build, wget, dracut, make, linux-headers，以及 unzip。 如果需要，可以使用 Package 管理器。

需要使用 Amazon SNS 主题才能发送批准和更新的通知。有关如何创建 Amazon SNS 主题的更多信息，请参阅 *Amazon Simple Notification Service 开发人员指南*中的[创建 Amazon SNS 主题](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)。

 此运行手册支持以下操作系统：
+ RHEL 7.x-8.5
+ Amazon Linux (2018.03)、Amazon Linux 2
+ Debian 服务器
+ Ubuntu Server 18.04 LTS、20.04 LTS 和 20.10 STR
+ SUSE Linux Enterprise Server (SUSE12SP5, SUSE15SP2)

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-MigrateXenToNitroLinux) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ 确认

  类型：字符串

  描述：（必需）阅读此自动化运行手册所执行操作的完整详细信息，然后输入 **Yes, I understand and acknowledge** 以继续使用运行手册。
+ ApproverIAM

  类型：字符串

  描述：（必填）可以批准自动化的 IAM 角色、用户或用户名。 ARNs 您可以指定最多 10 个 批准者。
+ DeleteResourcesOnFailure

  类型：布尔值

  描述：（可选）确定新创建的实例是否和 AMI 因为如果自动化失败，则会删除迁移。

  有效值：True \$1 False

  默认值：True
+ MinimumRequiredApprovals

  类型：字符串

  描述：（可选）在请求批准时继续运行自动化所需的最低批准数。

  有效值：1-10

  默认值：1
+ NitroInstanceType

  类型：字符串

  描述：（必填） Nitro 您要将实例更改为的实例类型。支持的实例类型包括 M5、M6、C5、C6、R5、R6 和 T3。

  默认：m5.xlarge
+ OperationType

  类型：字符串

   描述：（必需）希望执行的操作。`FullMigration` 选项执行的任务与 `Clone&Migrate` 的相同，还会替换目标实例的根卷。迁移过程结束后，目标实例的根卷将替换为来自新创建实例的根卷。`FullMigration` 操作不支持逻辑卷管理器 (LVM) 定义的根卷。

  有效值：克隆并迁移 \$1 FullMigration
+ SNSTopicArn

  类型：字符串

  说明：（必需）用于批准通知的 Amazon SNS 主题的 ARN。Amazon SNS 主题用于在自动化期间发送所需的批准通知。
+ TargetInstanceId

  类型：字符串

  描述：（必填）要迁移的 Amazon EC2 实例的 ID。

## Clone&Migrate 工作流
<a name="clone-ami"></a>

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:DescribeAutomationExecutions` 
+  `ssm:StartAutomationExecution` 
+  `ssm:DescribeInstanceInformation` 
+  `ssm:DescribeAutomationStepExecutions` 
+  `ssm:SendCommand` 
+  `ssm:GetAutomationExecution` 
+  `ssm:ListCommands` 
+  `ssm:ListCommandInvocations` 
+  `ec2:DescribeInstances` 
+  `ec2:DescribeInstanceTypeOfferings` 
+  `ec2:DescribeInstanceTypes` 
+  `ec2:DescribeImages` 
+  `ec2:CreateImage` 
+  `ec2:RunInstances` 
+  `ec2:DescribeInstanceStatus` 
+  `ec2:DeregisterImage` 
+  `ec2:DeleteSnapshot` 
+  `ec2:TerminateInstances` 
+  `ec2:StartInstances` 
+  `ec2:DescribeKeyPairs` 
+  `ec2:StopInstances` 
+  `kms:CreateGrant*` 
+  `kms:ReEncrypt` 
+  `ec2:ModifyInstanceAttribute` 
+  `autoscaling:DescribeAutoScalingInstances` 
+  `iam:passRole` 
+  `iam:ListRoles` 

 **文档步骤** 
+  `startOfPreliminaryChecksBranch` - 分支到初步检查工作流程。
+  `getTargetInstanceProperties` - 从目标实例收集详细信息。
+  `checkIfNitroInstanceTypeIsSupportedInAZ`-确定目标的 Amazon EC2 实例类型是否在与目标实例相同的可用区中受支持。
+  `getXenInstanceTypeDetails` - 收集有关源实例类型的详细信息。
+  `checkIfInstanceHypervisorIsNitroAlready`-检查目标实例是否已作为一个实例运行 Nitro 实例类型。
+  `checkIfTargetInstanceLifecycleIsSpot` - 检查目标实例的购买选项是否为 Spot。
+  `checkIfOperatingSystemIsLinux` - 检查目标实例操作系统是否为 Linux。
+  `verifySSMConnectivityForTargetInstance` - 验证目标实例是否由 Systems Manager 管理。
+  `checkIfEphemeralVolumeAreSupported` - 检查目标实例的当前实例类型是否支持实例存储卷。
+  `verifyIfTargetInstanceHasEphemeralVolumesAttached` - 检查目标实例是否包含附加的实例存储卷。
+  `checkIfRootVolumeIsEBS` - 检查目标实例的根卷类型是否为 EBS。
+  `checkIfTargetInstanceIsInASG` - 检查目标实例是否是自动扩缩组的一部分。
+  `endOfPreliminaryChecksBranch` - 初步检查分支结束。
+  `startOfTestBranch` - 分支到测试工作流程。
+  `createTestImage`-创建测试 AMI 目标实例的。
+  `launchTestInstanceInSameSubnet`-从测试中启动测试实例 AMI 使用与目标实例相同的配置。
+  `cleanupTestInstance` - 终止测试实例。
+  `endOfTestBranch` - 测试分支结束。
+  `checkIfTestingBranchSucceeded` - 检查测试分支的状态。
+  `approvalToStopTargetInstance` - 等待指定委托人的批准才能停止目标实例。
+  `stopTargetEC2Instance` - 停止目标实例。
+  `forceStopTargetEC2Instance` - 只有在上一步未能停止目标实例时才强制停止该实例。
+  `startOfCloneAndMigrateBranch`-分支到 Clone&Migrate 工作流程。
+  `createBackupImage`-创建一个 AMI 要用作备份的目标实例。
+  `launchInstanceInSameSubnet`-从备份中启动新实例 AMI 使用与源实例相同的配置。
+  `waitForClonedInstanceToPassStatusChecks` - 等待新创建的实例通过所有状态检查。
+  `verifySSMConnectivityForClonedInstance` - 验证新创建的实例是否由 Systems Manager 管理。
+  `checkAndInstallENADrivers` - 检查新创建的实例上是否安装了 ENA 驱动程序，并在需要时安装驱动程序。
+  `checkAndAddNVMEDrivers`-检查新创建的实例上是否安装了 NVMe 驱动程序，并在需要时安装驱动程序。
+  `checkAndModifyFSTABEntries`-检查中是否使用了设备名称，`/etc/fstab`并在需要时将其替 UUIDs 换为。
+  `stopClonedInstance` - 停止新创建的实例。
+  `forceStopClonedInstance` - 只有在上一步未能停止实例时才强制停止新创建的实例。
+  `checkENAAttributeForClonedInstance` - 检查是否为新创建的实例启用了增强联网属性。
+  `setNitroInstanceTypeForClonedInstance`-将新创建的实例的实例类型更改为 Nitro 您指定的实例类型。
+  `startClonedInstance` - 启动您已更改其实例类型的新创建实例。
+  `approvalForCreatingImageAfterDriversInstallation`-如果实例成功启动为 Nitro 实例类型，自动化将等待所需委托人的批准。如果提供了批准，AMI 是为了用作金牌而创建的 AMI. 
+  `createImageAfterDriversInstallation`-创建一个 AMI 可用作金牌 AMI. 
+  `endOfCloneAndMigrateBranch`-结束 Clone&Migrate 分支。
+  `cleanupTestImage`-注销 AMI 为测试而创建。
+  `failureHandling` - 检查您是否选择在出现故障时终止资源。
+  `onFailureTerminateClonedInstance` - 在自动化失败时终止新创建的实例。
+  `onFailurecleanupTestImage`-注销 AMI 为测试而创建。
+  `onFailureApprovalToStartTargetInstance` - 在自动化失败时等待指定主体的批准以启动目标实例。
+  `onFailureStartTargetInstance` - 在自动化失败时启动目标实例。

## FullMigration 工作流
<a name="full-migration"></a>

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:DescribeAutomationExecutions` 
+  `ssm:DescribeInstanceInformation` 
+  `ssm:DescribeAutomationStepExecutions` 
+  `ssm:SendCommand` 
+  `ssm:GetAutomationExecution` 
+  `ssm:ListCommands` 
+  `ssm:ListCommandInvocations` 
+  `ec2:DescribeInstances` 
+  `ec2:DescribeInstanceTypeOfferings` 
+  `ec2:DescribeInstanceTypes` 
+  `ec2:DescribeImages` 
+  `ec2:CreateImage` 
+  `ec2:RunInstances` 
+  `ec2:DescribeInstanceStatus` 
+  `ec2:DeregisterImage` 
+  `ec2:DeleteSnapshot` 
+  `ec2:TerminateInstances` 
+  `ec2:StartInstances` 
+  `ec2:DescribeKeyPairs` 
+  `ec2:StopInstances` 
+  `kms:CreateGrant*` 
+  `kms:ReEncrypt` 
+  `ec2:ModifyInstanceAttribute` 
+  `ec2:DetachVolume` 
+  `ec2:AttachVolume` 
+  `ec2:DescribeVolumes` 
+  `autoscaling:DescribeAutoScalingInstances` 
+  `iam:PassRole` 
+  `ec2:CreateTags` 
+  `cloudformation:DescribeStackResources` 

 **文档步骤** 

`FullMigration` 工作流程运行的步骤与 `Clone&Migrate` 工作流运行的相同，另外还执行以下步骤：
+  `checkConcurrency`-验证此运行手册中是否只有一个针对您指定的 Amazon EC2 实例的自动化。如果运行手册发现另一个针对同一实例的自动化正在进行，自动化将结束。
+  `getTargetInstanceProperties` - 从目标实例收集详细信息。
+  `checkRootVolumeTags`-确定目标 Amazon EC2 实例的根卷是否包含任何 AWS 预留标签。
+  `cloneTargetInstanceAndMigrateToNitro` - 使用 `AWS-CloneXenInstanceToNitro` 运行手册启动儿童自动化。
+  `branchOnTheOperationType` - 根据您为 `OperationType` 参数指定的值进行分支。
+  `getClonedInstanceId` - 从子自动化中检索新启动的实例的 ID。
+  `checkIfRootVolumeIsBasedOnLVM` - 确定根分区是否由 LVM 管理。
+  `branchOnTheRootVolumeLVMStatus` - 如果从主体收到了要求的最低限度批准，自动化将继续执行根卷替换。
+  `manualInstructionsInCaseOfLVM` - 如果根卷由 LVM 管理，自动化将发送包含如何手动替换根卷说明的输出。
+  `startOfReplaceRootEBSVolumeBranch` - 启动“替换根 EBS 卷”分支工作流。
+  `checkIfTargetInstanceIsManagedByCFN`-确定目标实例是否由 AWS CloudFormation 堆栈管理。
+  `branchOnCFNStackStatus`-基于CloudFormation 堆栈状态的分支。
+  `approvalForRootVolumesReplacement(WithCFN)`-如果目标实例是由启动的 CloudFormation，则在新启动的实例成功启动后，自动化将等待批准 Nitro 实例类型。获得批准后，目标实例的 Amazon EBS 卷将替换为新启动实例的根卷。
+  `approvalForRootVolumesReplacement`-在新启动的实例成功启动后等待批准 Nitro 实例类型。获得批准后，目标实例的 Amazon EBS 卷将替换为新启动实例的根卷。
+  `assertIfTargetEC2InstanceIsStillStopped` - 在更换根卷之前，验证目标实例是否处于 `stopped` 状态。
+  `stopTargetInstanceForRootVolumeReplacement` - 如果目标实例正在运行，则自动化会在替换根卷之前停止该实例。
+  `forceStopTargetInstanceForRootVolumeReplacement` - 在上一步失败时强制停止目标实例。
+  `stopClonedInstanceForRootVolumeReplacement` - 停止新创建的实例后再替换 Amazon EBS 卷。
+  `forceStopClonedInstanceForRootVolumeReplacement` - 在上一步失败时强制停止新创建的实例。
+  `getBlockDeviceMappings` - 检索目标实例和新创建实例的块设备映射。
+  `replaceRootEbsVolumes` - 将目标实例的根卷替换为新创建实例的根卷。
+  `EndOfReplaceRootEBSVolumeBranch` - 结束“替换根 EBS 卷”分支工作流。
+  `checkENAAttributeForTargetInstance`-检查目标 Amazon EC2 实例的增强联网 (ENA) 属性是否已开启。
+  `enableENAAttributeForTargetInstance`-如果需要，可为目标 Amazon EC2 实例开启 ENA 属性。
+  `setNitroInstanceTypeForTargetInstance`-将目标实例更改为 Nitro 您指定的实例类型。
+  `replicateRootVolumeTags`-从目标亚马逊实例复制根 Amazon EBS 卷上的标签。 EC2 
+  `startTargetInstance`-更改 EC2 实例类型后启动目标 Amazon 实例。
+  `onFailureStopTargetEC2Instance`-如果目标 Amazon EC2 实例启动失败，则将其停止 Nitro 实例类型。
+  `onFailureForceStopTargetEC2Instance`-如果上一步失败，则强制停止目标 Amazon EC2 实例。
+  `OnFailureRevertOriginalInstanceType`-如果目标 EC2实例启动失败，则将目标 Amazon 实例恢复为原始实例类型 Nitro 实例类型。
+  `onFailureRollbackRootVolumeReplacement` - 必要时还原 `replaceRootEbsVolumes` 步骤所做的所有更改。
+  `onFailureApprovalToStartTargetInstance`-在回退之前的更改后，等待指定委托人的批准才能启动目标 Amazon EC2 实例。
+  `onFailureStartTargetInstance`-启动目标 Amazon EC2 实例。
+  `terminateClonedEC2Instance`-更换根 Amazon EBS 卷后，终止克隆的 Amazon EC2 实例。

# `AWSSupport-ResetAccess`
<a name="automation-awssupport-resetaccess"></a>

 **描述** 

本运行手册将在指定 EC2 实例上使用 EC2救援工具使用 EC2 控制台 (Windows) 重新启用密码解密，或者生成和添加新的 SSH 密钥对 (Linux)。如果您丢失了密钥对，此自动化将创建一个启用密码的 AMI，您可以使用该AMI启动带有您拥有的密钥对 EC2 的新实例 (Windows)。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ResetAccess)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  有效值：t2.small \$1 t2.medium \$1 t2.large

  默认值：t2.small

  描述：（必填） EC2救援 EC2 实例的实例类型。建议大小：t2.small。
+ InstanceId

  类型：字符串

  描述：（必填）您要重置访问权限的 EC2 实例的 ID。
**重要**  
Systems Manager Automation 会停止此实例，并在尝试任何操作前创建一个 AMI。存储在实例存储卷中的数据将丢失。如果不使用弹性 IP，则公有 IP 地址将发生更改。
+ SubnetId

  类型：字符串

  默认： CreateNewVPC

  描述：（可选） EC2救援实例的子网 ID。默认情况下，Systems Manager Automation 会创建一个新 VPC。或者，SelectedInstanceSubnet 使用与您的实例使用相同的子网，或者指定自定义子网 ID。
**重要**  
子网必须与位于同一个可用区中 InstanceId，并且必须允许访问 SSM 端点。

**所需的 IAM 权限**

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

您必须至少具有 **ssm: StartAutomationExecution**、**ssm: GetParameter**（用于检索 SSH 密钥参数名称）和 **ssm: GetAutomationExecution** 才能读取自动化输出。有关所需权限的更多信息，请参阅 [`AWSSupport-StartEC2RescueWorkflow`](automation-awssupport-startec2rescueworkflow.md)。

 **文档步骤** 

1. `aws:assertAwsResourceProperty` - 断言 提供的实例是否是 Windows。

   1. （适用于 Windows 的EC2救援）如果提供的实例是 Windows：

      1. `aws:executeAutomation`-`AWSSupport-StartEC2RescueWorkflow` 使用 Windows 版 R EC2 escue 离线密码重置脚本进行调用

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

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

      1. `aws:executeAwsApi`-从嵌套自动化中检索 EC2救援摘要

   1. （适用于 Linux 的EC2救援）如果提供的实例是 Linux：

      1. `aws:executeAutomation`-`AWSSupport-StartEC2RescueWorkflow` 使用适用于 Linux 的EC2救援离线 SSH 密钥注入脚本调用

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

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

      1. `aws:executeAwsApi`-从嵌套自动化中检索 EC2救援摘要

 **输出** 

获取 EC2 RescueForWindowsResult .Output

getWindowsBackup阿米。 ImageId

getWindowsPasswordEnabledAmi.ImageId

获取 EC2 RescueForLinuxResult .Output

getLinuxBackup阿米。 ImageId

获取 Linux 参数.Name SSHKey

# `AWSSupport-ResetLinuxUserPassword`
<a name="automation-awssupport-resetlinuxuserpassword"></a>

**描述**

`AWSSupport-ResetLinuxUserPassword` 运行手册可帮助您重置本地操作系统 (OS) 用户的密码。对于需要使用串行控制台访问其 Amazon Elastic Compute Cloud (Amazon EC2) 实例的用户，此运行手册尤其有用。运行手册 AWS 账户 使用自动生成的 AWS Identity and Access Management (IAM) 角色或您指定的自定义 IAM 实例配置文件在您的中创建一个临时 Amazon EC2 实例。自定义 (IAM) 实例配置文件必须有权检索包含密码的 AWS Secrets Manager 密钥值。

运行手册可停止您的目标 Amazon EC2 实例，分离 Amazon Elastic Block Store (Amazon EBS) 根卷，并将其附加到临时 Amazon EC2 实例。利用运行命令，可以在临时实例上运行脚本，以设置您指定的操作系统用户的密码。然后，Amazon EBS 根卷会重新附加到您的目标实例。此运行手册还提供了在自动化开始时创建根卷快照的选项。

**开始之前**

使用您要分配给操作系统用户的密码的值创建一个 Secrets Manager 密钥。该值必须为纯文本。有关更多信息，请参阅《AWS Secrets Manager 用户指南》**中的[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)。

 **注意事项** 
+ 我们建议您在使用此运行手册之前先备份您的实例。考虑将 `CreateSnapshot` 参数的值设置为 **Yes**。
+ 更改本地用户密码需要运行手册停止您的实例。停止实例后，存储在内存或实例存储卷上的数据将丢失。此外，任何自动分配的公用 IPv4 地址都会被释放。有关停止实例时会发生什么情况的更多信息，请参阅 *Amazon EC2 用户指南*中的[停止和启动实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)。
+ 如果连接到您的目标 Amazon EC2 实例的 Amazon EBS 卷使用客户托管 AWS Key Management Service (AWS KMS) 密钥进行加密，请确保 AWS KMS 密钥未加密，`deleted``disabled`否则您的实例将无法启动。
+ 使用自定义 IAM 实例配置文件需要拥有 IAM `GetInstanceProfile` 权限`AutomationAssumeRole`才能进行验证，而自定义实例配置文件本身必须包含 Systems Manager 和 Secrets Manager 访问权限。运行手册会预先验证实例配置文件是否存在，但如果实例配置文件缺少所需的访问权限，则在辅助实例操作期间将失败。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ResetLinuxUserPassword)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（必需）包含您要重置的操作系统用户密码的 Amazon EC2 Linux 实例的 ID。
+ LinuxUserName

  类型：字符串

  默认：ec2-user

  描述：（可选）要重置其密码的操作系统用户账户。
+ SecretArn

  类型：字符串

  描述：（必需）包含新密码的 Secrets Manager 密钥的 ARN。
+ SecurityGroupId

  类型：字符串

  描述：（可选）要附加到临时 Amazon EC2 实例的安全组的 ID。如果您没有为此参数提供一个值，将使用默认的 Amazon Virtual Private Cloud (Amazon VPC) 安全组。
+ SubnetId

  类型：字符串

  描述：（可选）要将 Amazon EC2 临时实例启动到的子网的 ID。默认情况下，自动化会选择与您的目标实例相同的子网。如果您选择提供不同的子网，则它必须与目标实例位于同一可用区，并且可以访问 Systems Manager 端点。
+ CreateSnapshot

  类型：字符串

  有效值：是 \$1 否

  默认：是

  描述：（可选）确定是否在自动化运行之前创建目标 Amazon EC2 实例根卷的快照。
+ StopConsent

  类型：字符串

  有效值：是 \$1 否

  默认：否 

  描述：输入 **Yes** 以确认目标 Amazon EC2 实例将在此自动化期间停止。当 Amazon EC2 实例停止时，存储在内存或实例存储卷中的所有数据都将丢失，并自动释放公有 IPv4 地址。有关更多信息，请参阅 *Amazon EC2 用户指南*中的[停止和启动您的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)。
+ InstanceProfileName

  类型：字符串

  描述：（可选）要附加到帮助程序 Amazon EC2 实例的 IAM 实例配置文件的名称。如果未提供，则将自动创建具有所需权限的临时实例配置文件。自定义实例配置文件必须有权访问指定的 Secrets Manager 密钥和 Systems Manager。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:DescribeInstanceInformation`
+ `ssm:ListTagsForResource`
+ `ssm:SendCommand`
+ `ec2:AttachVolume`
+ `ec2:CreateSnapshot`
+ `ec2:CreateSnapshots`
+ `ec2:CreateVolume`
+ `ec2:DescribeImages`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceStatus`
+ `ec2:DescribeSnapshotAttribute`
+ `ec2:DescribeSnapshots`
+ `ec2:DescribeSnapshotTierStatus`
+ `ec2:DescribeVolumes`
+ `ec2:DescribeVolumeStatus`
+ `ec2:DetachVolume`
+ `ec2:RunInstances`
+ `ec2:StartInstances`
+ `ec2:StopInstances`
+ `ec2:TerminateInstances`
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStackResource`
+ `cloudformation:DescribeStacks`
+ `cloudformation:ListStacks`
+ `logs:CreateLogDelivery`
+ `logs:CreateLogGroup`
+ `logs:DeleteLogDelivery`
+ `logs:DeleteLogGroup`
+ `logs:DescribeLogGroups`
+ `logs:DescribeLogStreams`
+ `logs:PutLogEvents`
+ `iam:GetInstanceProfile`

 **文档步骤** 

1. `aws:branch` – 根据您是否同意停止目标 Amazon EC2 实例进行分支。

1. `aws:assertAwsResourceProperty`— 确保 Amazon EC2 实例的状态为`running`或`stopped`状态。否则，自动化将结束。

1. `aws:executeAwsApi`— 获取 Amazon EC2 实例的属性。

1. `aws:executeAwsApi`— 获取根卷属性。

1. `aws:branch`— 根据是否提供了临时 Amazon EC2 实例的子网 ID 来分支自动化。

1. `aws:assertAwsResourceProperty`— 确保您在`SubnetId`参数中指定的子网与目标 Amazon EC2 实例位于同一个可用区中。

1. `aws:assertAwsResourceProperty`— 确保目标 Amazon EC2 实例根卷是亚马逊 EBS 卷。

1. `aws:assertAwsResourceProperty`— 确保 Amazon EC2 实例架构为`arm64`或`x86_64`。

1. `aws:assertAwsResourceProperty`— 确保 Amazon EC2 实例的关闭行为是`stop`和不是`terminate`。

1. `aws:branch`— 确保 Amazon EC2 实例不是竞价型实例。否则，自动化将结束。

1. `aws:executeScript`— 确保 Amazon EC2 实例不属于自动扩展组。如果该实例是自动扩缩组的一部分，则自动化会确认 Amazon EC2 实例是否处于 `Standby` 生命周期状态。

1. `aws:branch`— 根据是否提供了自定义 IAM 实例配置文件名称来分支自动化

1. `aws:assertAwsResourceProperty`— 确保自定义 IAM 实例配置文件存在并验证其名称是否与输入参数匹配。

1. `aws:createStack`— 创建临时的 Amazon EC2 实例，用于重置您指定的操作系统用户的密码。

1. `aws:waitForAwsResourceProperty`— 等待直到新启动的临时 Amazon EC2 实例开始运行。

1. `aws:executeAwsApi`— 获取临时亚马逊 EC2 实例的 ID。

1. `aws:waitForAwsResourceProperty`— 等待临时 Amazon EC2 实例报告为由 Systems Manager 管理。

1. `aws:changeInstanceState`— 停止目标 Amazon EC2 实例。

1. `aws:changeInstanceState`— 强制目标 Amazon EC2 实例停止，以防它陷入停止状态。

1. `aws:branch`— 根据是否请求了目标 Amazon EC2 实例的根卷快照来分支自动化。

1. `aws:executeAwsApi`— 创建目标 Amazon EC2 实例根亚马逊 EBS 卷的快照。

1. `aws:waitForAwsResourceProperty`— 等待快照进入`completed`状态。

1. `aws:executeAwsApi`— 将 Amazon EBS 根卷与目标 Amazon EC2 实例分离。

1. `aws:waitForAwsResourceProperty`— 等待亚马逊 EBS 根卷与目标 Amazon EC2 实例分离。

1. `aws:executeAwsApi`— 将根 Amazon EBS 卷附加到临时亚马逊 EC2 实例。

1. `aws:waitForAwsResourceProperty`— 等待 Amazon EBS 根卷连接到临时的 Amazon EC2 实例。

1. `aws:runCommand`— 通过在临时 Amazon EC2 实例上使用运行命令运行 shell 脚本来重置目标用户密码。

1. `aws:executeAwsApi`— 将 Amazon EBS 根卷与临时亚马逊 EC2 实例分离。

1. `aws:waitForAwsResourceProperty`— 等待 Amazon EBS 根卷与临时的 Amazon EC2 实例分离。

1. `aws:executeAwsApi`— 出错后，将 Amazon EBS 根卷与临时的 Amazon EC2 实例分离。

1. `aws:waitForAwsResourceProperty`— 等待出错后将 Amazon EBS 根卷与临时的 Amazon EC2 实例分离。

1. `aws:branch`— 根据是否请求根卷的快照来确定出现错误时的恢复路径，对自动化进行分支。

1. `aws:executeAwsApi`— 将根 Amazon EBS 卷重新连接到目标 Amazon EC2 实例。

1. `aws:waitForAwsResourceProperty`— 等待亚马逊 EBS 根卷连接到亚马逊 EC2 实例。

1. `aws:executeAwsApi`— 根据目标 Amazon EC2 实例根卷快照创建新的 Amazon EBS 卷。

1. `aws:waitForAwsResourceProperty`— 等到新的 Amazon EBS 卷处于状态为止。`available`

1. `aws:executeAwsApi`— 将新的 Amazon EBS 卷作为根卷附加到目标实例。

1. `aws:waitForAwsResourceProperty`— 等待 Amazon EBS 交易量处于状态。`attached`

1. `aws:executeAwsApi`— 描述运行手册无法创建或更新 CloudFormation 堆栈时的 CloudFormation 堆栈事件。

1. `aws:branch`— 根据之前的 Amazon EC2 实例状态对自动化进行分支。如果状态为 `running`，则实例已启动。如果处于 `stopped` 状态，则自动化会继续。

1. `aws:changeInstanceState`— 如果需要，启动 Amazon EC2 实例。

1. `aws:waitForAwsResourceProperty`— 等待 CloudFormation 堆栈处于终端状态后再删除。

1. `aws:executeAwsApi`— 删除包括临时 Amazon EC2 实例在内的 CloudFormation 堆栈。

# `AWSSupport-RunEC2RescueForWindowsTool`
<a name="automation-awssupport-runec2rescueforwindowstool"></a>

 **描述** 

**AWSSupport-RunEC2 RescueForWindowsTool** 运行手册在目标亚马逊弹性计算云 (Amazon EC2) Windows 托管实例上运行适用于 Windows 服务器的 Amazon EC2 Rescue 故障排除工具，以帮助解决常见问题。本运行手册支持三个主要操作：
+ **ResetAccess**：重置本地管理员密码。密码是随机生成的，并安全地存储在 P AWS Systems Manager arameter Store 中`/EC2Rescue/Password/<instance_id>`。如果未提供任何参数，则使用默认 AWS Key Management Service (AWS KMS) 密钥对密码进行加密`alias/aws/ssm`。或者，您可以指定 AWS KMS 密钥 ID 以使用自己的密钥对密码进行加密。
+ **CollectLogs**：通过运行带选项的 Amazon EC2 Rescue，从操作系统收集日志和配置文件，然后将其上传到您账户中的亚马逊简单存储服务 (Amazon S3) 存储桶。`/collect:all`
+ **FixAll**：尝试通过运行带`/rescue:all`选项的 Amazon EC2 Rescue 来检测和解决连接到当前实例的离线 Windows 根卷上的问题。

**重要**  
本运行手册要求目标实例是 PowerShell 安装了适用于 Windows 的 AWS 工具的 Windows 托管实例。运行手册使用 Systems Manager Distributor 软件包`AWSSupport-EC2Rescue`安装适用于 Windows 服务器的 Amazon EC2 救援工具。

 **如何工作？** 

运行手册执行以下步骤：
+ 使用 Systems Manager 分销商包安装适用于 Windows 服务器的 Amazon EC2 Rescue 疑难解答工具。
+ 使用提供的参数执行指定的操作（`ResetAccess``CollectLogs`、或`FixAll`）。
+ For`ResetAccess`：生成安全密码并将其存储在参数存储中。
+ 用于`CollectLogs`：收集系统日志并将其上传到指定的 Amazon S3 存储桶。
+ For`FixAll`：尝试修复指定脱机卷上的问题。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-RunEC2RescueForWindowsTool) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:SendCommand`
+ `ssm:ListCommandInvocations`
+ `ssm:DescribeInstanceInformation`
+ `ssm:GetCommandInvocation`
+ `ssm:PutParameter`（供 ResetAccess 采取行动）
+ `kms:Encrypt`（用于使用自定义 AWS KMS 键进行 ResetAccess 操作）
+ `s3:PutObject`（供 CollectLogs 采取行动）
+ `s3:GetBucketAcl`（供 CollectLogs 采取行动）
+ `s3:GetBucketPolicy`（供 CollectLogs 采取行动）
+ `s3:GetBucketPolicyStatus`（供 CollectLogs 采取行动）

策略示例：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand",
                "ssm:ListCommandInvocations",
                "ssm:DescribeInstanceInformation",
                "ssm:GetCommandInvocation",
                "ssm:PutParameter",
                "kms:Encrypt",
                "s3:PutObject",
                "s3:GetBucketAcl",
                "s3:GetBucketPolicy",
                "s3:GetBucketPolicyStatus"
            ],
            "Resource": "*"
        }
    ]
}
```

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-RunEC2RescueForWindowsTool/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-RunEC2RescueForWindowsTool/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **Execute automation**（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **命令（必填）：**
     + 描述：（必填）要执行的操作。
     + 类型：`String`
     + 允许值：`[ResetAccess, CollectLogs, FixAll]`
     + 默认值：`ResetAccess`
   + **参数（必填）：**
     + 描述：（必填）命令的参数：
       + 用于`ResetAccess`： AWS AWS KMS 密钥 ID 或别名（默认：`alias/aws/ssm`）
       + 收件人`CollectLogs`：要将日志上传到的 Amazon S3 存储桶名称
       + 用于`FixAll`：离线修复的设备名称（例如，`xvdf`）
     + 类型：`String`
     + 允许模式：`^[0-9a-z][a-z0-9-.]{3,63}$|^(dev\/[a-z0-9]{2,10}|xv[a-z0-9]{1,10})$|^(alias\\aws\\ssm|[a-zA-Z0-9-/_]{1,32})$`

1. 选择**执行**。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **安装EC2救援**：

     使用 Systems Manager 分销商包安装适用于 Windows 服务器的 Amazon EC2 Rescue 疑难解答工具`AWSSupport-EC2Rescue`。
   + **运行 EC2 RescueForWindows**：

     使用命令参数中指定的操作运行 PowerShell 脚本以执行请求的操作。

1. 完成后，请查看 “**输出**” 部分，了解执行的详细结果。

**参考**

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-RunEC2RescueForWindowsTool/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)
+ [使用适用于 Windows 服务器的 Amazon EC2 Rescue 和 Systems Manager 运行命令](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/ec2rw-ssm.html)

# `AWSPremiumSupport-ResizeNitroInstance`
<a name="automation-aws-resizenitroinstance"></a>

 **描述** 

`AWSPremiumSupport-ResizeNitroInstance` 运行手册提供了一种自动化的解决方案，用于调整基于 Nitro 系统构建的 Amazon Elastic Compute Cloud (Amazon EC2) 实例的大小。

为了降低数据丢失和停机的潜在风险，运行手册对以下事项进行验证：
+ 实例停止行为。
+ 实例是否是 Amazon EC2 Auto Scaling 组的一部分且处于 `standby` 模式。
+ 实例状态和租赁。
+ 您要更改成的实例类型支持当前附加到您实例的网络接口的数量。
+ 当前实例类型和目标实例类型的处理器架构和虚拟化类型相同。
+ 如果实例正在运行，则表明它正在通过所有状态检查。
+ 您要更改的实例类型在相同可用区中是可用的。

如果 Amazon EC2 在更改实例类型后未通过状态检查，运行手册将自动回退到以前的实例类型。

默认情况下，如果实例正在运行以及已附加实例存储卷，则此运行手册不会更改实例类型。如果实例是 AWS CloudFormation 堆栈的一部分，运行手册也不会更改实例类型。如果要更改这些行为中的任意一个，请为 `AllowInstanceStoreInstances` 和 `AllowCloudFormationInstances` 参数指定 `yes`。

运行手册提供了两种不同的方法来指定要更改为的实例类型：
+ 对于针对单个实例的简单自动化，请使用 `TargetInstanceTypeFromParameter` 参数指定要更改为的实例类型。
+ 要大规模运行自动化以更改多个实例的实例类型，请使用 `TargetInstanceTypeFromTagValue` 参数指定实例类型。有关大规模运行自动化的信息，请参阅[大规模运行自动化](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-working-targets-and-rate-controls.html)。

如果您没有为任一参数指定一个值，自动化将失败。

**重要**  
访问`AWSPremiumSupport-*`运行手册需要订阅 Business \$1 Support、Enterprise Support 或统一运营订阅。有关更多信息，请参阅[比较 AWS 支持 计划](https://aws.amazon.com/premiumsupport/plans/)。

 **注意事项** 
+ 我们建议您在使用此运行手册之前先备份您的实例。
+ 有关更改实例类型的兼容性的信息，请参阅[更改实例类型的兼容性](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resize-limitations.html)。
+ 如果自动化失败并回退到初始实例类型，请参阅[更改实例类型疑难解答](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshoot-change-instance-type.html)。
+ 更改实例类型需要运行手册来停止您的实例。停止实例后，存储在内存或实例存储卷上的数据将丢失。此外，任何自动分配的公用 IPv4 地址都会被释放。有关停止实例时会发生什么的更多信息，请参阅[停止和启动您的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)。
+ 使用 `SkipInstancesWithTagKey` 参数，您可以跳过应用了特定 Amazon EC2 标签键的实例。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-ResizeNitroInstance) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ 确认

  类型：字符串

  描述：（必需）输入**yes**以确认如果您的实例当前正在运行，则该实例将停止。
+ AllowInstanceStoreInstances

  类型：字符串

  有效值：否 \$1 是

  默认值：no

  描述：（可选）如果您指定 `yes`，您将允许运行手册在已附加实例存储卷的实例上运行。
+ AllowCloudFormationInstances

  类型：字符串

  有效值：否 \$1 是

  默认值：no

  描述：（可选）如果您指定`yes`，则运行手册将在属于 CloudFormation 堆栈的实例上运行。
+ DryRun

  类型：字符串

  有效值：否 \$1 是

  默认值：no

  描述：（可选）如果您指定 `yes`，运行手册将验证大小调整要求，而不会更改实例类型。
+ InstanceId

  类型：字符串

  描述：（必填）要更改其类型的 Amazon EC2 实例的 ID。
+ SkipInstancesWithTagKey

  类型：字符串

  描述：（可选）如果您指定的标签键应用于目标实例，自动化将跳过该实例。
+ SleepTime

  类型：字符串

  原定设置值：3

  描述：（可选）此运行手册在完成后应处于休眠状态的秒数。
+ TagInstance

  类型：字符串

  描述：（可选）使用您选择的密钥和值标记实例，格式如下：*Key=ChangingType,Value=True*。此选项允许您跟踪此运行手册所针对的实例。标签键和值区分大小写。
+ TargetInstanceTypeFromParameter

  类型：字符串

  描述：（可选）要将您的实例更改为的实例类型。如果您要使用 `TargetInstanceTypeFromTagValue` 参数中提供的标签键的值，请将此参数留空。
+ TargetInstanceTypeFromTagValue

  类型：字符串

  描述：（可选）应用于目标实例的标签键，其值包含您要更改为的实例类型。如果您为 `TargetInstanceTypeFromParameter` 参数指定值，那么它将替换您为此参数指定的任何值。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `autoscaling:DescribeAutoScalingInstances` 
+  `cloudformation:DescribeStackResources` 
+  `ssm:GetAutomationExecution` 
+  `ssm:DescribeAutomationExecutions` 
+  `ec2:DescribeInstanceAttribute` 
+  `ec2:DescribeInstances` 
+  `ec2:DescribeInstanceStatus` 
+  `ec2:DescribeInstanceTypeOfferings` 
+  `ec2:DescribeInstanceTypes` 
+  `ec2:DescribeTags` 
+  `ec2:ModifyInstanceAttribute` 
+  `ec2:StartInstances` 
+  `ec2:StopInstances` 

 **文档步骤** 

1. `aws:assertAwsResourceProperty`：确保 Amazon EC2 实例未使用 `SkipInstancesWithTagKey` 参数中指定的资源标签键进行标记。如果发现标签键应用于该实例，该步骤将失败，自动化将结束。

1. `aws:assertAwsResourceProperty`：确认目标 Amazon EC2 实例的状态为 `running`、`pending`、`stopped` 或 `stopping`。否则，自动化将结束。

1. `aws:executeAwsApi`：从 Amazon EC2 实例收集属性。

1. `aws:executeAwsApi`：收集有关当前 Amazon EC2 实例类型的详细信息。

1. `aws:branch`：检查当前实例类型和 `TargetInstanceTypeFromParameter` 参数中指定的实例类型是否相同。如果相同，自动化将结束。

1. `aws:assertAwsResourceProperty`：确保实例在 Nitro 系统上运行。

1. `aws:branch`：确保 Amazon EC2 实例根卷类型为 Amazon Elastic Block Store (Amazon EBS) 卷。

1. `aws:assertAwsResourceProperty`：确认实例关闭行为是 `stop` 且不是 `terminate`。

1. `aws:branch`: 确保 Amazon EC2 实例不是竞价型实例。

1. `aws:branch`：确保 Amazon EC2 实例的租赁是默认的，而不是专属主机或专用实例。

1. `aws:executeScript`：确认此运行手册中只有一个针对当前实例 ID 的自动化。如果针对同一实例的另一个自动化已经在进行，则它会返回错误并结束。

1. `aws:branch`：根据 Amazon EC2 实例的状态对自动化进行分支。

   1. 如果为 `stopped` 或 `stopping`，则自动化会运行 `aws:waitForAwsResourceProperty`，直到 Amazon EC2 实例完全停止。

   1. 如果为 `running` 或 `pending`，则自动化会运行 `aws:waitForAwsResourceProperty`，直到 Amazon EC2 实例通过状态检查。

1. `aws:assertAwsResourceProperty`：通过调用 `DescribeAutoScalingInstances` API 操作，确认 Amazon EC2 实例不是自动扩缩组的一部分。如果实例是自动扩缩组的一部分，确保 Amazon EC2 实例处于 `standby` 模式。

1. `aws:branch`：根据您是否希望自动化检查 Amazon EC2 实例是否属于 CloudFormation 堆栈来分支自动化：

   1. `aws:executeScript`通过调用 `DescribeStackResources` API 操作确保 Amazon EC2 实例不属于 CloudFormation 堆栈。

1. `aws:executeAwsApi`：返回具有相同处理器架构类型、虚拟化类型且支持当前附加到目标实例的网络接口数量的实例类型列表。

1. `aws:executeAwsApi`：从 `TargetInstanceTypeFromTagValue` 参数中指定的标签键获取目标实例类型值。

1. `aws:executeScript`：确认当前实例类型和目标实例类型兼容。确保目标实例类型在同一个子网中可用。验证已启动运行手册的主体是否拥有更改实例类型的权限，以及是否拥有当实例正在运行时停止和启动该实例的权限。

1. `aws:branch`：根据 `DryRun` 参数值是否设置为 `yes`，对自动化进行分支。如果是 `yes`，自动化将结束。

1. `aws:branch`：检查原始和目标实例类型是否相同。如果它们相同，自动化将结束。

1. `aws:executeAwsApi`：获取当前实例状态。

1. `aws:changeInstanceState`：停止 Amazon EC2 实例。

1. `aws:changeInstanceState`：如果实例卡在了 `stopping` 停止状态，则强制其停止。

1. `aws:executeAwsApi`：将实例类型更改为目标实例类型。

1. `aws:sleep`：更改实例类型后等待 3 秒钟以确保最终一致性。

1. `aws:branch`：根据前实例的状态对自动化进行分支。如果是 `running`，则实例已启动。

   1. `aws:changeInstanceState`：如果 Amazon EC2 实例在更改实例类型之前正在运行，则启动该实例。

   1. `aws:waitForAwsResourceProperty`：等待 Amazon EC2 实例通过状态检查。如果实例未通过状态检查，实例将变回其原始的实例类型。

      1. `aws:changeInstanceState`：停止 Amazon EC2 实例，然后将其更改为原始实例类型。

      1. `aws:changeInstanceState`：强制 Amazon EC2 实例停止，然后再将其更改为原始实例类型，以防它卡在停止状态。

      1. `aws:executeAwsApi`：将 Amazon EC2 实例更改为其原始类型。

      1. `aws:sleep`：更改实例类型后等待 3 秒钟以确保最终一致性。

      1. `aws:changeInstanceState`：如果 Amazon EC2 实例在更改实例类型之前正在运行，则启动该实例。

      1. `aws:waitForAwsResourceProperty`：等待 Amazon EC2 实例通过状态检查。

1. `aws:sleep`：等待，然后结束运行手册。

# `AWSSupport-ShareEncryptedAMIOrEBSSnapshot`
<a name="awssupport-share-encrypted-ami-or-ebs-snapshot"></a>

 **描述** 

本操作手册自动执行与其他亚马逊云科技账户共享加密Amazon Machine Image或亚马逊弹性区块存储快照的过程。本运行手册处理跨账户共享加密资源的复杂要求，包括 AWS Key Management Service 密钥策略修改和资源权限更新。

此自动化会执行 AWS 安全博客文章[如何在账户之间共享加密的以启动加密AMI的 Amazon Elastic Compute Cloud 实例](https://aws.amazon.com/blogs/security/how-to-share-encrypted-amis-across-accounts-to-launch-encrypted-ec2-instances/)中概述的步骤。

**重要注意事项**  
**本运行手册将修改您的资源**：运行手册将向您的 AWS KMS 客户托管密钥 (CMK) 策略添加跨账户权限，并向目标账户授予启动AMI权限或 Amazon EBS 快照创建卷权限。
**可能会产生额外费用**：复制资源（不同区域或 AWS 托管密钥加密）时，新的快照AMI或 Amazon EBS 快照以及任何跨区域数据传输都将产生额外费用。
**请验证目标账户 ID**：请仔细检查目标账户 ID，因为此操作手册无法验证账户是否存在。
**通过手动验证自动回滚**：如果更改失败，此运行手册会尝试自动回滚更改。但是，如果回滚本身失败，请确认您的账户中没有剩余的 AMI /Snapshot 副本，资源 LaunchPermission/CreateVolumePermission 属性不包括非预期账户，并且 AWS KMS 密钥策略处于其原始状态。

 **如何工作？** 

运行手册执行以下高级步骤：
+ 验证输入资源的存在、状态和加密配置
+ 检查目标账户当前的资源共享权限
+ 分析 AWS KMS 关键策略并创建所有必需更改的全面预览
+ 在进行任何更改之前，请先征得指定负责人的批准
+ 执行已批准的更改，包括资源复制（如果需要）、权限更新和 AWS KMS 密钥策略修改
+ 如果需要，提供包含回滚信息的全面执行报告

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ShareEncryptedAMIOrEBSSnapshot) 

**所需的 IAM 权限**

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

该 AutomationAssumeRole 参数需要以下操作：
+ ec2: DescribeImages
+ ec2: DescribeSnapshots
+ ec2: DescribeImageAttribute
+ ec2: DescribeSnapshotAttribute
+ ec2: ModifyImageAttribute
+ ec2: ModifySnapshotAttribute
+ ec2: CopyImage
+ ec2: CopySnapshot
+ ec2: DeregisterImage
+ ec2: DeleteSnapshot
+ kms: DescribeKey
+ kms: GetKeyPolicy
+ kms: PutKeyPolicy
+ kms: CreateGrant
+ kms: GenerateDataKey \$1
+ kms: ReEncrypt \$1
+ kms:Decrypt
+ 访问分析器：CheckAccessNotGranted

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ShareEncryptedAMIOrEBSSnapshot/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ShareEncryptedAMIOrEBSSnapshot/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**

     允许 Systems Manager Automation 代表您执行操作的 AWS AWS Identity and Access Management 角色的亚马逊资源名称。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **批准者（必填）：**

     能够批准或拒绝操作的 AWS 经过身份验证的委托人列表。最大审批者数量为 10。您可以使用以下任一格式指定委托人：用户名、用户 ARN、IAM 角色 ARN 或 IAM 代入角色 ARN。
   + **ResourceId （必填）：**

     AMI或者要共享的亚马逊 EBS 快照 ID（例如 ami-123456789012 或 snap-123456789012）。
   + **DestinationAccountId （必填）：**

     将在其中共享资源的 12 位 AWS 账户 ID。
   + **CustomerManagedKeyId （可选）：**

     AWS KMS 用于重新加密资源的 CMK ID。如果资源使用 AWS 托管密钥加密，或者指定要进行跨区域复制， DestinationRegion 则为必填项。要进行跨区域复制，此密钥必须存在于目标区域。
   + **DestinationRegion （可选）：**

     资源将被复制到的 AWS 区域。默认值为当前区域。如果指定了其他区域，则将使用 CustomerManagedKeyId 参数中指定的 AWS KMS CMK 将资源复制到目标区域。

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **`ValidateResources`**:

     验证输入资源的存在、状态、加密配置，并确定共享所需的更改。
   + **`BranchOnResourcePermission`**:

     根据是否需要检查资源共享权限来分支工作流程。
   + **`CheckResourcePermission`**:

     检查目标账户是否拥有资源所需的共享权限。
   + **`AnalyzeChanges`**:

     分析 AWS KMS 关键策略并创建所有必需更改的全面预览。
   + **`BranchOnChanges`**:

     根据更改是否需要批准来分支工作流程。
   + **`GetApproval`**:

     等待指定的 AWS IAM 委托人批准后才能继续进行所需的更改。
   + **`ExecuteChanges`**:

     执行已批准的更改，并在失败时进行回滚。
   + **`Results`**:

     生成一份全面的执行报告，总结在加密AMI或快照共享过程中采取的所有操作。

1. 完成后，查看“输出”部分以了解执行的详细结果。

 **目标账户的必填 AWS AWS Identity and Access Management 政策** 

目标账户中的 IAM 角色或用户必须配置以下 IAM 权限，才能从共享加密的 Amazon EC2 实例启动加密的 Amazon EC2 实例，AMI或者从共享的加密的 Amazon EBS 快照创建卷：

```
    {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "kms:DescribeKey",
                    "kms:ReEncrypt*",
                    "kms:CreateGrant",
                    "kms:Decrypt"
                ],
                "Resource": [
                    "arn:aws:kms:<region>:<account-id>:key/<key-id>"
                ]
            }
        ]
    }
```

**参考**

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ShareEncryptedAMIOrEBSSnapshot/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)
+ [共享密 AWS KMS 钥](https://docs.aws.amazon.com//ebs/latest/userguide/share-kms-key.html)

# `AWSSupport-RestoreEC2InstanceFromSnapshot`
<a name="automation-awssupport-restoreec2instancefromsnapshot"></a>

 **描述** 

该`AWSSupport-RestoreEC2InstanceFromSnapshot`运行手册可帮助您从亚马逊弹性区块存储 (Amazon EBS EC2) 根卷的有效快照中识别和恢复亚马逊弹性计算云 (Amazon) 实例。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-RestoreEC2InstanceFromSnapshot)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（可选）要自动化查看快照的最后日期。
+ InplaceSwap

  类型：布尔值

  有效值：true \$1 false

  描述：（可选）如果此参数的值设置为 `true`，则从快照中新创建的卷将替换附加到您的实例的现有根卷。
+ InstanceId

  类型：字符串

  说明：（必需）要从快照复原的实例的 ID。
+ LookForInstanceStatusCheck

  类型：布尔值

  有效值：true \$1 false

  默认：True

  描述：（可选）如果此参数的值设置为 `true`，则自动化将检查从快照启动的测试实例的实例状态检查是否失败。
+ SkipSnapshotsBy

  类型：字符串

  描述：（可选）搜索快照以恢复实例时跳过快照的时间间隔。例如，如果有 100 个快照可用，且您为此参数指定的值为 2，则每三张快照就会被审查一次。

  默认：0
+ SnapshotId

  类型：字符串

  描述：（可选）要从中复原实例的快照的 ID。
+ StartDate

  类型：字符串

  描述：（可选）要自动化查看快照的最早日期。
+ TotalSnapshotsToLook

  类型：字符串

  描述：（可选）自动化审查的快照数。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ssm:DescribeInstanceInformation`
+ `ec2:AttachVolume`
+ `ec2:CreateImage`
+ `ec2:CreateTags`
+ `ec2:CreateVolume`
+ `ec2:DeleteTags`
+ `ec2:DeregisterImage`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceStatus`
+ `ec2:DescribeImages`
+ `ec2:DescribeSnapshots`
+ `ec2:DescribeVolumes`
+ `ec2:DetachVolume`
+ `ec2:RunInstances`
+ `ec2:StartInstances`
+ `ec2:StopInstances`
+ `ec2:TerminateInstances`
+ `cloudwatch:GetMetricData`

 **文档步骤** 

1. `aws:executeAwsApi` - 收集有关目标实例的详细信息。

1. `aws:assertAwsResourceProperty` - 验证目标实例是否存在。

1. `aws:assertAwsResourceProperty` - 验证根卷是否为 Amazon EBS 卷。

1. `aws:assertAwsResourceProperty` - 验证另一个针对此实例的自动化是否尚未运行。

1. `aws:executeAwsApi` - 标记目标实例。

1. `aws:executeAwsApi`-创建一个 AMI 实例的。

1. `aws:executeAwsApi`-收集有关以下内容的详细信息 AMI 在上一步中创建。

1. `aws:waitForAwsResourceProperty`-等着 AMI `available`在继续操作之前先要变成。

1. `aws:executeScript`-从新创建的实例启动新实例 AMI.

1. `aws:assertAwsResourceProperty` - 验证实例状态为 `available`。

1. `aws:executeAwsApi` - 收集有关新启动实例的详细信息。

1. `aws:branch` - 根据您是否为 `SnapshotId` 参数提供了值进行分支。

1. `aws:executeScript` - 返回指定时间段内快照的列表。

1. `aws:executeAwsApi` - 停止实例。

1. `aws:waitForAwsResourceProperty` - 等待卷状态处于 `available`。

1. `aws:waitForAwsResourceProperty` - 等待实例状态处于 `stopped`。

1. `aws:executeAwsApi` - 分离根卷。

1. `aws:waitForAwsResourceProperty` - 等待根卷被分离。

1. `aws:executeAwsApi` - 附加新的根卷。

1. `aws:waitForAwsResourceProperty` - 等待新卷被附加。

1. `aws:executeAwsApi` - 启动实例。

1. `aws:waitForAwsResourceProperty` - 等待实例状态处于 `available`。

1. `aws:waitForAwsResourceProperty` - 等待通过实例的系统和实例状态检查。

1. `aws:executeScript` - 运行脚本以查找可用于成功创建卷的快照。

1. `aws:executeScript` - 运行脚本，以使用根据自动化识别的快照新创建的卷，或使用根据您在 `SnapshotId` 参数中指定的快照创建的卷来恢复实例。

1. `aws:executeScript` - 删除此自动化创建的资源。

 **输出** 

launchCloneInstance.InstanceIds

ListSnapshotByDate.finalSnapsh

ListSnapshotByDate.remainingSnapshotToBeCheckedInSameDateRange

findWorkingSnapshot. 工作快照

InstanceRecovery。结果

# `AWSSupport-SendLogBundleToS3Bucket`
<a name="automation-awssupport-sendlogbundletos3bucket"></a>

 **描述** 

`AWSSupport-SendLogBundleToS3Bucket`运行手册将 EC2救援工具生成的日志包从目标实例上传到指定的 S3 存储桶。运行手册根据目标实例的平台安装特定于平台的 R EC2 escue 版本。 EC2然后使用 Rescue 来收集所有可用的操作系统 (OS) 日志。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-SendLogBundleToS3Bucket)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  说明：（必需）要从其收集日志的 Windows 或 Linux 托管实例的 ID。
+ S3 BucketName

  类型：字符串

  说明：（必需）要将日志上传到的 S3 存储桶。
+ S3Path

  类型：字符串

  默认：`AWSSupport-SendLogBundleToS3Bucket`/

  说明：（可选）收集的日志的 S3 路径。

**所需的 IAM 权限**

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

建议接收命令的 EC2 实例具有 IAM 角色并附有 Amazon A **SSMManagedInstanceCorema** zon 托管策略。用户必须至少有 **ssm: StartAutomationExecution** 和 **ssm: SendCommand** 才能运行自动化并将命令发送到实例，还必须有 **ssm: GetAutomationExecution** 才能读取自动化输出。

 **文档步骤** 

1. `aws:runCommand`-通过安装 R EC2 escue `AWS-ConfigureAWSPackage`。

1. `aws:runCommand`-运行 PowerShell 脚本以使用 R EC2 escue 收集 Windows 故障排除日志。

1. `aws:runCommand`-使用 R EC2 escue 运行 bash 脚本收集 Linux 故障排除日志。

 **输出** 

collectAndUploadWindowsLogBundle。输出

collectAndUploadLinuxLogBundle。输出

# `AWSSupport-StartEC2RescueWorkflow`
<a name="automation-awssupport-startec2rescueworkflow"></a>

 **描述** 

`AWSSupport-StartEC2RescueWorkflow` 运行手册在创建的帮助程序实例上运行提供 base64 编码脚本（Bash 或 Powershell）以修复实例。您的实例的根卷已连接并挂载到辅助实例，也称为 R EC2 escue 实例。如果实例是 Windows，请提供 Powershell 脚本。否则，请使用 Bash。运行手册会设置一些可供脚本使用的环境变量。环境变量包含有关您提供的输入的信息，以及有关离线根卷的信息。离线卷已挂载，可供使用。例如，您可以将 Desired State Configuration 文件保存到离线 Windows 根卷，或 chroot 到一个离线 Linux 根卷并执行离线修复。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-StartEC2RescueWorkflow)

**重要**  
此自动化不支持从 Marketplace Amazon 系统映像 (AMIs) 创建的 Amazon EC2 实例。

 **附加信息** 

要对脚本进行 base64 编码，可以使用 Powershell 或 Bash。Powershell：

```
[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.IO.File]::ReadAllText('PATH_TO_FILE')))
```

Bash：

```
base64 PATH_TO_FILE
```

下面是您可以在离线脚本中使用的环境变量列表，具体视目标操作系统而定

Windows：


****  

| 变量 | 说明 | 示例值 | 
| --- | --- | --- | 
|  \$1env：救援账户\$1ID EC2  |  \$1\$1 global:ACCOUNT\$1ID \$1\$1  |  123456789012  | 
|  \$1env：救援日期 EC2  |  \$1\$1 global:DATE \$1\$1  |  2018-09-07  | 
|  \$1env：救援\$1日期\$1时间 EC2  |  \$1\$1 global:DATE\$1TIME \$1\$1  |  2018-09-07\$118.09.59  | 
|  \$1env：EC2RESCUE\$1 RW\$1DIR EC2  |  EC2Windows 版 Rescue 安装路径  |  C:\$1Program Files\$1 Amazon\$1 R EC2 escue  | 
|  \$1env：EC2RESCUE\$1 RW\$1DIR EC2  |  EC2Windows 版 Rescue 安装路径  |  C:\$1Program Files\$1 Amazon\$1 R EC2 escue  | 
|  \$1env：RESCUE\$1EXECUTION\$1ID EC2  |  \$1\$1 automation:EXECUTION\$1ID \$1\$1  |  7ef8008e-219b-4aca-8bb5-65e2e898e20b  | 
|  \$1env：救援\$1OFFLINE\$1CURRENT\$1CONTROL\$1SET EC2  |  离线 Windows 目前控制设置路径  |  `HKLM:\AWSTempSystem\ControlSet001`  | 
|  \$1env：救援\$1OFFLINE\$1DRIVE EC2  |  离线 Windows 驱动器号  |  D:\$1  | 
|  \$1env：RESCUE\$1OFLINE\$1EBS\$1DEVICE EC2  |  离线根卷 EBS 设备  |  xvdf  | 
|  \$1env：RESCUE\$1OFFLINE\$1KERNEL\$1VER EC2  |  离线 Windows 内核版本  |  6.1.7601.24214  | 
|  \$1env：RESCUE\$1OFLINE\$1OS\$1ARCHITECTUR EC2  |  离线 Windows 架构  |  AMD64  | 
|  \$1env：RESCUE\$1OFFLINE\$1OS\$1CAPTION EC2  |  离线 Windows 标题  |  Windows Server 2008 R2（数据中心版）  | 
|  \$1env：RESCUE\$1OFFLINE\$1OS\$1TYPE EC2  |  离线 Windows 操作系统类型  |  服务器  | 
|  \$1env：RESCUE\$1OFLINE\$1PROGRAM\$1FILES\$1DIR EC2  |  离线 Windows 程序文件目录路径  |  D:\$1Program Files  | 
|  \$1env：RESCUE\$1OFFLINE\$1PROGRAM\$1FILES\$1X86\$1DIR EC2  |  离线 Windows 程序文件 x86 目录路径  |  D:\$1Program Files (x86)  | 
|  \$1env：救援\$1OFFLINE\$1REGISTRY\$1DIR EC2  |  离线 Windows 注册表目录路径  |  D:\$1Windows\$1System32\$1config  | 
|  \$1env：RESCUE\$1OFFLINE\$1SYSTEM\$1ROOT EC2  |  离线 Windows 系统根目录路径  |  D:\$1Windows  | 
|  \$1env：RESCUE\$1REGION EC2  |  \$1\$1 global:REGION \$1\$1  |  us-west-1  | 
|  \$1env：RESCUE\$1S3\$1BUCKET EC2  |  \$1\$1S3BucketName \$1\$1  |  amzn-s3 demo-bucket  | 
|  \$1env：RESCUE\$1S3\$1PREFIX EC2  |  \$1\$1 S3Prefix \$1\$1  |  myprefix/  | 
|  \$1env：救援\$1SOURCE\$1INSTANCE EC2  |  \$1\$1 InstanceId \$1\$1  |  i-abcdefgh123456789  | 
|  \$1script：EC2救援\$1离线\$1WINDOWS\$1INSTALL  |  离线 Windows 安装元数据  |  客户 Powershell 对象  | 

Linux：


****  

| 变量 | 说明 | 示例值 | 
| --- | --- | --- | 
|  EC2救援账号  |  \$1\$1 global:ACCOUNT\$1ID \$1\$1  |  123456789012  | 
|  EC2救援日期  |  \$1\$1 global:DATE \$1\$1  |  2018-09-07  | 
|  EC2救援日期\$1时间  |  \$1\$1 global:DATE\$1TIME \$1\$1  |  2018-09-07\$118.09.59  | 
|  EC2RESCUE\$1 rl\$1DIR EC2  |  EC2Linux 版的救援安装路径  |  /usr/local/ec2rl-1.1.3  | 
|  EC2救援\$1执行\$1ID  |  \$1\$1 automation:EXECUTION\$1ID \$1\$1  |  7ef8008e-219b-4aca-8bb5-65e2e898e20b  | 
|  EC2离线救援设备  |  离线设备名称  |  /dev/xvdf1  | 
|  EC2离线救援\$1EBS\$1设备  |  离线根卷 EBS 设备  |  /dev/sdf  | 
|  EC2救援离线系统根目录  |  离线根卷挂载点  |  /mnt/mount  | 
|  EC2救援\$1蟒蛇  |  Python 版本  |  python2.7  | 
|  EC2救援区域  |  \$1\$1 global:REGION \$1\$1  |  us-west-1  | 
|  EC2救援\$1S3\$1BUCKET  |  \$1\$1S3BucketName \$1\$1  |  amzn-s3 demo-bucket  | 
|  EC2RESCUE\$1S3\$1PREFIX  |  \$1\$1 S3Prefix \$1\$1  |  myprefix/  | 
|  EC2救援源实例  |  \$1\$1 InstanceId \$1\$1  |  i-abcdefgh123456789  | 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**
+ AMIPrefix

  类型：字符串

  默认：`AWSSupport-EC2Rescue`

  描述：（可选）备份 AMI 名称的前缀。
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  有效值：true \$1 false

  默认：false

  描述：（可选）将其设置为，`true`以便 InstanceId在运行脚本之后、启动脚本之前创建 AMI。Automation 完成后，AMI 仍将存在。对此 AMI 的安全访问由您负责；或者，您也可以将其删除。
+ CreatePreEC2RescueBackup

  类型：字符串

  有效值：true \$1 false

  默认：false

  描述：（可选）将其设置为`true`，以便 InstanceId在运行脚本之前创建的 AMI。Automation 完成后，AMI 仍将存在。对此 AMI 的安全访问由您负责；或者，您也可以将其删除。
+ EC2RescueInstanceType

  类型：字符串

  有效值：t2.small \$1 t2.medium \$1 t2.large \$1 t3.small \$1 t3.medium \$1 t3.large \$1 i3.large \$1 i3.large

  默认：t3.medium

  描述：（可选） EC2救援实例的 EC2 实例类型。
+ InstanceId

  类型：字符串

  描述：（必需）您的 EC2 实例的 ID。重要： AWS Systems Manager 自动化会停止此实例。存储在实例存储卷中的数据将丢失。如果不使用弹性 IP，则公有 IP 地址将发生更改。
+ OfflineScript

  类型：字符串

  描述：（必需）将对帮助程序实例运行的 Base64 编码的脚本。如果你的源实例是 Linux，如果是 Windows， PowerShell 则使用 Bash。
+ S3 BucketName

  类型：字符串

  描述：（可选）您账户中用于上传故障排除日志的 S3 存储桶的名称。确保存储桶策略不会向不需要访问所收集日志的各方授予不必要的 read/write 权限。
+ S3Prefix

  类型：字符串

  默认：`AWSSupport-EC2Rescue`

  描述：（可选）S3 日志的前缀。
+ SubnetId

  类型：字符串

  默认： SelectedInstanceSubnet

  描述：（可选） EC2救援实例的子网 ID。默认情况下，使用提供的实例所在的同一子网。重要：如果您提供自定义子网，则该子网必须与位于同一个可用区中 InstanceId，并且必须允许访问 SSM 终端节点。
+ UniqueId

  类型：字符串

  默认值：\$1\$1 automation:EXECUTION\$1ID \$1\$1

  描述：（可选）用于自动化的唯一标识符。

**所需的 IAM 权限**

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

建议运行自动化的用户附加 A **mazon Role SSMAutomation I** AM 托管策略。除了此策略以外，用户还必须：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-EC2Rescue-*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::awssupport-ssm.*/*.template",
                "arn:aws:s3:::awssupport-ssm.*/*.zip"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreateInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:PutRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:PassRole",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSSupport-EC2Rescue-*",
                "arn:aws:iam::111122223333:instance-profile/AWSSupport-EC2Rescue-*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "lambda:CreateFunction",
                "ec2:CreateVpc",
                "ec2:ModifyVpcAttribute",
                "ec2:DeleteVpc",
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:DetachInternetGateway",
                "ec2:DeleteInternetGateway",
                "ec2:CreateSubnet",
                "ec2:DeleteSubnet",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:CreateRouteTable",
                "ec2:AssociateRouteTable",
                "ec2:DisassociateRouteTable",
                "ec2:DeleteRouteTable",
                "ec2:CreateVpcEndpoint",
                "ec2:DeleteVpcEndpoints",
                "ec2:ModifyVpcEndpoint",
                "ec2:Describe*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

 **文档步骤** 

1. `aws:executeAwsApi` - 描述提供的实例

1. `aws:executeAwsApi` - 描述提供的实例的根卷

1. `aws:assertAwsResourceProperty` - 检查根卷设备类型是否为 EBS

1. `aws:assertAwsResourceProperty` - 检查根卷是否未加密

1. `aws:assertAwsResourceProperty` - 检查提供的子网 ID

   1. （使用当前实例子网）-如果 \$1 SubnetId = SelectedInstanceSubnet \$1 则运行`aws:createStack`部署 EC2救援 CloudFormation 堆栈

   1. （创建新 VPC）-如果 \$1 SubnetId = CreateNew VPC\$1 则运行部署`aws:createStack`救援堆栈 EC2 CloudFormation 

   1. （使用自定义子网）- 在所有其他情况下：

      `aws:assertAwsResourceProperty` - 检查提供的子网是否与提供的实例位于同一可用区中

      `aws:createStack`-部署 EC2救援 CloudFormation 堆栈

1. `aws:invokeLambdaFunction` - 执行额外输入验证

1. `aws:executeAwsApi`-更新 EC2救援 CloudFormation 堆栈以创建 EC2救援助手实例

1. `aws:waitForAwsResourceProperty`-等待 EC2救援 CloudFormation 堆栈更新完成

1. `aws:executeAwsApi`-描述用于获取 EC2 Rescue 助手实例 ID 的 EC2救援 CloudFormation 堆栈输出

1. `aws:waitForAwsResourceProperty`-等待 R EC2 escue 助手实例变为托管实例

1. `aws:changeInstanceState` - 停止提供的实例

1. `aws:changeInstanceState` - 停止提供的实例

1. `aws:changeInstanceState` - 强制停止提供的实例

1. `aws:assertAwsResourceProperty`-检查 CreatePreEC2RescueBackup输入值

   1. （创建EC2救援前备份）-如果\$1 CreatePre EC2 RescueBackup = true\$1

   1. `aws:executeAwsApi` - 创建提供的实例的 AMI 备份

   1. `aws:createTags` - 标记 AMI 备份

1. `aws:runCommand`-在 EC2救援助手实例上安装 EC2 Rescue

1. `aws:executeAwsApi` - 从提供的实例分离根卷

1. `aws:assertAwsResourceProperty` - 检查提供的实例平台

   1. （实例为 Windows）：

      `aws:executeAwsApi`-将根卷作为 \$1xvdf\$1 连接到 R EC2 escue 助手实例

      `aws:sleep` - 休眠 10 秒

      `aws:runCommand` - 在 Powershell 中运行提供的离线脚本

   1. （实例为 Linux）：

      `aws:executeAwsApi`-将根卷作为 \$1/dev/sdf\$1 连接到 R EC2 escue 助手实例

      `aws:sleep` - 休眠 10 秒

      `aws:runCommand` - 在 Bash 中运行提供的离线脚本

1. `aws:changeInstanceState`-停止 EC2救援助手实例

1. `aws:changeInstanceState`-强制停止 EC2救援助手实例

1. `aws:executeAwsApi`-将根卷与 R EC2 escue 助手实例分离

1. `aws:executeAwsApi` - 将根卷附加回提供的实例

1. `aws:assertAwsResourceProperty`-检查 CreatePostEC2RescueBackup输入值

   1. （创建EC2救援后备份）-如果\$1 CreatePost EC2 RescueBackup = true\$1

   1. `aws:executeAwsApi` - 创建提供的实例的 AMI 备份

   1. `aws:createTags` - 标记 AMI 备份

1. `aws:executeAwsApi` - 为提供的实例的根卷恢复初始的终止时删除状态

1. `aws:changeInstanceState` - 将提供的实例恢复为初始状态（运行/停止）

1. `aws:deleteStack`-删除 EC2救援 CloudFormation 堆栈

 **输出** 

runScriptForLinux.Outp

runScriptForWindows. Output

preScriptBackup.ImageId

postScriptBackup.ImageId

# `AWSSupport-TroubleshootActiveDirectoryReplication`
<a name="automation-aws-troubleshootactivedirectoryreplication"></a>

 **描述** 

该**AWSSupport-TroubleshootActiveDirectoryReplication**运行手册通过检查目标域控制器实例上的常用设置来帮助解决 Microsoft Active Directory (AD) 域控制器复制故障。本运行手册对提供的域控制器实例运行一系列 PowerShell 命令，以检查当前的复制状态并报告可能导致域复制问题的错误。如果复制关键服务（`Netlogon`、、和`KDC`）已停止 `RPCSS``W32Time`，运行手册可以选择启动这些服务，并通过在目标实例`w32tm /resync /force`上运行来同步系统时间。

**重要**  
AWS 托管 Microsoft AD 不在本运行手册的范围之内。

**重要**  
当自动化在目标实例上运行命令时，会对目标实例文件系统进行更改。这些更改包括创建日志目录 (`$env:ProgramData\TroubleshootActiveDirectoryReplication`) 和报告文件。

 **如何工作？** 

运行手册执行以下检查和操作：
+ 验证目标实例是否运行 Windows 并且由 Systems Manager 管理。
+ 运行 PowerShell 脚本以检查 Active Directory 复制配置和状态。
+ 检查安全组和网络 ACL 设置是否存在复制伙伴连接。
+ 对时间同步和关键服务状态进行故障排除。
+ 将日志文件上传到指定的 Amazon S3 存储桶进行分析。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootActiveDirectoryReplication) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ec2:DescribeInstances`
+ `secretsmanager:GetSecretValu`e
+ `ssm:DescribeInstanceInformation`
+ `ssm:SendCommand`
+ `ssm:GetCommandInvocation`
+ `s3:GetBucketAcl`
+ `s3:GetBucketPolicy`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:PutObject`

策略示例：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "secretsmanager:GetSecretValue"
                "ssm:DescribeInstanceInformation",
                "ssm:SendCommand",
                "ssm:GetCommandInvocation",
                "s3:GetBucketAcl",
                "s3:GetBucketPolicy",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:PutObject"
            ],
            "Resource": "*"
        }
    ]
}
```

 **AWS Secrets Manager 设置** 

支票复制 PowerShell 脚本通过运行时调用来检索用户名和密码，从而连接到目标 Microsoft Active Directory 域控制器。 AWS Secrets Manager按照[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html)中的步骤创建新 AWS Secrets Manager 密钥。确保用户名和密码使用一 key/value 对格式存储`{"username":"EXAMPLE-USER","password":"EXAMPLE-PASSWORD"}`。创建密钥后，请确保将 AWS Secrets Manager 机密 ARN 的`secretsmanager:GetSecretValue`权限授予目标域控制器 IAM 实例配置文件角色。

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootActiveDirectoryReplication/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootActiveDirectoryReplication/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **Execute automation**（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**
     + 描述：（可选） AWS 身份和访问管理 (IAM) Access Management 角色的亚马逊资源名称 (ARN)，允许系统管理员自动化代表您执行操作。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
     + 类型：`AWS::IAM::Role::Arn`
   + **InstanceId （必填）：**
     + 描述：（必填）您要解决活动目录复制问题的 Amazon EC2 域控制器实例的 ID。请注意，提供的实例必须是域控制器。
     + 类型：`AWS::EC2::Instance::Id`
   + **SecretsManagerArn （必填）：**
     + 描述：（必填）您的 AWS Secrets Manager 密钥的 ARN，其中包含具有企业管理员或访问您的 Active Directory 域和林配置的同等权限的 Active Directory 用户名和密码。确保用户名和密码使用一 key/value 对格式存储`{"username":"EXAMPLE-USER","password":"EXAMPLE-PASSWORD"}`。确保将机密 ARN 的`secretsmanager:GetSecretValue`权限附加到您的目标域控制器 IAM 实例配置文件角色。
     + 类型：`String`
     + 允许的模式：`^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):secretsmanager:[a-z0-9-]{2,20}:[0-9]{12}:secret:[a-zA-Z0-9]{1}[a-zA-Z0-9\\/_+=.@-]{1,256}$`
   + **TimeSync （可选）：**
     + 描述：（可选）选择`Check`或`Sync`。如果选择`Check`，运行手册将打印出当前的系统时间同步状态。`Sync`如果选中，运行手册将尝试通过在目标实例`w32tm /resync /force`上运行来强制时间重新同步。
     + 类型：`String`
     + 允许的值：`[Check, Sync]`
     + 默认值：`Check`
   + **ServiceAction （可选）：**
     + 描述：（可选）选择`Check`或`Fix`。如果选择`Check`，运行手册会打印出`Netlogon`、`Windows Time service (W32Time)``Remote Procedure Call (RPC) Service`、和`Key Distribution Center (KDC)`服务的当前状态。如果`Fix`选中，则运行手册将尝试启动这些服务（如果有任何服务已停止）。
     + 类型：`String`
     + 允许的值：`[Check, Fix]`
     + 默认值：`Check`
   + **LogDestination （必填）：**
     + 描述：（必填）您 AWS 账户中用于上传命令输出的 Amazon S3 存储桶。
     + 类型：`String`

1. 选择**执行**。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **assertIfOperatingSystemIsWindows**:

     检查所提供的目标 Amazon EC2 实例的操作系统是否为 Windows。
   + **assertifInstanceIsSsmManaged**:

     确保 Amazon EC2 实例由 Systems Manager 管理，否则自动化将结束。
   + **检查复制**：

     在指定的域控制器实例上运行 PowerShell 脚本以获取 Active Directory 域复制配置和状态。
   + **checkInstanceSgAndNacl**:

     检查与目标域控制器实例关联的安全组和网络 ACL 是否允许发送到复制伙伴的流量。
   + **疑难解答复制：**

     运行 PowerShell 脚本以排除时间同步和关键服务状态故障。
   + **verifys3 BucketPublicStatus**：

     检查中指定的 Amazon S3 存储桶是否`LogDestination`允许匿名或公开读取或写入访问权限。
   + **`runUploadScript`**:

     运行 PowerShell 脚本将日志存档上传到`LogDestination`参数中指定的 AAmazon S3 存储桶，并从操作系统中删除存档的日志文件。日志文件可用于故障排除，也可以在排除复制问题时与 S AWS upport 共享。

1. 完成后，请查看 “**输出**” 部分，了解执行的详细结果。

**参考**

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootActiveDirectoryReplication/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWSPremiumSupport-TroubleshootEC2DiskUsage`
<a name="automation-awspremiumsupport-troubleshootEC2diskusage"></a>

 **描述** 

`AWSPremiumSupport-TroubleshootEC2DiskUsage` 运行手册可帮助您调查并有可能纠正 Amazon Elastic Compute Cloud (Amazon EC2) 实例根磁盘和非根磁盘使用方面的问题。如果可能，运行手册会尝试通过扩展卷及其文件系统来纠正问题。为执行这些任务，此运行手册会根据受影响实例的操作系统协调执行多个运行手册。

第一个运行手册（`AWSPremiumSupport-DiagnoseDiskUsageOnWindows` 或 `AWSPremiumSupport-DiagnoseDiskUsageOnLinux`）确定是否可以通过扩展卷来缓解磁盘问题。

第二个运行手册（`AWSPremiumSupport-ExtendVolumesOnWindows` 或 `AWSPremiumSupport-ExtendVolumesOnLinux`）使用第一个运行手册的输出来运行可修改卷的 Python 代码。修改卷后，运行手册会扩展受影响卷的分区和文件系统。

**重要**  
访问`AWSPremiumSupport-*`运行手册需要订阅 Business \$1 Support、Enterprise Support 或统一运营订阅。有关更多信息，请参阅[比较 AWS 支持 计划](https://aws.amazon.com/premiumsupport/plans/)。

本文档是与 AWS Managed Services (AMS) 合作编写的。AMS 可帮助您更高效、更安全地管理 AWS 基础设施。AMS 还提供操作灵活性、增强的安全性和合规性、容量优化和成本节约识别功能。有关更多信息，请参阅 [AWS Managed Services](https://aws.amazon.com/managed-services/)。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-TroubleshootEC2DiskUsage)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、Windows

**参数**
+ InstanceId

  类型：字符串

  允许的值：^i-[a-z0-9]\$18,17\$1\$1

  说明：（必需）您的 Amazon EC2 实例的 ID。
+ VolumeExpansionEnabled

  类型：布尔值

  描述：（可选）用于控制文档是否扩展受影响的卷和分区的标志。

  默认：True
+ VolumeExpansionUsageTrigger

  类型：字符串

  描述：（可选）触发扩展所需的分区空间的最小使用量（以百分比表示）。

  允许的值：^[0-9]\$11,2\$1\$1

   默认：85
+ VolumeExpansionCapSize

  类型：字符串

  （可选）：（可选）可以将 Amazon Elastic Block Store (Amazon EBS) 卷增加到的最大大小（以 GiB 为单位）。

  允许的值：^[0-9]\$11,4\$1\$1

  默认：2048
+ VolumeExpansionGibIncrease

  类型：字符串

  Description (描述)：（可选）卷容量增加，以 GiB 为单位。VolumeExpansionPercentageIncrease 将使用 VolumeExpansionGibIncrease 和之间最大的净增幅。

  允许的值：^[0-9]\$11,4\$1\$1

  默认值：20
+ VolumeExpansionPercentageIncrease

  类型：字符串

  描述：（可选）卷的百分比增大。VolumeExpansionPercentageIncrease 将使用 VolumeExpansionGibIncrease 和之间最大的净增幅。

  允许的值：^[0-9]\$11,2\$1\$1

  默认值：20
+ AutomationAssumeRole

  类型：字符串

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

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ec2:DescribeVolumes`
+ `ec2:DescribeVolumesModifications`
+ `ec2:ModifyVolume`
+ `ec2:DescribeInstances`
+ `ec2:CreateImage`
+ `ec2:DescribeImages`
+ `ec2:DescribeTags`
+ `ec2:CreateTags`
+ `ec2:DeleteTags`
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ssm:DescribeAutomationStepExecutions`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:SendCommand`
+ `ssm:DescribeInstanceInformation`
+ `ssm:ListCommands`
+ `ssm:ListCommandInvocations`

 **文档步骤** 

1. `aws:assertAwsResourceProperty` - 检查实例是否由 Systems Manager 管理

1. `aws:executeAwsApi` - 描述要获取平台的实例。

1. `aws:branch` - 根据实例平台对自动化进行分支。

   1. 如果实例是 Windows：

      1. `aws:executeAutomation` - 运行 `AWSPremiumSupport-DiagnoseDiskUsageOnWindows` 运行手册以诊断实例上的磁盘使用问题。

      1. `aws:executeAwsApi` - 获取上一个自动化的输出。

      1. `aws:branch` - 根据诊断结果进行分支，以及是否存在可以扩展以缓解警报的音量。

         1. 没有需要扩展的卷：结束自动化。

         1. 以下是需要扩展的卷：

            1. `aws:executeAwsApi` - 创建实例的 Amazon Machine Image (AMI)。

            1. `aws:waitForAwsResourceProperty` - 等待 AMI 状态变为 `available`。

            1. `aws:executeAutomation` - 运行 `AWSPremiumSupport-ExtendVolumesOnWindows` 运行手册以执行卷修改以及在操作系统 (OS) 中执行使新空间可用的所需步骤。

   1. （平台不是窗口）如果输入实例不是 Windows：

      1. `aws:executeAutomation` - 运行 `AWSPremiumSupport-DiagnoseDiskUsageOnLinux` 运行手册以诊断实例上的磁盘使用问题。

      1. `aws:executeAwsApi` - 获取上一个自动化的输出。

      1. `aws:branch` - 根据诊断结果进行分支，以及是否存在可以扩展以缓解警报的音量。

         1. 没有需要扩展的卷：结束自动化。

         1. 以下是需要扩展的卷：

            1. `aws:executeAwsApi` - 创建实例的 AMI。

            1. `aws:waitForAwsResourceProperty` - 等待 AMI 状态变为 `available`。

            1. `aws:executeAutomation` -运行 `AWSPremiumSupport-ExtendVolumesOnLinux` 运行手册以执行卷修改以及在操作系统中执行使新空间可用所需的步骤。

 **输出** 

diagnoseDiskUsageAlertOnWindows。输出

extendVolumesOnWindows. Output

diagnoseDiskUsageAlertOnLinux。输出

extendVolumesOnLinux.Output

Backup AMILinux。 ImageId

Backup AMIWindows。 ImageId 

# `AWSSupport-TroubleshootEC2InstanceConnect`
<a name="automation-troubleshoot-ec2-instance-connect"></a>

 **描述** 

 `AWSSupport-TroubleshootEC2InstanceConnect`自动化有助于分析和检测阻止使用 Amazon EC2 Instance Connect 连接到亚马逊弹性计算云 (Amaz [on EC](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/connect-linux-inst-eic.html) 2) 实例的错误。它可以识别由不支持的亚马逊系统映像 (AMI)、缺少操作系统级软件包安装或配置、缺少 AWS Identity and Access Management (IAM) 权限或网络配置问题导致的问题。

 **如何工作？** 

 该运行手册采用 IAM 角色或在 Amazon EC2 Instance Connect 中遇到问题的用户的 Amazon EC2 实例 ID、用户名、连接模式、源 IP CIDR、SSH 端口和亚马逊资源名称 (ARN)。然后，它会检查使用 Amazon EC2 Instance Connect 连接到 Amazon EC2 实例的[先决条件](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-instance-connect-prerequisites.html)：
+ 实例正在运行且处于正常状态。
+ 该实例位于 Amazon EC2 Instance Connect 支持的 AWS 区域。
+ Amazon EC2 Instance Connect 支持该实例的 AMI。
+ 该实例可以访问实例元数据服务 (IMDSv2)。
+ Amazon EC2 Instance Connect 软件包已在操作系统级别正确安装和配置。
+ 网络配置（安全组、网络 ACL 和路由表规则）允许通过 Amazon EC2 Instance Connect 连接到实例。
+ 用于利用 Amazon EC2 Instance Connect 的 IAM 角色或用户有权将密钥推送到 Amazon EC2 实例。

**重要**  
要检查实例 AMI、imdsv2 的可访问性和 Amazon EC2 Instance Connect 软件包的安装，该实例必须由 SSM 托管。否则，它会跳过这些步骤。有关更多信息，请参阅[为什么我的 Amazon EC2 实例没有显示为托管节点。](https://repost.aws/knowledge-center/systems-manager-ec2-instance-not-appear)
只有将 SourceIp CIDR 作为输入参数提供时，网络检查才会检测安全组和网络 ACL 规则是否会阻止流量。否则，它将仅显示与 SSH 相关的规则。
本运行手册中未验证使用 [Amazon EC2 Instance Connect 终端节点](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/connect-using-eice.html)的连接。
对于私有连接，自动化不会检查源计算机上是否安装了 SSH 客户端，以及它是否可以访问实例的私有 IP 地址。

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ec2:DescribeInstances`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeInternetGateways`
+ `iam:SimulatePrincipalPolicy`
+ `ssm:DescribeInstanceInformation`
+ `ssm:ListCommands`
+ `ssm:ListCommandInvocations`
+ `ssm:SendCommand`

 **说明** 

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

1. 导航到 AWS Systems Manager 控制台[https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEC2InstanceConnect/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEC2InstanceConnect/description)中的。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **InstanceId （必填）：**

     您无法使用 Amazon EC2 Instance Connect 连接到的目标 Amazon EC2 实例的 ID。
   + **AutomationAssumeRole （可选）：**

     允许 Systems Manager Automation 代表你执行操作的 IAM 角色的 ARN。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **用户名（必填）：**

     用于使用 Amazon EC2 Instance Connect 连接到亚马逊 EC2 实例的用户名。它用于评估是否向该特定用户授予 IAM 访问权限。
   + **EC2InstanceConnectRoleOrUser（必填）：**

     利用 Amazon EC2 Instance Connect 向实例推送密钥的 IAM 角色或用户的 ARN。
   + **SSHPort （可选）：**

     在 Amazon EC2 实例上配置的 SSH 端口。默认值为 `22`。端口号必须介于`1-65535`。
   + **SourceNetworkType （可选）：**

     Amazon EC2 实例的网络访问方法：
     + **浏览器：**您可以从 AWS 管理控制台进行连接。
     + **公用：**您通过 Internet 连接到位于公有子网中的实例（例如，您的本地计算机）。
     + **私有：**您通过实例的私有 IP 地址进行连接。
   + **SourceIpCIDR（可选）：**

     源 CIDR，包括您将使用 Amazon EC2 Instance Connect 登录的设备（例如您的本地计算机）的 IP 地址。示例：172.31.48.6/32。如果公有或私有访问模式未提供任何值，则运行手册将不会评估 Amazon EC2 实例安全组和网络 ACL 规则是否允许 SSH 流量。它将改为显示与 SSH 相关的规则。  
![\[Input parameters form for EC2 Instance Connect troubleshooting with various fields.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-ec2-instance-connect_input_parameters.png)

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **AssertInitialState:**

     确保 Amazon EC2 实例的状态处于运行状态。否则，自动化将结束。
   + **GetInstanceProperties:**

     获取当前 Amazon EC2 实例的属性（PlatformDetails PublicIpAddress VpcId、、 SubnetId 和 MetadataHttpEndpoint）。
   + **GatherInstanceInformationFromSSM：**

     如果该实例由 SSM 托管，则获取 Systems Manager 实例的 ping 状态和操作系统详细信息。
   + **CheckIfAWSRegion支持：**

     检查 Amazon EC2 实例是否位于 Amazon EC2 Instance Connect 支持的 AWS 区域。
   + **BranchOnIfAWSRegion支持：**

     如果 Amazon EC2 Inst AWS ance Connect 支持该区域，则继续执行。否则，它会创建输出并退出自动化。
   + **CheckIfInstanceAMIIs支持：**

     检查 Amazon EC2 Instance Connect 是否支持与该实例关联的 AMI。
   + **BranchOnIfInstanceAMIIs支持：**

     如果支持实例 AMI，它将执行操作系统级别的检查，例如元数据可访问性以及 Amazon EC2 Instance Connect 软件包的安装和配置。否则，它会使用 AWS API 检查是否启用了 HTTP 元数据，然后进入网络检查步骤。
   + **检查 IMDSReachabilityFromOs：**

     在目标 Amazon EC2 Linux 实例上运行 Bash 脚本以检查它是否能够访问。 IMDSv2
   + **检查EICPackage安装：**

     在目标 Amazon EC2 Linux 实例上运行 Bash 脚本，以检查 Amazon EC2 Instance Connect 软件包是否已正确安装和配置。
   + **检查 SSHConfigFromOs：**

     在目标 Amazon EC2 Linux 实例上运行 Bash 脚本，以检查配置的 SSH 端口是否与输入参数 `SSHPort匹配。 `
   + **CheckMetadataHTTPEndpointIsEnabled:**

     检查实例元数据服务 HTTP 端点是否已启用。
   + **检查EICNetwork访问权限：**

     检查网络配置（安全组、网络 ACL 和路由表规则）是否允许通过 Amazon EC2 Instance Connect 连接到实例。
   + **检查 IAMRoleOrUserPermissions：**

     检查用于利用 Amazon EC2 Instance Connect 的 IAM 角色或用户是否有权使用提供的用户名将密钥推送到 Amazon EC2 实例。
   + **MakeFinalOutput:**

     合并所有先前步骤的输出。

1. 完成后，请查看 “**输出**” 部分，了解执行的详细结果：

   目标实例具有所有必需先决条件的执行：  
![\[EC2 Instance Connect prerequisites check results showing successful validations for various configurations.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-ec2-instance-connect_outputs_all_requirements_found.png)

   在不支持目标实例的 AMI 的情况下执行：  
![\[Error message indicating EC2 Instance Connect does not support the specified AMI version.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-ec2-instance-connect_outputs_all_requirements_not_found.png)

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEC2InstanceConnect/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)

AWS 服务文档
+ [如何解决使用 Amazon EC2 Instance Connect 连接到我的 Amazon EC2 实例的问题？](https://repost.aws/knowledge-center/ec2-instance-connect-troubleshooting)

# `AWSSupport-TroubleshootLinuxMGNDRSAgentLogs`
<a name="automation-troublshoot-linux-mngdrs-agent-logs"></a>

 **描述** 

 `AWSSupport-TroubleshootLinuxMGNDRSAgentLogs`自动化运行手册用于检测在 Linux 服务器中安装 AWS Application Migration Service (AWS MGN) 和 AWS Elastic Disaster Recovery (AWS DRS) 复制代理以将源服务器迁移到云端时的常见错误。 AWS 

 **如何工作？** 

 运行手册`AWSSupport-TroubleshootLinuxMGNDRSAgentLogs`采用亚马逊简单存储服务 (Amazon S3) Service 路径，其中 AWS 将 MGN AWS 或 DRS 安装`aws_replication_agent_installer.log`日志作为参数上传。然后，它会执行以下任务：
+ **验证：**检查提供的日志文件是否有效以及其中是否包含至少一个代理安装。
+ **解析：**彻底解析日志文件中最新安装的代理，以查找已知的 AWS MGN 或 AWS DRS 错误。
+ **错误检测和解决：**根据解析，它会检测并列出代理安装过程中出现的任何错误或问题。对于检测到的每个错误，运行手册都提供了帮助解决或缓解问题的详细步骤。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootLinuxMGNDRSAgentLogs) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `s3:GetObject`
+ `s3:ListBucket`

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootLinuxMGNDRSAgentLogs/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootLinuxMGNDRSAgentLogs/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**

     允许 Systems Manager Automation 代表您执行操作的 AWS AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (ARN)。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **BucketName （必填）：**

     存储复制代理日志的 Amazon S3 存储桶的名称。
   + **S3ObjectKey （必填）：**

     存储复制代理安装程序日志文件的 Amazon S3 对象的密钥。示例：如果 Amazon S3 的 URI 是`s3://bucket_name/path/to/file/aws_replication_agent_installer.log`，则您应该输入`path/to/file/aws_replication_agent_installer.log`。
   + **ServiceName （必填）：**

     为其安装了复制代理的服务的名称。允许的值：`AWS MGN` 或 `AWS DRS`  
![\[Input parameters form for AWS replication agent with fields for role, bucket name, object key, and service.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/automation-troublshoot-linux-mngdrs-agent-logs_input_parameters.png)

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **`ValidateInput`**

     使用提供的 Amazon S3 存储桶名称和对象路径确保复制代理日志文件有效且可访问，然后返回最新代理安装的字节数。
   + **`CheckReplicationAgentLogErrors`**

     从最新的安装字节开始读取复制代理日志文件并搜索已知的 AWS MGN 或 AWS DRS 错误。
   + **`MakeFinalOutput`**

      创建先前检查的输出，包括有关发现的错误和故障排除建议的信息。

1. 完成后，请查看 “输出” 部分，了解执行的详细结果：  
![\[Output showing validation step, error detection, and troubleshooting steps for kernel package installation.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/automation-troublshoot-linux-mngdrs-agent-logs_outputs.png)

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootLinuxMGNDRSAgentLogs/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWSSupport-TroubleshootRDP`
<a name="automation-awssupport-troubleshootrdp"></a>

 **描述** 

`AWSSupport-TroubleshootRDP` 运行手册允许用户检查或修改目标实例上可能影响远程桌面协议 (RDP) 连接的常规设置，如 RDP 端口、网络层身份验证 (NLA) 和 Windows 防火墙配置文件。（可选）如果用户明确允许进行离线修复，则可以通过停止和启动实例来离线应用更改。默认情况下，此运行手册读取和输出这些设置的值。

**重要**  
在使用此运行手册之前，应仔细检查对 RDP 设置、RDP 服务和 Windows 防火墙配置文件的更改。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**
+ 操作

  类型：字符串

  有效值： CheckAll \$1 FixAll \$1 自定义

  默认值：Custom

  描述：（可选）[自定义] 使用 “防火墙”、“操作” RDPService StartupType、“ RDPService操作”、“ RDPPort操作” 和 “ NLASetting操作” 中的值RemoteConnections 来管理设置。[CheckAll] 读取设置的值而不进行更改。[FixAll] 恢复 RDP 默认设置，然后禁用 Windows 防火墙。
+ AllowOffline

  类型：字符串

  有效值：true \$1 false

  默认：false

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

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ 防火墙

  类型：字符串

  有效值：Check \$1 禁用

  默认值：Check

  说明：（可选）检查或禁用 Windows 防火墙（所有配置文件）。
+ InstanceId

  类型：字符串

  说明：（必需）要对其 RDP 设置进行故障排除的实例的 ID。
+ NLASetting 操作

  类型：字符串

  有效值：Check \$1 禁用

  默认值：Check

  说明：（可选）检查或禁用网络层身份验证 (NLA)。
+ RDPPort 操作

  类型：字符串

  有效值：Check \$1 修改

  默认值：Check

  说明：（可选）检查用于 RDP 连接的当前端口，或将 RDP 端口修改回 3389 并重启服务。
+ RDPService 操作

  类型：字符串

  有效值：Check \$1 启动 \$1 重启 \$1 强制重启

  默认值：Check

  描述：（可选）检查、启动、重新启动或强制重启 RDP 服务（）。TermService
+ RDPServiceStartupType

  类型：字符串

  有效值：Check \$1 自动

  默认值：Check

  说明：（可选）检查或设置 RDP 服务在 Windows 启动时自动启动。
+ RemoteConnections

  类型：字符串

  有效值：Check \$1 启用

  默认值：Check

  描述：（可选）要对 fDeny TSConnections 设置执行的操作：选中，启用。
+ S3 BucketName

  类型：字符串

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

  类型：字符串

  默认： SelectedInstanceSubnet

  描述：（可选）仅限脱机-用于执行离线故障排除的 EC2 Rescue 实例的子网 ID。如果未指定子网 ID，A AWS Systems Manager utomation 将创建一个新的 VPC。重要：子网必须与位于同一个可用区中 InstanceId，并且必须允许访问 SSM 端点。

**所需的 IAM 权限**

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

建议接收命令的 EC2 实例具有 IAM 角色并附有 Amazon A **SSMManagedInstanceCorema** zon 托管策略。要进行在线修复，用户必须至少有 **ssm: DescribeInstanceInformation**、**ssm: StartAutomationExecution** 和 **ssm: SendCommand** 才能运行自动化并将命令发送到实例，还必须有 **ssm: GetAutomationExecution** 才能读取自动化输出。要进行离线修复，用户必须至少具有 **ssm: DescribeInstanceInformation**、**ssm: StartAutomationExecution**、**ec2: 和** **ssm: DescribeInstances**，GetAutomationExecution才能读取自动化输出。 `AWSSupport-TroubleshootRDP`调用`AWSSupport-ExecuteEC2Rescue`以执行离线修复-请查看的权限`AWSSupport-ExecuteEC2Rescue`以确保您可以成功运行自动化。

 **文档步骤** 

1. `aws:assertAwsResourceProperty`-检查实例是否是 Windows Server 实例

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

1. （在线故障排除）如果实例为托管实例，则：

   1. `aws:assertAwsResourceProperty` - 检查提供的操作值

   1. （在线检查）如果**动作 = CheckAll**，那么：

      `aws:runPowerShellScript`-运行 PowerShell 脚本以获取 Windows 防火墙配置文件状态。

      `aws:executeAutomation` - 调用 `AWSSupport-ManageWindowsService` 以获取 RDP 服务状态。

      `aws:executeAutomation` - 调用 `AWSSupport-ManageRDPSettings` 以获取 RDP 设置。

   1. （在线修复）如果动**作 = FixAll**，那么：

      `aws:runPowerShellScript`-运行 PowerShell 脚本以禁用所有 Windows 防火墙配置文件。

      `aws:executeAutomation` - 调用 `AWSSupport-ManageWindowsService` 以启动 RDP 服务。

      `aws:executeAutomation` - 调用 `AWSSupport-ManageRDPSettings` 以启用远程连接并禁用 NLA。

   1. （在线管理）如果 **Action = Custom**，则：

      `aws:runPowerShellScript`-运行 PowerShell 脚本以管理 Windows 防火墙配置文件。

      `aws:executeAutomation` - 调用 `AWSSupport-ManageWindowsService` 以管理 RDP 服务。

      `aws:executeAutomation` - 调用 `AWSSupport-ManageRDPSettings` 以管理 RDP 设置。

1. （离线修复）如果实例并非托管实例，则：

   1. `aws:assertAwsResourceProperty`-断言 **AllowOffline = 真**

   1. `aws:assertAwsResourceProperty`-断言**操作 = FixAll**

   1. `aws:assertAwsResourceProperty`-断言的价值 SubnetId

      （使用提供的实例的子网）如果 SubnetId 为 SELECTED\$1INSTANCE\$1SUBNET

      `aws:executeAwsApi` - 检索当前实例的子网。

      `aws:executeAutomation` - 使用提供的实例的子网运行 `AWSSupport-ExecuteEC2Rescue`。

   1. （使用提供的自定义子网）如果未选中 SELECTED\$1IN SubnetId STANCE\$1SUBNET

      `aws:executeAutomation`-`AWSSupport-ExecuteEC2Rescue` 使用提供的 SubnetId值运行。

 **输出** 

manageFirewallProfiles。输出

管理RDPService设置。输出

管理 RDPSettings .Output

checkFirewallProfiles。输出

检查RDPService设置。输出

检查 RDPSettings .Output

disableFirewallProfiles。输出

恢复默认设置RDPService。输出

恢复默认. RDPSettings Output

疑难解答RDPOffline。输出

疑难解答RDPOfflineWithSubnetId。输出

# `AWSSupport-TroubleshootSSH`
<a name="automation-awssupport-troubleshootssh"></a>

 **描述** 

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

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootSSH)

有关使用 `AWSSupport-TroubleshootSSH` 运行手册的信息，请参阅来自 AWS Premium Support 的此 [`AWSSupport-TroubleshootSSH`故障排除主题](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-ssh-errors-automation-workflow/)。

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**
+ 操作

  类型：字符串

  有效值： CheckAll \$1 FixAll

  默认： CheckAll

  说明：（必需）指定只检查而不修复问题还是检查并自动修复任何发现的问题。
+ AllowOffline

  类型：字符串

  有效值：true \$1 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。
+ S3 BucketName

  类型：字符串

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

  类型：字符串

  默认： SelectedInstanceSubnet

  描述：（可选）仅限脱机-用于执行离线故障排除的 EC2 Rescue 实例的子网 ID。如果未指定子网 ID，A AWS Systems Manager utomation 将创建一个新的 VPC。
**重要**  
子网必须与位于同一个可用区中 InstanceId，并且必须允许访问 SSM 端点。

**所需的 IAM 权限**

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

建议接收命令的 EC2 实例具有 IAM 角色并附有 Amazon A **SSMManagedInstanceCorema** zon 托管策略。要进行在线修复，用户必须至少有 **ssm: DescribeInstanceInformation**、**ssm: StartAutomationExecution** 和 **ssm: SendCommand** 才能运行自动化并将命令发送到实例，还必须有 **ssm: GetAutomationExecution** 才能读取自动化输出。要进行离线修复，用户必须至少有 **ssm: DescribeInstanceInformation**、**ssm: StartAutomationExecution**、**ec2: 和** **ssm: DescribeInstances**，GetAutomationExecution才能读取自动化输出。 `AWSSupport-TroubleshootSSH`调用`AWSSupport-ExecuteEC2Rescue`以执行离线修复-请查看的权限`AWSSupport-ExecuteEC2Rescue`以确保您可以成功运行自动化。

 **文档步骤** 

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

   1. （在线修复）如果实例为托管实例，则：

      1. `aws:configurePackage`-通过安装适用于 Linux 的 EC2救援`AWS-ConfigureAWSPackage`。

      1. `aws:runCommand`-运行 bash 脚本运行 Linux 版 R EC2 escue。

   1. （离线修复）如果实例并非托管实例，则：

      1. `aws:assertAwsResourceProperty`-断言 **AllowOffline = 真**

      1. `aws:assertAwsResourceProperty`-断言**操作 = FixAll**

      1. `aws:assertAwsResourceProperty`-断言的价值 SubnetId

      1. （使用提供的实例的子网） SubnetId 如果SelectedInstanceSubnet 我们`aws:executeAutomation`要使用提供的实例的子网运行`AWSSupport-ExecuteEC2Rescue`。

      1. （使用提供的自定义子网） SubnetId If 不SelectedInstanceSubnet `aws:executeAutomation``AWSSupport-ExecuteEC2Rescue`使用提供的SubnetId 值运行。

 **输出** 

troubleshootSSH.Output

疑难解答SSHOffline。输出

疑难解答SSHOfflineWithSubnetId。输出

# `AWSSupport-TroubleshootSUSERegistration`
<a name="automation-awssupport-troubleshoot-suse-registration"></a>

**描述**

该`AWSSupport-TroubleshootSUSERegistration`运行手册可帮助您确定注册亚马逊弹性计算云 (Amaz EC2 on) 的原因 SUSE Linux Enterprise Server 具有 SUSE 更新基础设施的实例失败。此自动化输出提供了解决问题或帮助您排查问题的步骤。如果实例在自动化期间通过了所有检查，该实例将注册到 SUSE Update Infrastructure。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootSUSERegistration)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  描述：（必填）您要进行故障排除的 Amazon EC2 实例的 ID。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:StartAutomationExecution`
+ `ssm:DescribeInstanceProperties`
+ `ssm:DescribeInstanceInformation`
+ `ssm:ListCommandInvocations`
+ `ssm:SendCommand`
+ `ssm:ListCommands`

**文档步骤**
+ `aws:assertAwsResourceProperty`-检查 Amazon EC2 实例是否由管理 AWS Systems Manager。
+ `aws:runCommand`-检查 Amazon EC2 实例平台是否为 SLES.
+ `aws:runCommand` - 检查软件包 `cloud-regionsrv-client` 版本是否高于或等于所需的版本 9.0.10。
+ `aws:runCommand` - 检查基础产品的符号链接是否损坏，并在链接损坏时修复链接。
+ `aws:runCommand` - 检查主机文件 (`/etc/hosts`) 是否包含 `smt-ec2-suscloud.net` 的记录。自动化将删除所有重复的条目。
+ `aws:runCommand` - 检查 `curl` 命令是否已安装。
+ `aws:runCommand`-检查亚马逊 EC2 实例是否可以访问实例元数据服务 (IMDS) 地址 169.254.169.254。
+ `aws:runCommand`-检查 Amazon EC2 实例是否有账单代码或 AWS Marketplace 产品代码。
+ `aws:runCommand`-检查 Amazon EC2 实例是否可以通过 HTTPS 访问至少 1 台区域服务器。
+ `aws:runCommand`-检查 Amazon EC2 实例是否可以通过 HTTP 访问订阅管理工具 (SMT) 服务器。
+ `aws:runCommand`-检查亚马逊 EC2 实例是否可以通过 HTTPS 访问订阅管理工具 (SMT) 服务器。
+ `aws:runCommand`-检查亚马逊 EC2 实例是否可以通过 HTTPS 到达该`smt-ec2.susecloud.net`地址。
+ `aws:runCommand`-向 SUSE 更新基础设施注册 Amazon EC2 实例。
+ `aws:executeScript` - 收集并输出所有先前步骤的输出。

# `AWSSupport-TroubleshootWindowsPerformance`
<a name="awssupport-troubleshoot-windows-performance"></a>

 **描述** 

 该运行手册`AWSSupport-TroubleshootWindowsPerformance`有助于解决亚马逊弹性计算云 (Amazon EC2) Windows 实例上持续存在的性能问题。运行手册从目标实例捕获日志，并分析 CPU、内存、磁盘和网络性能指标。或者，自动化可以捕获进程转储，以帮助您确定性能下降的潜在原因。如果您允许安装此运行手册，则自动化还会使用最新的[https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/Windows-Server-EC2Rescue.html](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/Windows-Server-EC2Rescue.html)工具捕获事件和系统日志。

 **如何工作？** 

 运行手册执行以下步骤：
+ 检查 Amazon EC2 实例的先决条件。
+ 在 Amazon EC2 Windows 实例的根磁盘中生成性能日志
+ 将捕获的日志存储在文件夹中 `C:\ProgramData\Amazon\SSM\TroubleshootWindowsPerformance`
+ 如果提供了亚马逊简单存储服务 (Amazon S3) Service 存储桶，并且自动代入角色具有所需的权限，则捕获的日志将上传到 Amazon S3 存储桶。
+ 将最新`EC2Rescue`工具安装到 Amazon EC2 Windows 实例，用于捕获事件和系统日志（如果您选择安装），但它不会分析所捕获的进程转储和日志`EC2Rescue`。

**重要**  
要执行本运行手册，Amazon EC2 Windows 实例必须由 AWS Systems Manager管理。有关更多信息，请参阅[为什么我的 Amazon EC2 实例没有显示为托管节点](https://repost.aws/knowledge-center/systems-manager-ec2-instance-not-appear)。
要执行本运行手册，Amazon EC2 Windows 实例必须在 Windows 8.1/ Windows Server 2012 R2 (6.3) 或更高版本上运行 PowerShell 4.0 或更高版本。有关更多信息，请参阅 [Windows 操作系统版本](https://learn.microsoft.com/en-us/windows/win32/sysinfo/operating-system-version)。
要生成性能日志，根设备上至少需要 10 GB 的可用空间。如果根磁盘大于 100 GB，则可用空间必须大于磁盘大小的 10%。如果您在执行过程中转储进程，则可用空间必须大于 10 GB，再加上该进程消耗的内存总量（当该进程消耗的内存超过 10 GB 时）。
根设备上生成的日志不会自动删除。
运行手册不会卸载该`EC2Rescue`工具。有关更多信息，请参阅[用`EC2Rescue`于 Windows 服务器](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/Windows-Server-EC2Rescue.html)。
最佳做法是在性能影响期间运行此自动化。您也可以使用 AWS Systems Manager 状态管理器关联或通过安排 AWS Systems Manager 维护窗口来定期运行它。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootWindowsPerformance) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ec2:DescribeInstances`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:DescribeInstanceInformation`
+ `ssm:GetAutomationExecution`
+ `ssm:ListCommands`
+ `ssm:ListCommandInvocations`
+ `ssm:SendCommand`
+ `s3:ListBucket`
+ `s3:GetEncryptionConfiguration`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:GetBucketPolicyStatus`
+ `s3:PutObject`
+ `s3:GetBucketAcl`
+ `s3:GetAccountPublicAccessBlock`

 *（可选）在实例配置文件上附加的 IAM 角色或在实例上配置的 IAM 用户需要执行以下操作才能将日志上传到为参数指定的 Amazon S3 存储桶`LogUploadBucketName`：*
+ `s3:PutObject`
+ `s3:GetObject`
+ `s3:ListBucket`

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootWindowsPerformance/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootWindowsPerformance/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**

     允许 Systems Manager Automation 代表您执行操作的 AWS AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (ARN)。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **InstanceId （必填）：**

     您要在其中运行自动化的目标 Amazon EC2 Windows 实例的 ID。该实例必须由 Systems Manager 管理才能执行自动化。
   + **CaptureProcessDump （可选）：**

     要捕获的进程转储类型。自动化可以为可能在自动化开始时造成性能影响的流程捕获一个进程转储。实例根卷需要至少 10 GB 的可用空间（当根卷大小大于 100 GB 时，需要大于磁盘大小的 10%；如果进程消耗的内存超过 10 GB，则需要加上 10 GB 加上进程消耗的总内存大小）。
   + **LogCaptureDuration （可选）：**

     问题出现时，此自动化将捕获日志的分钟数，介于`1`和`15`之间。默认值为 `5`。
   + **LogUploadBucketName （可选）：**

     您账户中您要上传日志的 Amazon S3 存储桶。存储桶必须配置服务器端加密 (SSE)，并且存储桶策略不得向不需要访问捕获日志的各方授予不必要的 read/write 权限。亚马逊 EC2 Windows 实例必须有权访问亚马逊 S3 存储桶。
   + **安装 EC2RescueTool （可选）：**

     设置为`Yes`允许运行手册安装该`EC2Rescue`工具的最新版本以捕获 Windows 事件和系统日志。默认值为 `No`。
   + **致谢（必填）：**

     阅读本自动化操作手册所执行操作的完整详细信息，如果您同意，请键入`Yes, I understand and acknowledge`。  
![\[Input parameters form for troubleshooting Amazon EC2 Windows instance performance issues.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-windows-performance_input_parameters.png)

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **`CheckConcurrency:`**

     确保只有一次针对该实例执行此运行手册。如果运行手册发现另一个针对同一实例的执行，它将返回错误并结束。
   + **`AssertInstanceIsWindows:`**

     断言 Amazon EC2 实例在 Windows 操作系统上运行。否则，自动化将结束。
   + **`AssertInstanceIsManagedInstance:`**

     断言 Amazon EC2 实例由管理。 AWS Systems Manager否则，自动化将结束。
   + **`VerifyPrerequisites:`**

     验证实例操作系统上的 PowerShell 版本，并确保可以通过 Systems Manager 连接实例以运行 PowerShell 命令。此自动化支持在 Windows 8.1 /Server 2012 R2 (6.3) 或更高版本上运行 PowerShell 4.0 及更高版本。如果版本较旧，则自动化将失败。当您选择将日志上传到 Amazon S3 存储桶时，此自动操作会检查 “ AWS 工具” PowerShell 模块是否可用。否则，自动化将结束。
   + **`BranchOnProcessDump:`**

     分支取决于您是否将其设置为捕获影响性能的进程的转储。
   + **`CaptureProcessDump:`**

     检查实例是否有足够的空间来运行此自动化（当您选择 “最高 CPU /内存” 时）。
   + **`CapturePerformanceLogs:`**

     再次检查磁盘空间并在实例上运行 PowerShell 脚本以创建 perfmon 计数器并启动性能监视器和 Windows 性能记录器日志记录。脚本在满足定义`LogCaptureDuration`后停止。
   + **`SummarizePerformanceLogs:`**

     汇总上一步生成的 XML 报告`CapturePerformanceLogs`，找出自动化输出中显示的消耗最多 WorkingSet 64（内存）和处理器时间 (CPU) 百分比的负责进程。它会生成类似的网络接口 LogicalDisk、内存 TCPv4 IPv4、 UDPv4 和的使用信息，并将其保存到`analysis_output.log`输出文件夹中。
   + **`BranchOnInstallEC2Rescue:`**

     分支（如果您将其设置为在 Amazon EC2 实例中安装最新`EC2Rescue`工具）。
   + **`InstallEC2RescueTool:`**

     在实例操作系统中安装该`EC2Rescue`工具以使用捕获`EC2Rescue`日志`AWS-ConfigureAWSPackage`。
   + **`RunEC2RescueTool:`**

     在实例操作系统中运行该`EC2Rescue`工具以捕获所需的所有日志。 `EC2Rescue`仅捕获所需的日志以节省空间。
   + **`BranchOnIfS3BucketProvided:`**

     根据用户的输入进行分支`LogUploadBucketName`，以查看是否有可用于上传日志的存储桶名称。
   + **`GetS3BucketPublicStatus:`**

     确定是否提供了 Amazon S3 存储桶，如果提供，则确认该 Amazon S3 存储桶不是公有的，并且已使用 SSE 进行配置。
   + **`UploadLogResult:`**

     将日志上传到提供的 Amazon S3 存储桶。如果 PowerShell 版本为 5.0 或更高版本，它会将日志压缩为 ZIP 存档并上传。它会在上传完成后删除 ZIP 文件。如果 PowerShell 版本低于 5.0，则会将文件直接上传到文件夹。
   + **`CleanUpLogsOnFailure:`**

     当步骤失败时，清除该`CapturePerformanceLogs`步骤生成的所有日志。如果 SSM 代理无法正常工作或 Windows 系统没有响应，则该`CleanUpLogsOnFailure`步骤可能会失败或超时。

1. 完成后，请查看 “输出” 部分，了解执行的详细结果：

   在目标实例具有所有必需先决条件的情况下执行。  
![\[Output logs showing performance capture process, EC2Rescue completion, and top CPU/memory usage processes.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-windows-performance_outputs_all_prerequisites_met.png)

   目标实例在 Linux 平台上执行且执行失败。您可以选择步骤 ID 以查看失败详情。  
![\[Execution status showing failed overall status with 2 executed steps, 1 succeeded and 1 failed.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-windows-performance_outputs_failed_linux_instance.png)

   步骤的失败详情`AssertInstanceIsWindows`。  
![\[Failure details showing verification error for Linux property value instead of Windows.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-windows-performance_outputs_assert_windows_fail.png)

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootWindowsPerformance/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWSSupport-TroubleshootWindowsUpdate`
<a name="awssupport-troubleshoot-windows-update"></a>

 **描述** 

 该`AWSSupport-TroubleshootWindowsUpdate`运行手册用于识别可能导致亚马逊弹性计算云 (Amazon EC2) Windows 实例的 Windows 更新失败的问题。

 **如何工作？** 

 运行手册执行以下步骤：
+ 检查目标 Amazon EC2 实例是否由管理 AWS Systems Manager。
+ 检查 Systems Manager 的修补操作是否支持代 AWS Systems Manager 理（SSM 代理）和 Windows Server 版本。
+ 检查为 Windows 更新推荐的可用磁盘空间以及是否正在等待重启。待重启通常表示更新处于待处理状态，并且在执行其他更新之前需要重新启动。
+ 在操作系统级别配置代理设置，这有助于解决连接问题。
+ 执行亚马逊简单存储服务 (Amazon S3) Semple Service 终端节点连接测试，并调用 [https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_GetDeployablePatchSnapshotForInstance.html](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_GetDeployablePatchSnapshotForInstance.html)API 操作来检索托管节点使用的补丁基准的当前快照。
+ 如果连接失败，则提供`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`运行手册的选项，以分析实例与 Amazon S3 终端节点的连接。
+ 验证 Windows 更新配置并测试 Windows 服务器更新服务 (WSUS)（如果适用）。

**重要**  
不支持活动目录域控制器。
不支持 Windows Server 版本 2008 R2 或之前的版本。
不支持 SSM Agent 1.2.371 或之前的版本。
`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`运行手册[https://docs.aws.amazon.com//vpc/latest/reachability/what-is-reachability-analyzer.html](https://docs.aws.amazon.com//vpc/latest/reachability/what-is-reachability-analyzer.html)用于分析源端点和服务端点之间的网络连接。每次在来源和目标之间运行分析时，您需要支付费用。有关详细信息，请参阅 [Amazon VPC 定价](https://aws.amazon.com/vpc/pricing/)。
并非所有支持 Systems Manager 的地区都提供该操作手`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`册。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootWindowsUpdate) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ssm:DescribeInstanceInformation`
+ `ssm:SendCommand`
+ `ssm:ListCommandInvocations`
+ `ssm:ListCommands`

**注意**  
要运行子运行手册`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`，请添加[本文档](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-awssupport-analyzeawsendpointreachabilityfromec2.html)中列出的权限。

 **说明** 

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

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootWindowsUpdate/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootWindowsUpdate/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**

     允许 Systems Manager Automation 代表您执行操作的 AWS AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (ARN)。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **InstanceId （必填）：**

     输入 Windows 更新失败的亚马逊 EC2 实例的 ID。
   + **RunVpcReachabilityAnalyzer（可选）：**

     如果网络问题是由扩展检查确定的，或者指定的`true`实例 ID 不是托管实例，则指定运行`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`自动化。有关此子自动化的更多信息，请参阅[文档](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-awssupport-analyzeawsendpointreachabilityfromec2.html)。默认值为 `false`。
   + **RetainVpcReachabilityAnalysis（可选）：**

     只有在`RunVpcReachabilityAnalyzer`是的情况下才相关`true`。指定`true`保留由创建的网络洞察路径和相关分析`Reachability Analyzer`。默认情况下，这些资源将在成功分析后删除。如果您选择保留分析，则子运行手册不会删除该分析，您可以在 Amazon VPC 控制台中将其可视化。控制台链接将在儿童自动化输出中可用。默认值`false`。  
![\[Input parameters form for an AWS EC2 instance with fields for InstanceId and automation options.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-windows-update_input_parameters.png)

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **`getWindowsServerAndSSMAgentVersion:`**

     验证目标实例是否由管理， AWS Systems Manager 并获取有关 SSM 代理版本和 Windows 版本的详细信息。
   + **`assertifInstanceIsSsmManaged:`**

     确保 Amazon EC2 实例由 AWS Systems Manager (SSM) 管理，否则自动化将结束。
   + **`CheckProxy:`**

     检查 Windows 实例的所有代理类型。
   + **`CheckPrerequisites:`**

     获取 SSM 代理版本和 Windows 版本，并确定它是否是 Active Directory 域控制器 (DC)。如果实例是 DC 或者不支持 SSM 代理或 Windows 版本，则运行手册将停止。
   + **`CheckDiskSpace:`**

     获取并验证 Windows 实例上的可用磁盘空间是否足以执行 Windows 更新。
   + **`CheckPendingReboot:`**

     在 Windows 实例上检查是否有任何待重启的任务。
   + **`CheckS3Connectivity:`**

     检查实例是否可以访问的 Amazon S3 终端节点`Patchbaseline`。
   + **`branchOnRunVpcReachabilityAnalyzer:`**

     如果`RunVpcReachabilityAnalyzer`为 true，则它会分支自动化以对调试 Amazon S3 连接进行更深入的分析。
   + **`GenerateEndpoints:`**

     生成一个终端节点，以便对 Amazon S3 终端节点进行扩展连接检查。
   + **`analyzeAwsEndpointReachabilityFromEC2:`**

     调用自动化 runbook，`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`. 以检查所选实例与所需终端节点的可访问性。
   + **`CheckWindowsUpdateServices:`**

     检查 Windows 更新服务状态和启动类型。
   + **`CheckWindowsUpdateSettings:`**

     检查是否在 Windows 实例上配置了 Windows 更新策略。
   + **`CheckWSUSSettings:`**

     检查 Windows 更新是使用 WSUS 还是使用 Microsoft 更新目录配置的，并验证连接。
   + **`CheckWUGlobalSettings:`**

     检查通过 Windows 实例配置的 Windows 更新全局设置。
   + **`GenerateLogs:`**

     将 Windows 更新日志和 CBS 日志下载到实例桌面，并检查 Windows 事件日志是否出现故障。
   + **`FinalReport:`**

     生成所有步骤的完整报告。

1. 完成后，请查看 “输出” 部分，了解执行的详细结果：  
![\[Final report results showing various system checks and statuses, all marked as PASSED.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-windows-update_outputs.png)

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootWindowsUpdate/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)

与 AWS 服务相关的文档
+ 有关更多信息，请参阅文章《[TroubleShootWindows 更新](https://repost.aws/knowledge-center/ec2-windows-update-troubleshoot)》。

# `AWSSupport-UpgradeWindowsAWSDrivers`
<a name="automation-awssupport-upgradewindowsawsdrivers"></a>

 **描述** 

`AWSSupport-UpgradeWindowsAWSDrivers`运行手册升级或修复指定 EC2 实例上的存储和网络 AWS 驱动程序。运行手册尝试通过调用 SSM 代理在线安装最新版本的 AWS 驱动程序。如果无法联系 SSM 代理，则如果明确要求，运行手册可以脱机安装 AWS 驱动程序。

 此运行手册支持以下操作系统：
+ Windows Server 2016
+ Windows Server 2019
+ Windows Server 2022
+ Windows Server 2025

**注意**  
注意：在线和离线升级都将在尝试任何操作前创建一个 AMI，此 AMI 在 Automation 完成后予以保留。对此 AMI 的安全访问由您负责；或者，您也可以将其删除。在线方法在升级过程中会重启实例，而离线方法则需要停止然后启动提供的 EC2 实例。

**重要**  
如果您的实例 AWS Systems Manager 使用 VPC 终端节点连接，则除非在 us-east-1 区域中使用，否则本运行手册将失败。此运行手册也将在域控制器上失败。要更新域控制器上的 AWS PV 驱动程序，请参阅[升级域控制器（AWS PV 升级）](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Upgrading_PV_drivers.html#aws-pv-upgrade-dc)。

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-UpgradeWindowsAWSDrivers)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**
+ AllowOffline

  类型：字符串

  有效值：true \$1 false

  默认：false

  说明：（可选）如果允许在无法执行在线安装时进行离线驱动程序升级，请将其设置为 true。注意：离线方法需要停止提供的 EC2 实例然后启动。存储在实例存储卷中的数据将丢失。如果不使用弹性 IP，则公有 IP 地址将发生更改。
+ AutomationAssumeRole

  类型：字符串

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

  类型：字符串

  有效值：true \$1 false

  默认：false

  说明：（可选）仅离线 - 如果允许离线驱动程序升级在实例已安装最新驱动程序的情况下继续，请将其设置为 true。
+ InstanceId

  类型：字符串

  说明：（必需）您的 Windows Server EC2 实例的 ID。
+ SubnetId

  类型：字符串

  默认： SelectedInstanceSubnet

  描述：（可选）仅限脱机-用于执行离线驱动程序升级的 R EC2 escue 实例的子网 ID。如果未指定子网 ID，Systems Manager Automation 将创建一个新 VPC。
**重要**  
子网必须与位于同一个可用区中 InstanceId，并且必须允许访问 SSM 端点。

**所需的 IAM 权限**

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

接收命令的 EC2 实例必须至少具有一个 IAM 角色，该角色包括 **ssm: StartAutomationExecution** 和 **ssm: SendCommand** 的权限，用于运行自动化并将命令发送到实例，以及 **ssm: GetAutomationExecution** 才能读取自动化输出。您可以将 `AmazonSSMManagedInstanceCore` Amazon 托管策略附加到 IAM 角色以提供这些权限。不过，我们建议使用 Automation IAM 角色 `AmazonSSMAutomationRole` 以实现该目的。有关更多信息，请参阅 [使用 IAM 为自动化配置角色](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-permissions.html)。

如果要执行离线升级，请参阅 [`AWSSupport-StartEC2RescueWorkflow`](automation-awssupport-startec2rescueworkflow.md) 所需的权限。

 **文档步骤** 

1. `aws:assertAwsResourceProperty` - 验证输入实例是否为 Windows。

1. `aws:assertAwsResourceProperty` - 验证输入实例是否为托管实例。如果是托管实例，则启动在线升级，否则将评估离线升级。

   1. （在线升级）如果输入实例为托管实例：

      1. `aws:createImage` - 创建 AMI 备份。

      1. `aws:createTags` - 标记 AMI 备份。

      1. `aws:runCommand`-安装 ENA 网络驱动程序。

      1. `aws:runCommand`-安装 NVMe 驱动程序。

      1. `aws:runCommand`-安装 AWS 光伏驱动程序。

   1. （离线升级）如果输入实例不为托管实例：

      1. `aws:assertAwsResourceProperty` - 验证AllowOffline 旗帜是否设置为。`true`如果是，则启动离线升级，否则自动化流程结束。

      1. `aws:changeInstanceState` - 停止源实例。

      1. `aws:changeInstanceState` - 强制停止源实例。

      1. `aws:createImage` - 创建源实例的 AMI 备份。

      1. `aws:createTags` - 标记源实例的 AMI 备份。

      1. `aws:executeAwsApi` - 为实例启用 ENA

      1. `aws:assertAwsResourceProperty`-宣称ForceUpgrade 旗帜。

      1. 强制离线升级）如果**ForceUpgrade 为 true**`aws:executeAutomation`，则`AWSSupport-StartEC2RescueWorkflow`使用驱动程序强制升级脚本运行调用。不管当前安装的是何种版本，都将安装驱动程序

      1. （离线升级）如果**ForceUpgrade 为 false**`aws:executeAutomation`，则`AWSSupport-StartEC2RescueWorkflow`使用驱动程序升级脚本运行调用。

 **输出** 

preUpgradeBackup.ImageId

preOfflineUpgradeBackup。 ImageId

`installAwsEnaNetworkDriverOnInstance.Output`

`installAWSNVMeOnInstance.Output`

`installAWSPVDriverOnInstance.Output`

upgradeDriversOffline。输出

forceUpgradeDrivers离线。输出