

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Systems Manager Automation Runbook Reference
<a name="automation-runbook-reference"></a>

為了協助您快速入門， AWS Systems Manager 提供預先定義的 Runbook。這些 Runbook 由 Amazon Web Services AWS 支援和 維護 AWS Config。Runbook 參考說明 Systems Manager 提供的每個預先定義的 Runbook 支援，以及 AWS Config。

**重要**  
如果您執行可使用 AWS Identity and Access Management (IAM) 服務角色叫用其他服務的自動化工作流程，請注意您必須為該服務角色設定可叫用這些服務的許可。此要求適用於所有 AWS Automation Runbook (`AWS-*` Runbook)，例如 `AWS-ConfigureS3BucketLogging`、`AWS-CreateDynamoDBBackup` 和 `AWS-RestartEC2Instance` Runbook 等。此要求也適用於您建立的任何自訂 Automation Runbook，透過呼叫其他 AWS 服務的動作來叫用其他 服務。例如，如果您使用 `aws:executeAwsApi`、`aws:createStack` 或 `aws:copyImage` 等動作，則您必須為服務角色設定可叫用這些服務的許可。您可以將 IAM 內嵌政策新增至角色，以啟用其他 AWS 服務的許可。如需詳細資訊，請參閱[新增自動化內嵌政策以叫用其他 AWS 服務](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-permissions.html#automation-role-add-inline-policy)。

此參考包含的主題說明 AWS AWS 支援、 和 擁有的每個 Systems Manager Runbook AWS Config。Runbook 由相關 組織 AWS 服務。每個頁面都會說明您在使用 Runbook 時可指定的必要和選用參數。每個頁面也會列出 Runbook 中的步驟，以及自動化的輸出，如果有的話。

 此參考*不包含*需要核准之 Runbook 的個別頁面，例如 `AWS-CreateManagedLinuxInstanceWithApproval`或 `AWS-StopEC2InstanceWithApproval` Runbook。包含 的任何 Runbook 名稱`WithApproval`，表示 Runbook 包含 [https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-action-approve.html](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-action-approve.html)動作。此動作會暫停自動化，直到指定的委託人核准或拒絕動作為止。達到所需的核准數量後，自動化會繼續。

如需有關執行自動化的資訊，請參閱[執行簡單的自動化](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-working-executing.html)。如需在多個目標上執行自動化的詳細資訊，請參閱[使用目標和速率控制的執行自動化](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-working-targets-and-rate-controls.html)。

**Topics**
+ [檢視 Runbook 內容](#view-automation-json)
+ [API Gateway](automation-ref-abp.md)
+ [AWS Batch](automation-ref-batch.md)
+ [CloudFormation](automation-ref-cfn.md)
+ [CloudFront](automation-ref-cf.md)
+ [CloudTrail](automation-ref-ct.md)
+ [CloudWatch](automation-ref-cw.md)
+ [Amazon DocumentDB](automation-ref-docdb.md)
+ [CodeBuild：](automation-ref-acb.md)
+ [AWS CodeDeploy](automation-ref-acd.md)
+ [AWS Config](automation-ref-cc.md)
+ [Amazon Connect](automation-ref-con.md)
+ [AWS Directory Service](automation-ref-ads.md)
+ [AWS AppSync](automation-ref-apsy.md)
+ [Amazon Athena](automation-ref-ate.md)
+ [DynamoDB](automation-ref-ddb.md)
+ [AWS Database Migration Service](automation-ref-dms.md)
+ [Amazon EBS](automation-ref-ebs.md)
+ [Amazon EC2](automation-ref-ec2.md)
+ [Amazon ECS](automation-ref-ecs.md)
+ [Amazon EFS](automation-ref-efs.md)
+ [Amazon EKS](automation-ref-eks.md)
+ [Elastic Beanstalk](automation-ref-aeb.md)
+ [Elastic Load Balancing](automation-ref-elb.md)
+ [Amazon EMR](automation-ref-emr.md)
+ [Amazon OpenSearch Service](automation-ref-opensearch.md)
+ [EventBridge](automation-ref-ev.md)
+ [AWS Glue](automation-ref-glu.md)
+ [Amazon FSx](automation-ref-fsx.md)
+ [GuardDuty](automation-ref-gdu.md)
+ [IAM](automation-ref-iam.md)
+ [事件偵測與回應](automation-ref-idr.md)
+ [Amazon Kinesis Data Streams](automation-ref-aks.md)
+ [AWS KMS](automation-ref-kms.md)
+ [Lambda](automation-ref-lam.md)
+ [Amazon Managed Workflows for Apache Airflow](automation-ref-mwaa.md)
+ [Neptune](automation-ref-neptune.md)
+ [Amazon RDS](automation-ref-rds.md)
+ [Amazon Redshift](automation-ref-rs.md)
+ [Amazon S3](automation-ref-s3.md)
+ [Amazon SES](automation-ref-ses.md)
+ [SageMaker AI](automation-ref-sm.md)
+ [Secrets Manager](automation-ref-asm.md)
+ [Security Hub CSPM](automation-ref-ash.md)
+ [AWS Shield](automation-ref-shd.md)
+ [Amazon SNS](automation-ref-sns.md)
+ [Amazon SQS](automation-ref-sqs.md)
+ [步驟函數](automation-ref-sfn.md)
+ [Systems Manager](automation-ref-sys.md)
+ [第三方](automation-ref-third-party.md)
+ [Amazon VPC](automation-ref-vpc.md)
+ [AWS WAF](automation-ref-waf.md)
+ [Amazon WorkSpaces](automation-ref-wsp.md)
+ [X-Ray](automation-ref-xray.md)

## 檢視 Runbook 內容
<a name="view-automation-json"></a>

您可以在 Systems Manager 主控台中檢視 Runbook 的內容。

**檢視 Runbook 內容**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 AWS Systems Manager 主控台。

1. 在導覽窗格中，選擇 **Documents (文件)**。

   -或-

   如果 AWS Systems Manager 首頁先開啟，請選擇選單圖示 (![\[Horizontal black and white striped pattern forming a simple geometric design.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/menu-icon-small.png)) 以開啟導覽窗格，然後在導覽窗格中選擇**文件**。

1. 在**類別**區段中，選擇**自動化文件**。

1.  選擇 Runbook，接著選擇 **View details (檢視詳細資訊)**。

1.  選擇 **Content (內容)** 索引標籤。

# API Gateway
<a name="automation-ref-abp"></a>

 AWS Systems Manager 自動化為 Amazon API Gateway 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-DeleteAPIGatewayStage`](automation-aws-delete-apigw-stage.md)
+ [`AWSConfigRemediation-EnableAPIGatewayTracing`](automation-aws-enable-apigw-tracing.md)
+ [`AWSConfigRemediation-UpdateAPIGatewayMethodCaching`](automation-aws-update-api-gateway.md)
+ [`AWSSupport-TroubleshootAPIGatewayHttpErrors`](automation-aws-troubleshootapigatewayhttp-errors.md)

# `AWSConfigRemediation-DeleteAPIGatewayStage`
<a name="automation-aws-delete-apigw-stage"></a>

 **Description** 

 `AWSConfigRemediation-DeleteAPIGatewayStage` Runbook 會刪除 Amazon API Gateway (API Gateway) 階段。 AWS Config 必須在您執行此自動化 AWS 區域 的 中啟用 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteAPIGatewayStage) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ StageArn

  類型：字串

  描述：（必要） 您要刪除之 API Gateway 階段的 Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `apigateway:GET` 
+  `apigateway:DELETE` 

 **文件步驟** 
+  `aws:executeScript` - 刪除 `StageArn` 參數中指定的 API Gateway 階段。

# `AWSConfigRemediation-EnableAPIGatewayTracing`
<a name="automation-aws-enable-apigw-tracing"></a>

 **Description** 

 `AWSConfigRemediation-EnableAPIGatewayTracing` Runbook 可在 Amazon API Gateway (API Gateway) 階段啟用追蹤。 AWS Config 必須在您執行此自動化的 AWS 區域 中啟用 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableAPIGatewayTracing) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ StageArn

  類型：字串

  描述：（必要） 您要啟用追蹤之 API Gateway 階段的 Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:GetAutomationExecution` 
+  `ssm:StartAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `apigateway:GET` 
+  `apigateway:PATCH` 

 **文件步驟** 
+  `aws:executeScript` - 在 `StageArn` 參數中指定的 API Gateway 階段上啟用追蹤。

# `AWSConfigRemediation-UpdateAPIGatewayMethodCaching`
<a name="automation-aws-update-api-gateway"></a>

 **Description** 

 `AWSConfigRemediation-UpdateAPIGatewayMethodCaching` Runbook 會更新 Amazon API Gateway 階段資源的快取方法設定。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-UpdateAPIGatewayMethodCaching) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ CachingAuthorizedMethods

  類型：StringList

   描述：（必要） 授權啟用快取的方法。清單必須是 `DELETE` 、`GET`、、`HEAD``OPTIONS`、`PATCH`、 `POST` 和 `PUT` 的一些組合。針對選取的方法啟用快取，針對非選取的方法停用快取。如果選取 `ANY` ，則會針對所有方法啟用快取，如果`NONE`選取 ，則會針對所有方法停用快取。
+ StageArn

  類型：字串

   描述：（必要） API 的 `REST` API Gateway 階段 ARN。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `apigateway:PATCH` 
+  `apigateway:GET` 

 **文件步驟** 
+  `aws:executeScript` - 接受階段資源 ID 做為輸入，使用 API 動作更新 `UpdateStage` API Gateway 階段的快取方法設定，並驗證更新。

# `AWSSupport-TroubleshootAPIGatewayHttpErrors`
<a name="automation-aws-troubleshootapigatewayhttp-errors"></a>

 **Description** 

**AWSSupport-TroubleshootAPIGatewayHttpErrors** Runbook 透過剖析存取和/或執行日誌和分析錯誤，透過 re：Post 文章和 AWS 文件提供修復步驟，協助疑難排解調用已部署 Amazon API Gateway REST API 時的 5XX/4XX 錯誤。

**重要**  
此 Runbook 具有下列限制：  
必須啟用記錄。請參閱[使用 API Gateway 主控台設定 Amazon CloudWatch API 記錄](https://docs.aws.amazon.com//apigateway/latest/developerguide/set-up-logging.html#set-up-access-logging-using-console)。
日誌必須在 （發生錯誤） 之前啟用。日誌擷取和分析無法回溯完成。
涵蓋的錯誤：500、502、503、504、401、403、429。
僅支援 REST API。此 Runbook 未涵蓋 WebSocket 和 HTTP (v2)。

**重要**  
對於 REST API 擷取 AWS 的 Amazon CloudWatch Logs，以及分析中使用的 CloudWatch Logs Insights，使用此 Runbook 可能會對您的帳戶產生額外費用。如需可能產生之費用的詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。如果`aws:deletestack`步驟失敗，請前往 CloudFormation 主控台手動刪除堆疊。此 Runbook 建立的堆疊名稱開頭為 `AWSSupport-TroubleshootAPIGatewayHttpErrors`。如需有關刪除 CloudFormation 堆疊的資訊，請參閱 AWS CloudFormation 《 使用者指南》中的[刪除堆疊](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)。

 **如何運作？** 

Runbook 會執行下列驗證和分析步驟：
+ 驗證指定的 REST API 是否存在，而且您具有必要的許可。
+ 驗證 API 中是否存在指定的階段。
+ 驗證 API 中是否存在指定的資源路徑。
+ 驗證指定的 HTTP 方法是否存在於資源。
+ 分析指定參數和時間範圍的 CloudWatch Logs，以識別錯誤並提供修補建議。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAPIGatewayHttpErrors) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `apigateway:GET`
+ `logs:CreateLogGroup`
+ `logs:CreateLogStream`
+ `logs:DescribeLogGroups`
+ `logs:DescribeLogStreams`
+ `logs:PutLogEvents`
+ `logs:StartQuery`
+ `logs:GetQueryResults`

IAM 政策範例：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "apigateway:GET",
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents",
                "logs:StartQuery",
                "logs:GetQueryResults"
            ],
            "Resource": "*"
        }
    ]
}
```

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayHttpErrors/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayHttpErrors/description) 中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 SSM Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，SSM Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **RestApiId （必要）：**
     + 描述：（必要） 需要故障診斷之 API 的 API ID。必須是 10 個字元的英數字串。
     + 類型：`String`
     + 允許模式： `^[a-zA-Z0-9]{10}$`
   + **StageName （必要）：**
     + 描述：（必要） 部署階段的名稱。必須為 1-128 個字元，其中包含字母、數字、底線或連字號。
     + 類型：`String`
     + 允許模式： `^[a-zA-Z0-9_\\-]{1,128}$`
   + **ResourcePath （選用）：**
     + 描述：（選用） 設定方法的資源路徑。範例：`/`、`/store/items`、`/{resource}`。
     + 類型：`String`
     + 預設：`/`
   + **HttpMethod （選用）：**
     + 描述：（選用） 所設定資源路徑的方法。
     + 類型：`String`
     + 允許的值： `[ANY, DELETE, HEAD, OPTIONS, GET, POST, PUT, PATCH]`
     + 預設：`GET`
   + **StartTime （選用）：**
     + 描述：（選用） 查詢 CloudWatch Logs 的開始日期和時間。格式：`yyyy-MM-ddTHH:mm:ss`UTC 時區。如果未指定，則 預設為目前時間前 3 天。
     + 類型：`String`
     + 允許模式： `^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$`
     +  預設：`""`
   + **EndTime （選用）：**
     + 描述：（選用） 查詢 CloudWatch Logs 的結束日期和時間。格式：`yyyy-MM-ddTHH:mm:ss`UTC 時區。如果未指定，則 預設為目前時間。
     + 類型：`String`
     + 允許模式： `^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$`
     +  預設：`""`
   + **AccessLogs （選用）：**
     + 描述：（選用） 是否應分析存取日誌。
     + 類型：`Boolean`
     + 允許的值： `[true, false]`
     + 預設：`false`
   + **RequestId （選用）：**
     + 描述：（選用） 觀察到錯誤的請求 ID。必須是有效的 UUID 格式。
     + 類型：`String`
     + 允許模式： `^$|^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`
     + 預設：`""`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **CheckApiExists**：

     驗證提供的 REST API 是否存在，而且您具有存取它的必要許可。
   + **CheckStageExists**：

     驗證提供的階段名稱是否存在於指定的 API 中，並擷取存取日誌群組資訊。
   + **CheckResourceExists**：

     驗證提供的資源路徑是否存在於 API 中，並擷取資源 ID。
   + **CheckMethodExists**：

     驗證提供的 HTTP 方法是否存在於指定的資源。
   + **AnalyseLogs**：

     使用提供的參數搜尋日誌，並根據發現的任何錯誤傳回建議。此步驟會分析執行和存取日誌 （如果啟用），以識別 4XX 和 5XX 錯誤，並提供特定的修補指引。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果，包括錯誤分析和修復建議。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayHttpErrors/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 Batch
<a name="automation-ref-batch"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Batch。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-TroubleshootAWSBatchJob`](automation-aws-troubleshoot-aws-batch-job.md)

# `AWSSupport-TroubleshootAWSBatchJob`
<a name="automation-aws-troubleshoot-aws-batch-job"></a>

 **Description** 

 `AWSSupport-TroubleshootAWSBatchJob` Runbook 可協助您疑難排解導致 AWS Batch 任務無法進入 `RUNNABLE` `STARTING` 狀態的問題。

 **如何運作？** 

此 Runbook 會執行下列檢查：
+ 如果運算環境處於 `INVALID`或 `DISABLED` 狀態。
+ 如果運算環境的`Max vCPU`參數夠大，足以容納任務佇列中的任務磁碟區。
+ 如果任務需要的 vCPUs或記憶體資源多於運算環境執行個體類型可提供的資源。
+ 如果任務應該在 GPU 型執行個體上執行，但運算環境未設定為使用 GPU 型執行個體。
+ 如果運算環境的 Auto Scaling 群組無法啟動執行個體。
+ 如果啟動的執行個體可以加入基礎 Amazon Elastic Container Service (Amazon ECS) 叢集；否則，它會執行 [AWSSupport-TroubleshootECSContainerInstance](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-aws-troubleshoot-ecs-container-instance.html) 執行手冊。
+ 如果任何許可問題封鎖執行任務所需的特定動作。

**重要**  
此 Runbook 必須在與您的任務停滯在 `RUNNABLE` 狀態的相同 AWS 區域中啟動。
對於在 Amazon ECS AWS Fargate 或 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上排程 AWS Batch 的任務，可以啟動此 Runbook。如果針對 Amazon Elastic Kubernetes Service (Amazon EKS) 上的 AWS Batch 任務啟動自動化，則啟動會停止。
如果執行個體可以執行任務，但無法註冊 Amazon ECS 叢集，此 Runbook 會啟動`AWSSupport-TroubleshootECSContainerInstance`自動化 Runbook，嘗試判斷原因。如需詳細資訊，請參閱 [AWSSupport-TroubleshootECSContainerInstance](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-aws-troubleshoot-ecs-container-instance.html) 執行手冊。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAWSBatchJob) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ JobId

  類型：字串

  描述：（必要） 停滯在 `RUNNABLE` 狀態 AWS Batch 的任務 ID。

  允許模式： `^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}(:[0-9]+)?(#[0-9]+)?$`

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `autoscaling:DescribeAutoScalingGroups`
+ `autoscaling:DescribeScalingActivities`
+ `batch:DescribeComputeEnvironments`
+ `batch:DescribeJobs`
+ `batch:DescribeJobQueues`
+ `batch:ListJobs`
+ `cloudtrail:LookupEvents`
+ `ec2:DescribeIamInstanceProfileAssociations`
+ `ec2:DescribeInstanceAttribute`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceTypeOfferings`
+ `ec2:DescribeInstanceTypes`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSpotFleetInstances`
+ `ec2:DescribeSpotFleetRequests`
+ `ec2:DescribeSpotFleetRequestHistory`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcEndpoints`
+ `ec2:DescribeVpcs`
+ `ecs:DescribeClusters`
+ `ecs:DescribeContainerInstances`
+ `ecs:ListContainerInstances`
+ `iam:GetInstanceProfile`
+ `iam:GetRole`
+ `iam:ListRoles`
+ `iam:PassRole`
+ `iam:SimulateCustomPolicy`
+ `iam:SimulatePrincipalPolicy`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:DescribeAutomationStepExecutions`
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `sts:GetCallerIdentity`

 **指示** 

1. 導覽至主控台中的 [AWSSupport-TroubleshootAWSBatchJob](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAWSBatchJob) AWS Systems Manager 。

1. 選取**執行自動化**

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **JobId （必要）：**

     停滯在 `RUNNABLE` 狀態 AWS Batch 的任務 ID。  
![\[Input parameters form with AutomationAssumeRole and JobId fields for AWS Batch job configuration.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-aws-batch-job_input_paramters.png)

1. 選取**執行**。

1. 請注意，自動化會啟動。

1. 文件會執行下列步驟：
   + **PreflightPermissionChecks：**

     針對起始使用者/角色執行預檢 IAM 許可檢查。如果有任何缺少的許可，此步驟會提供全域輸出區段中缺少的 API 動作。
   + **ProceedOnlyIfUserHasPermission：**

     根據您是否具有 Runbook 所有必要動作的許可進行分支。
   + **AWSBatchJobEvaluation：**

     針對 AWS Batch 任務執行檢查，確認其存在且處於 `RUNNABLE` 狀態。
   + **ProceedOnlyIfBatchJobExistsAndIsinRunnableState：**

     根據任務是否存在且處於 `RUNNABLE` 狀態的分支。
   + **BatchComputeEnvironmentEvaluation：**

     針對 AWS Batch 運算環境執行檢查。
   + **ProceedOnlyIfComputeEnvironmentChecksAreOK：**

     根據運算環境檢查是否成功進行分支。
   + **UnderlyingInfraEvaluation：**

     針對基礎 Auto Scaling 群組或 Spot 機群請求執行檢查。
   + **ProceedOnlyIfInstancesNotJoiningEcsCluster：**

      分支是根據是否有執行個體未加入 Amazon ECS 叢集。
   + **EcsAutomationRunner：**

     為未加入叢集的執行個體執行 Amazon ECS 自動化。
   + **ExecutionResults：**

     根據先前的步驟產生輸出。

1. 完成後，會提供評估報告 HTML 檔案的 URI：

   **報告成功執行 Runbook 的 S3 主控台連結和 Amazon S3 URI**  
![\[Execution result summary showing errors in compute environment setup and job queue.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-aws-batch-job_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAWSBatchJob)
+ [執行自動化](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/)

# CloudFormation
<a name="automation-ref-cfn"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS CloudFormation。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-DeleteCloudFormationStack`](automation-aws-deletecloudformationstack.md)
+ [`AWS-EnableCloudFormationSNSNotification`](AWS-EnableCloudFormationStackSNSNotification.md)
+ [`AWS-RunCfnLint`](automation-aws-runcfnlint.md)
+ [`AWSSupport-TroubleshootCFNCustomResource`](automation-awssupport-TroubleshootCFNCustomResource.md)
+ [`AWS-UpdateCloudFormationStack`](automation-aws-updatecloudformationstack.md)

# `AWS-DeleteCloudFormationStack`
<a name="automation-aws-deletecloudformationstack"></a>

 **Description** 

刪除 CloudFormation 堆疊。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DeleteCloudFormationStack) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ StackNameOrId

  類型：字串

  描述：（必要） 要刪除之 CloudFormation 堆疊的名稱或唯一 ID

# `AWS-EnableCloudFormationSNSNotification`
<a name="AWS-EnableCloudFormationStackSNSNotification"></a>

 **Description** 

 `AWS-EnableCloudFormationSNSNotification` Runbook 會為您指定的 () 堆疊啟用 Amazon Simple Notification Service AWS CloudFormation (Amazon SNS CloudFormation) 通知。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableCloudFormationStackSNSNotification) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ StackArn

  類型：字串

  描述：（必要） 您要為其啟用 Amazon SNS 通知的 CloudFormation 堆疊 ARN 或名稱。
+ NotificationArn

  類型：字串

  描述：（必要） 您要與 CloudFormation 堆疊建立關聯的 Amazon SNS 主題 ARN。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ ssm:GetAutomationExecution
+ ssm:StartAutomationExecution
+ cloudformation:DescribeStacks
+ cloudformation:UpdateStack
+ kms:解密
+ kms:產生資料金鑰
+ sns:Publish
+ sqs:GetQueueAttributes

 **文件步驟** 
+ CheckCfnSnsLimits (`aws:executeScript`) - 驗證尚未與您指定的 CloudFormation 堆疊建立關聯的 Amazon SNS 主題數量上限。
+ EnableCfnSnsNotification (`aws:executeAwsApi`) - 啟用 CloudFormation 堆疊的 Amazon SNS 通知。
+ VerificationCfnSnsNotification (`aws:executeScript`) - 驗證堆疊是否已啟用 Amazon SNS 通知 CloudFormation 。

 **輸出** 

CheckCfnSnsLimits.NotificationArnList - 接收 CloudFormation 堆疊 Amazon SNS 通知的 ARNs 清單。

VerificationCfnSnsNotification.VerifySnsTopicsResponse - API 操作的回應，確認 CloudFormation 堆疊已啟用 Amazon SNS 通知。

# `AWS-RunCfnLint`
<a name="automation-aws-runcfnlint"></a>

 **Description** 

 此 Runbook 使用 [AWS CloudFormation Linter](https://github.com/aws-cloudformation/cfn-python-lint) `cfn-python-lint` () 來驗證 YAML 和 JSON 範本是否符合 CloudFormation 資源規格。`AWS-RunCfnLint` Runbook 會執行其他檢查，例如確保已輸入資源屬性的有效值。如果驗證不成功，則 `RunCfnLintAgainstTemplate` 步驟會失敗，且會在錯誤訊息中提供 Linter 工具的輸出。此 Runbook 使用 using cfn-lint v0.24.4。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-RunCfnLint) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ ConfigureRuleFlag

  類型：字串

   描述：(選用) 規則要傳遞至 `--configure-rule` 參數的組態選項。

  範例：E2001:strict=false,E3012:strict=false。
+ FormatFlag

  類型：字串

   描述：(選用) 要傳遞給 `--format` 參數以指定輸出格式的值。

  有效值：預設 \$1 安靜 \$1 可剖析 \$1 json

  預設：Default
+ IgnoreChecksFlag

  類型：字串

  描述：(選用) 要傳遞至 --ignore-checks 參數的規則 ID。不會檢查這些規則。

  範例：E1001,E1003,W7001
+ IncludeChecksFlag

  類型：字串

   描述：(選用) 要傳遞至 `--include-checks` 參數的規則 ID。將會檢查這些規則。

  範例：E1001,E1003,W7001
+ InfoFlag

  類型：字串

   描述：(選用) `--info` 參數的選項。包含啟用範本處理的其他記錄資訊的選項。

  預設：false
+ TemplateFileName

  類型：字串

  描述：S3 儲存貯體中範本檔案的名稱或鍵。
+ TemplateS3BucketName

  類型：字串

  描述：包含套件程式範本的 S3 儲存貯體名稱。
+ RegionsFlag

  類型：字串

   描述：（選用） 要傳遞到 的值，讓 `--regions` 參數根據指定的 測試範本 AWS 區域。

  範例：us-east-1、us-west-1

 **文件步驟** 

 RunCfnLintAgainstTemplate – 根據指定的 CloudFormation 範本執行`cfn-python-lint`工具。

 **輸出** 

 RunCfnLintAgainstTemplate.output – `cfn-python-lint`工具中的 stdout。

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

 **Description** 

 `AWSSupport-TroubleshootCFNCustomResource` Runbook 可協助診斷 AWS CloudFormation 堆疊在建立、更新或刪除自訂資源時失敗的原因。Runbook 會檢查用於自訂資源的服務權杖，以及傳回的錯誤訊息。檢閱自訂資源的詳細資訊後，執行手冊輸出會提供自訂資源堆疊行為和疑難排解步驟的說明。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootCFNCustomResource) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ StackName

  類型：字串

  描述：（必要） 自訂資源失敗的 CloudFormation 堆疊名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `cloudformation:DescribeStacks` 
+  `cloudformation:DescribeStackEvents` 
+  `cloudformation:ListStackResources` 
+  `ec2:DescribeRouteTables` 
+  `ec2:DescribeNatGateways` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeVpcs` 
+  `ec2:DescribeVpcEndpoints` 
+  `ec2:DescribeSubnets` 
+  `logs:FilterLogEvents` 

 **文件步驟** 
+  `validateCloudFormationStack` - 驗證 CloudFormation 堆疊是否存在於相同的 AWS 帳戶 和 中 AWS 區域。
+  `checkCustomResource` - 分析 CloudFormation 堆疊、檢查失敗的自訂資源，並輸出有關如何對失敗的自訂資源進行故障診斷的資訊。

# `AWS-UpdateCloudFormationStack`
<a name="automation-aws-updatecloudformationstack"></a>

 **Description** 

使用存放在 Amazon S3 儲存貯體中的 CloudFormation 範本來更新 AWS CloudFormation 堆疊。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-UpdateCloudFormationStack) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ LambdaAssumeRole

  類型：字串

  描述：（必要） Lambda 所擔任角色的 ARN
+ StackNameOrId

  類型：字串

  描述：（必要） 要更新的 CloudFormation 堆疊名稱或唯一 ID
+ TemplateUrl

  類型：字串

   描述：（必要） 包含更新 CloudFormation 範本的 S3 儲存貯體位置 （例如 `https://s3.amazonaws.com/amzn-s3-demo-bucket2/updated.template)` 

# CloudFront
<a name="automation-ref-cf"></a>

 AWS Systems Manager 自動化為 Amazon CloudFront 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-EnableCloudFrontDefaultRootObject`](automation-aws-enable-cloudfront-root-object.md)
+ [`AWSConfigRemediation-EnableCloudFrontAccessLogs`](automation-aws-enable-cloudfront-access-logs.md)
+ [`AWSConfigRemediation-EnableCloudFrontOriginAccessIdentity`](automation-aws-enable-cloudfront-origin-access.md)
+ [`AWSConfigRemediation-EnableCloudFrontOriginFailover`](automation-aws-enable-cloudfront-failover.md)
+ [`AWSConfigRemediation-EnableCloudFrontViewerPolicyHTTPS`](automation-aws-enable-cloudfront-viewer-policy.md)

# `AWSConfigRemediation-EnableCloudFrontDefaultRootObject`
<a name="automation-aws-enable-cloudfront-root-object"></a>

 **Description** 

 `AWSConfigRemediation-EnableCloudFrontDefaultRootObject` Runbook 會為您指定的 Amazon CloudFront (CloudFront) 分佈設定預設根物件。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCloudFrontDefaultRootObject) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ CloudFrontDistributionId

  類型：字串

  描述：（必要） 您要為其設定預設根物件的 CloudFront 分佈 ID。
+ DefaultRootObject

  類型：字串

  描述：（必要） 當檢視器請求指向您的根 URL 時，您希望 CloudFront 傳回的物件。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `cloudfront:GetDistributionConfig` 
+  `cloudfront:UpdateDistribution` 

 **文件步驟** 
+  `aws:executeScript` - 為您在 `CloudFrontDistributionId` 參數中指定的 CloudFront 分佈設定預設根物件。

# `AWSConfigRemediation-EnableCloudFrontAccessLogs`
<a name="automation-aws-enable-cloudfront-access-logs"></a>

 **Description** 

 `AWSConfigRemediation-EnableCloudFrontAccessLogs` Runbook 會為您指定的 Amazon CloudFront (CloudFront) 分佈啟用存取記錄。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCloudFrontAccessLogs) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ BucketName

  類型：字串

  描述：（必要） 您要存放存取日誌的 Amazon Simple Storage Service (Amazon S3) 儲存貯體名稱。 AWS 區域 不支援 af-south-1、ap-east-1、eu-south-1 和 me-south-1 中的儲存貯體。
+ CloudFrontId

  類型：字串

  描述：（必要） 您要啟用存取登入的 CloudFront 分佈 ID。
+ IncludeCookies

  類型：布林值

  有效值：true \$1 false

   描述：（必要） 如果您想要將 Cookie 包含在存取日誌中，請將此參數設為 `true` 。
+ 字首

  類型：字串

  描述：（選用） 您希望 CloudFront 在您的分佈存取日誌前綴`filenames`的選用字串，例如 `myprefix/`。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `cloudfront:GetDistribution`
+ `cloudfront:GetDistributionConfig`
+ `cloudfront:UpdateDistribution`
+ `s3:GetBucketLocation`
+ `s3:GetBucketAcl`
+ `s3:PutBucketAcl`

**注意**  
`s3:GetBucketLocation` API 只能用於相同帳戶中的 S3 儲存貯體。您無法將其用於跨帳戶 S3 儲存貯體。

 **文件步驟** 
+  `aws:executeScript` - 為您在 `CloudFrontDistributionId` 參數中指定的 CloudFront 分佈啟用存取記錄。

# `AWSConfigRemediation-EnableCloudFrontOriginAccessIdentity`
<a name="automation-aws-enable-cloudfront-origin-access"></a>

 **Description** 

 `AWSConfigRemediation-EnableCloudFrontOriginAccessIdentity` Runbook 會為您指定的 Amazon CloudFront (CloudFront) 分佈啟用原始存取身分。此自動化會為 Amazon Simple Storage Service (Amazon S3) 原始伺服器類型的所有原始伺服器指派相同的 CloudFront 原始伺服器存取身分，而沒有您指定的 CloudFront 分佈的原始伺服器存取身分。此自動化不會授予 CloudFront 原始存取身分的讀取許可，以存取 Amazon S3 儲存貯體中的物件。您必須更新 Amazon S3 儲存貯體許可，以允許存取。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCloudFrontOriginAccessIdentity) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ CloudFrontDistributionId

  類型：字串

  描述：（必要） 您要啟用原始伺服器容錯移轉的 CloudFront 分佈 ID。
+ OriginAccessIdentityId

  類型：字串

  描述：（必要） 要與原始伺服器建立關聯的 CloudFront 原始存取身分 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `cloudfront:GetDistributionConfig` 
+  `cloudfront:UpdateDistribution` 

 **文件步驟** 
+  `aws:executeScript` - 為您在 `CloudFrontDistributionId` 參數中指定的 CloudFront 分佈啟用原始存取身分，並驗證原始存取身分是否已指派。

# `AWSConfigRemediation-EnableCloudFrontOriginFailover`
<a name="automation-aws-enable-cloudfront-failover"></a>

 **Description** 

 `AWSConfigRemediation-EnableCloudFrontOriginFailover` Runbook 會為您指定的 Amazon CloudFront (CloudFront) 分佈啟用原始伺服器容錯移轉。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCloudFrontOriginFailover) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ CloudFrontDistributionId

  類型：字串

  描述：（必要） 您要啟用原始伺服器容錯移轉的 CloudFront 分佈 ID。
+ OriginGroupId

  類型：字串

  描述：（必要） 原始伺服器群組的 ID。
+ PrimaryOriginId

  類型：字串

  描述：（必要） 原始伺服器群組中主要原始伺服器的 ID。
+ SecondaryOriginId

  類型：字串

  描述：（必要） 原始伺服器群組中次要原始伺服器的 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `cloudfront:GetDistributionConfig` 
+  `cloudfront:UpdateDistribution` 

 **文件步驟** 
+  `aws:executeScript` - 為您在 `CloudFrontDistributionId` 參數中指定的 CloudFront 分佈啟用原始伺服器容錯移轉，並驗證是否已啟用容錯移轉。

# `AWSConfigRemediation-EnableCloudFrontViewerPolicyHTTPS`
<a name="automation-aws-enable-cloudfront-viewer-policy"></a>

 **Description** 

 `AWSConfigRemediation-EnableCloudFrontViewerPolicyHTTPS` Runbook 會為您指定的 Amazon CloudFront (CloudFront) 分佈啟用檢視器通訊協定政策。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCloudFrontViewerPolicyHTTPS) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ CloudFrontDistributionId

  類型：字串

  描述：（必要） 您要啟用檢視器通訊協定政策的 CloudFront 分佈 ID。
+ ViewerProtocol 政策

  類型：字串

  有效值：https-only， redirect-to-https

  描述：（必要） 檢視器可用來存取原始伺服器中檔案的通訊協定。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `cloudfront:GetDistributionConfig` 
+  `cloudfront:UpdateDistribution` 
+  `cloudfront:GetDistribution` 

 **文件步驟** 
+  `aws:executeScript` - 為您在 `CloudFrontDistributionId` 參數中指定的 CloudFront 分佈啟用檢視器通訊協定政策，並驗證政策是否已指派。

# CloudTrail
<a name="automation-ref-ct"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS CloudTrail。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-CreateCloudTrailMultiRegionTrail`](automation-aws-create-ct-mr.md)
+ [`AWS-EnableCloudTrail`](automation-aws-enablecloudtrail.md)
+ [`AWS-EnableCloudTrailCloudWatchLogs`](enable-cloudtrail-cloudwatch-logs.md)
+ [`AWSConfigRemediation-EnableCloudTrailEncryptionWithKMS`](automation-aws-ctrail-kms.md)
+ [`AWS-EnableCloudTrailKmsEncryption`](enable-cloudtrail-kms-encryption.md)
+ [`AWSConfigRemediation-EnableCloudTrailLogFileValidation`](automation-aws-enable-ctrail-log-validation.md)
+ [`AWS-EnableCloudTrailLogFileValidation`](enable-cloudtrail-log-validation.md)
+ [`AWS-QueryCloudTrailLogs`](aws-querycloudtraillogs.md)

# `AWSConfigRemediation-CreateCloudTrailMultiRegionTrail`
<a name="automation-aws-create-ct-mr"></a>

 **Description** 

 `AWSConfigRemediation-CreateCloudTrailMultiRegionTrail` Runbook 會建立 AWS CloudTrail (CloudTrail) 追蹤，將日誌檔案從多個 AWS 區域 交付到您選擇的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-CreateCloudTrailMultiRegionTrail) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ BucketName

  類型：字串

  描述：（必要） 您要上傳日誌的 Amazon S3 儲存貯體名稱。
+ keyPrefix

  類型：字串

  描述：（選用） Amazon S3 金鑰字首，位於您為日誌檔案交付指定的儲存貯體名稱之後。
+ TrailName

  類型：字串

  描述：（必要） 要建立的 CloudTrail 追蹤名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `cloudtrail:CreateTrail` 
+  `cloudtrail:StartLogging` 
+  `cloudtrail:GetTrail` 
+  `s3:PutObject` 
+  `s3:GetBucketAcl` 
+  `s3:PutBucketLogging` 
+  `s3:ListBucket` 

 **文件步驟** 
+  `aws:executeAwsApi` - 接受線索名稱和 Amazon S3 儲存貯體名稱做為輸入，並建立 CloudTrail 線索。
+  `aws:executeAwsApi` - 在建立的追蹤上啟用記錄，並開始將日誌交付到您指定的 Amazon S3 儲存貯體。
+  `aws:assertAwsResourceProperty` - 驗證 CloudTrail 追蹤是否已建立。

# `AWS-EnableCloudTrail`
<a name="automation-aws-enablecloudtrail"></a>

 **Description** 

建立 AWS CloudTrail 追蹤並設定 S3 儲存貯體的記錄。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableCloudTrail) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ S3BucketName

  類型：字串

  描述：(必要) 指定發佈日誌檔的 S3 儲存貯體名稱。
**注意**  
 S3 儲存貯體必須存在，且儲存貯體政策必須授予 CloudTrail 寫入它的許可。如需詳細資訊，請參閱[適用於 CloudTrail 的 Amazon S3 儲存貯體政策](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-s3-bucket-policy-for-cloudtrail.html)。
+ TrailName

  類型：字串

  描述：(必要) 新的追蹤名稱。

# `AWS-EnableCloudTrailCloudWatchLogs`
<a name="enable-cloudtrail-cloudwatch-logs"></a>

**Description**

此 Runbook 會更新一或多個 AWS CloudTrail 追蹤的組態，以將事件傳送至 Amazon CloudWatch Logs 日誌群組。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableCloudTrailCloudWatchLogs)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ CloudWatchLogsLogGroupArn

  類型：字串

  描述：（必要） 交付 CloudTrail 日誌的 CloudWatch Logs 日誌群組 ARN。
+ CloudWatchLogsRoleArn

  類型：字串

  描述：（必要） CloudWatch Logs Logs IAM 角色的 ARN 假設寫入指定的日誌群組。
+ TrailNames

  類型：StringList

  描述：（必要） 以逗號分隔的 CloudTrail 追蹤名稱清單，其事件要傳送到 CloudWatch Logs。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudtrail:UpdateTrail`
+ `iam:PassRole`

**文件步驟**
+ `aws:executeScript` - 更新指定的 CloudTrail 追蹤，將事件交付至指定的 CloudWatch Logs 日誌群組。

# `AWSConfigRemediation-EnableCloudTrailEncryptionWithKMS`
<a name="automation-aws-ctrail-kms"></a>

 **Description** 

 `AWSConfigRemediation-EnableCloudTrailEncryptionWithKMS` Runbook 會使用您指定的 AWS CloudTrail () 客戶受管金鑰來加密 AWS Key Management Service (CloudTrail AWS KMS) 追蹤。此 Runbook 應僅用作基準，以確保您的 CloudTrail 追蹤根據最低建議的安全最佳實務進行加密。我們建議使用不同的 KMS 金鑰加密多個線索。CloudTrail 摘要檔案不會加密。如果您先前已將追蹤`true`的 `EnableLogFileValidation` 參數設定為 ，請參閱*AWS CloudTrail 《 使用者指南*》中的 [CloudTrail 預防性安全最佳實務](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/best-practices-security.html#best-practices-security-preventative)主題的「使用伺服器端加密搭配 AWS KMS 受管金鑰」一節，以取得詳細資訊。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCloudTrailEncryptionWithKMS) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ KMSKeyId

  類型：字串

   描述：（必要） 您要用來加密`TrailName`參數中指定之追蹤的客戶受管金鑰的 ARN、金鑰 ID 或金鑰別名。
+ TrailName

  類型：字串

  描述：（必要） 您要更新以進行加密的線索 ARN 或名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `cloudtrail:GetTrail` 
+  `cloudtrail:UpdateTrail` 

 **文件步驟** 
+  `aws:executeAwsApi` - 對您在 `TrailName` 參數中指定的線索啟用加密。
+  `aws:executeAwsApi` - 收集您在 `KMSKeyId` 參數中指定的客戶受管金鑰的 ARN。
+  `aws:assertAwsResourceProperty` - 確認 CloudTrail 追蹤已啟用加密。

# `AWS-EnableCloudTrailKmsEncryption`
<a name="enable-cloudtrail-kms-encryption"></a>

**Description**

此 Runbook 會更新一或多個 AWS CloudTrail 線索的組態，以使用 AWS Key Management Service (AWS KMS) 加密。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableCloudTrailKmsEncryption)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ KMSKeyId

  類型：字串

  描述：（必要） 您要用來加密參數中指定之追蹤的客戶受管金鑰的金鑰 ID`TrailName`。此值可以是「alias/」字首的別名名稱、別名的完整指定 ARN，或金鑰的完整指定 ARN。
+ TrailNames

  類型：StringList

  描述：（必要） 您希望更新以逗號分隔的追蹤清單，以加密。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudtrail:UpdateTrail`
+ `kms:DescribeKey`
+ `kms:ListKeys`

**文件步驟**
+ `aws:executeScript` - 啟用您在 `TrailName` 參數中指定的線索 AWS KMS 加密。

# `AWSConfigRemediation-EnableCloudTrailLogFileValidation`
<a name="automation-aws-enable-ctrail-log-validation"></a>

 **Description** 

 `AWSConfigRemediation-EnableCloudTrailLogFileValidation` Runbook 會為您的 AWS CloudTrail 追蹤啟用日誌檔案驗證。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCloudTrailLogFileValidation) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ TrailName

  類型：字串

  描述：（必要） 您要啟用日誌驗證之追蹤的名稱或 Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `cloudtrail:GetTrail` 
+  `cloudtrail:UpdateTrail` 

 **文件步驟** 
+  `aws:executeAwsApi` - 為您在 AWS CloudTrail `TrailName` 參數中指定的追蹤啟用日誌驗證。
+  `aws:assertAwsResourceProperty` - 確認您的追蹤已啟用日誌驗證。

# `AWS-EnableCloudTrailLogFileValidation`
<a name="enable-cloudtrail-log-validation"></a>

**Description**

`AWS-EnableCloudTrailLogFileValidation` Runbook 會為您指定的 AWS CloudTrail 線索啟用日誌檔案驗證。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableCloudTrailLogFileValidation)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ TrailNames

  類型：StringList

  描述：（必要） 您想要啟用日誌驗證的 CloudTrail 追蹤名稱的逗號分隔清單。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudtrail:GetTrail`
+ `cloudtrail:UpdateTrail`

**文件步驟**
+ `aws:executeScript` - 為您在 `TrailNames` 參數中指定的 AWS CloudTrail 線索啟用日誌驗證。

# `AWS-QueryCloudTrailLogs`
<a name="aws-querycloudtraillogs"></a>

 **Description** 

 `AWS-QueryCloudTrailLogs` Runbook 會從您選擇的 Amazon Simple Storage Service (Amazon S3) 儲存貯體建立 Amazon Athena 資料表，其中包含 AWS CloudTrail (CloudTrail) 日誌。Amazon S3 建立資料表後，自動化會執行您指定的 SQL 查詢，然後刪除資料表。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-QueryCloudTrailLogs) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ Query

  類型：字串

  描述：（必要） 您要執行的 SQL 查詢。
+ SourceBucketPath

  類型：字串

  描述：（必要） Amazon S3 儲存貯體的名稱，其中包含您要查詢的 CloudTrail 日誌檔案。
+ TableName

  類型：字串

  描述：（選用） 自動化建立的 Athena 資料表名稱。

  預設：Cloudtrail\$1logs

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `athena:GetQueryResults` 
+  `athena:GetQueryExecution` 
+  `athena:StartQueryExecution` 
+  `glue:CreateTable` 
+  `glue:DeleteTable` 
+  `glue:GetDatabase` 
+  `glue:GetPartitions` 
+  `glue:GetTable` 
+  `s3:AbortMultipartUpload` 
+  `s3:CreateBucket` 
+  `s3:GetBucketLocation` 
+  `s3:GetObject` 
+  `s3:ListBucket` 
+  `s3:ListBucketMultipartUploads` 
+  `s3:ListMultipartUploadParts` 
+  `s3:PutObject` 

 **文件步驟** 
+  `aws:executeAwsApi` - 建立 Athena 資料表。
+  `aws:executeAwsApi` - 執行您在 `Query` 參數中指定的查詢字串。
+  `aws:executeScript` - 輪詢並等待查詢完成。
+  `aws:executeAwsApi` - 取得查詢的結果。
+  `aws:executeAwsApi` - 刪除自動化建立的資料表。

# CloudWatch
<a name="automation-ref-cw"></a>

 AWS Systems Manager 自動化為 Amazon CloudWatch 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-ConfigureCloudWatchOnEC2Instance`](automation-aws-configurecloudwatchonec2instance.md)
+ [`AWS-EnableCWAlarm`](enable-cw-alarm.md)
+ [`AWSSupport-TroubleshootCloudWatchAgent`](automation-aws-troubleshootcloudwatchagent.md)
+ [`AWSSupport-TroubleshootCloudWatchAlarm`](automation-awssupport-troubleshoot-cloudwatchalarm.md)

# `AWS-ConfigureCloudWatchOnEC2Instance`
<a name="automation-aws-configurecloudwatchonec2instance"></a>

 **Description** 

啟用或停用受管執行個體上的 Amazon CloudWatch 詳細監控。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ConfigureCloudWatchOnEC2Instance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：（必要） 您要在其中啟用 CloudWatch 監控的 Amazon EC2 執行個體 ID。
+ 屬性

  類型：字串

  描述：(選用) 不支援此參數。在此列出回溯相容性的此參數。
+ status

  有效值：已啟用 \$1 已停用

  描述：（選用） 指定是否啟用或停用 CloudWatch。

  預設：Enabled

 **文件步驟** 

configureCloudWatch - 在具有指定狀態的 Amazon EC2 執行個體上設定 CloudWatch。

 **輸出** 

此自動化沒有輸出。

# `AWS-EnableCWAlarm`
<a name="enable-cw-alarm"></a>

**Description**

`AWS-EnableCWAlarm` Runbook 會為 中尚無 AWS 資源 AWS 帳戶 的資源建立 Amazon CloudWatch (CloudWatch) 警示。系統會為下列 AWS 資源建立 CloudWatch 警示：
+ Amazon Elastic Compute Cloud (Amazon EC2) 執行個體
+ Amazon Elastic Block Store (Amazon EBS) 磁碟區
+ Amazon Simple Storage Service (Amazon S3) 儲存貯體
+ Amazon Relational Database Service (Amazon RDS) 叢集

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableCWAlarm)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ ComparisonOperator

  類型：字串

  有效值：GreaterThanOrEqualToThreshold \$1 GreaterThanThreshold \$1 GreaterThanUpperThreshold \$1 LessThanLowerOrGreaterThanUpperThreshol \$1 LessThanLowerThreshold \$1 LessThanOrEqualToThreshold \$1 LessThanThreshold

  描述：（必要） 比較指定的統計資料和閾值時要使用的算術操作。
+ MetricName

  類型：字串

  描述：（必要） 與警示相關聯的指標名稱。
+ 期間

  類型：整數

  有效值：10 \$1 30 \$1 60 \$1 60 的倍數

  描述：（必要） 套用統計資料的期間，以秒為單位。
+ ResourceARNs

  類型：StringList

  描述：（必要） 以逗號分隔的資源 ARNs 清單，以建立 的 CloudWatch 警示
+ 統計數字

  類型：字串

  有效值：平均值 \$1 最大值 \$1 最小值 \$1 SampleCount \$1 總和

  描述：（必要） 與警示相關聯的指標統計資料。
+ Threshold

  類型：整數

  描述：（必要） 要與指定統計資料比較的值。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudwatch:PutMetricAlarm`

**文件步驟**
+ `aws:executeScript` - 根據您在參數 中指定之資源的 Runbook `ResourceARNs` 參數中指定的值，建立 CloudWatch 警示。

**輸出**

EnableCWAlarm.FailedResources:未建立 CloudWatch 警示的資源 ARNs 映射清單，以及失敗的原因。

EnableCWAlarm.SuccessfulResources:已成功建立 CloudWatch 警示的資源 ARNs 清單。

# `AWSSupport-TroubleshootCloudWatchAgent`
<a name="automation-aws-troubleshootcloudwatchagent"></a>

 **Description** 

**AWSSupport-TroubleshootCloudWatchAgent** Runbook 會自動對 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的 Amazon CloudWatch Agent 進行故障診斷。Amazon EC2 Runbook 會透過一系列基本和 （選用） 延伸檢查來執行此故障診斷。

基本檢查包括下列項目：
+ 檢查 AWS Identity and Access Management (IAM) 執行個體描述檔
+ 確認必要的 Amazon CloudWatch Agent IAM 許可是否已連接到 Amazon EC2 執行個體

只有在提供的 Amazon EC2 執行個體 ID 是 Systems Manager 受管執行個體時，才會執行延伸檢查。這些延伸檢查包括下列項目：
+ 檢查執行個體上 Amazon CloudWatch Agent 的狀態
+ 分析 Amazon CloudWatch Agent 的日誌，了解常見問題和相關的故障診斷步驟
+ 壓縮 Amazon EC2 執行個體上的相關日誌和組態檔案，並選擇性地將其上傳至您選擇的 Amazon Simple Storage Service (Amazon S3) 儲存貯體
+ 執行執行個體與所需端點之間的連線檢查

**重要**  
當 `RunVpcReachabilityAnalyzer` 參數設為 時`true`，此 Runbook 會判斷是否需要呼叫子 Runbook `AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`。子 Runbook 使用具有相關聯成本的 VPC Reachability Analyzer。如需定價的詳細資訊，請參閱 [Amazon VPC 定價](https://aws.amazon.com/vpc/pricing/)文件。

**重要**  
此 Runbook 只會檢查您的 IAM 執行個體描述檔角色是否有必要的許可。如果您改為依賴`.aws/credentials`檔案中定義的登入資料，則`verifyIamPermissions`步驟的結果可能不準確。

 **如何運作？** 

Runbook 會執行下列步驟：
+ **getInstanceProfile**：驗證提供的 Amazon EC2 執行個體是否已連接 IAM 執行個體描述檔。
+ **verifyIamPermissions**：檢查與執行個體相關聯的執行個體描述檔，以判斷是否套用必要的 IAM 許可。
+ **getInstanceInformation**：檢查執行個體是否具有作用中的 Systems Manager 代理程式，並擷取執行個體的作業系統類型。
+ **getAgentStatus**：檢查執行個體上 Amazon CloudWatch Agent 的狀態 （延伸檢查）。
+ **analyzeLogs/analyzeLogsWindows**：根據作業系統類型分析和輸出 Amazon CloudWatch Agent 日誌的問題清單。
+ **collectLogs/collectLogsWindows**：根據作業系統類型封裝和輸出相關的 Amazon CloudWatch Agent 故障診斷檔案。
+ **checkEndpointReachability/checkEndpointReachabilityWindows**：根據作業系統類型檢查執行個體是否可以到達所需的端點。
+ **analyzeAwsEndpointReachabilityFromEC2**：呼叫子自動化 Runbook 來檢查所選執行個體對所需端點的連線能力 （如果啟用）。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootCloudWatchAgent) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ ec2:DescribeInstances
+ iam:GetInstanceProfile
+ iam:GetRole
+ iam:ListAttachedRolePolicies
+ iam:ListRolePolicies
+ iam:GetRolePolicy
+ iam:GetPolicy
+ iam:GetPolicyVersion
+ iam:SimulatePrincipalPolicy
+ ssm:DescribeInstanceInformation
+ ssm:SendCommand
+ ssm:GetCommandInvocation
+ ssm:DescribeInstanceAssociationsStatus
+ ssm:StartAutomationExecution

範例政策：

```
{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "iam:GetInstanceProfile",
                "iam:GetRole",
                "iam:ListAttachedRolePolicies",
                "iam:ListRolePolicies",
                "iam:GetRolePolicy",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:SimulatePrincipalPolicy",
                "ssm:DescribeInstanceInformation",
                "ssm:SendCommand",
                "ssm:GetCommandInvocation",
                "ssm:DescribeInstanceAssociationsStatus",
                "ssm:StartAutomationExecution"
            ],
            "Resource": "*"
            }
        ]
        }
```

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAgent/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAgent/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 IAM 角色 ARN。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **InstanceId （必要）：**
     + 描述：（必要） 您要對 Amazon CloudWatch Agent 進行故障診斷的 Amazon EC2 執行個體 ID。 Amazon CloudWatch 
     + 類型：`AWS::EC2::Instance::Id`
     + 允許模式： `^i-[0-9a-f]{8,17}$`
   + **S3UploadBucket （選用）：**
     + 描述：（選用） 要上傳所收集 Amazon CloudWatch Agent 日誌的 Amazon S3 儲存貯體名稱。 Amazon CloudWatch Amazon EC2 執行個體描述檔必須具有正確的許可，才能將檔案上傳至此儲存貯體。這也需要目標 Amazon EC2 執行個體成為 Systems Manager 受管執行個體。
     + 類型：`AWS::S3::Bucket::Name`
     + 允許模式： `^$|^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$`
     + 預設：`""`
   + **S3BucketOwnerAccountId （選用）：**
     + 描述：（選用） 擁有您要上傳 Amazon CloudWatch Agent 日誌之 Amazon S3 儲存貯體的 AWS 帳號。 Amazon CloudWatch 如果您不修改此參數， Runbook 會使用自動化執行所在使用者或角色 AWS 的帳戶 ID。
     + 類型：`String`
     + 允許模式： `^\\{\\{ global:ACCOUNT_ID \\}\\}$|^[0-9]{12}$`
     + 預設：`{{ global:ACCOUNT_ID }}`
   + **CheckEC2Endpoint （選用）：**
     + 描述：（選用） 指定您的代理程式組態`true`是否使用 選項`append_dimensions`，將 Amazon EC2 指標維度附加至代理程式收集的指標。`append_dimensions` 使用 時，Amazon CloudWatch Agent 需要連線至 Amazon EC2 API 端點，因此將透過延伸檢查執行額外的連線測試。
     + 類型：`String`
     + 允許的值： `[true, false]`
     + 預設：`false`
   + **RunVpcReachabilityAnalyzer （選用）：**
     + 描述：（選用） 如果網路問題是由延伸檢查決定，或指定的執行個體 ID 不是受管執行個體，請指定 `true`來執行`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`子自動化。
     + 類型：`Boolean`
     + 預設：`false`
   + **RetainVpcReachabilityAnalysis （選用）：**
     + 描述：（選用） 只有在 `RunVpcReachabilityAnalyzer`為 時才相關`true`。指定 `true`以保留 VPC Reachability Analyzer 建立的網路洞見路徑和相關分析。根據預設，這些資源會在成功分析後刪除。
     + 類型：`Boolean`
     + 預設：`false`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **getInstanceProfile**：

     驗證提供的 Amazon EC2 執行個體是否已連接 IAM 執行個體描述檔。
   + **branchOnInstanceProfileStatus**：

     分支自動化，以檢查執行個體描述檔是否連接到執行個體的必要執行個體描述檔許可。
   + **verifyIamPermissions**：

     檢查與執行個體相關聯的執行個體描述檔，以判斷是否套用必要的 IAM 許可。
   + **getInstanceInformation**：

     檢查執行個體是否有作用中的 Systems Manager 代理程式，並擷取執行個體的作業系統類型。
   + **branchOnManagedInstance**：

     分支自動化，以在執行個體受管時執行延伸檢查。
   + **getAgentStatus**：

     檢查執行個體上 Amazon CloudWatch Agent 的狀態。
   + **branchOnInstanceOsType**：

     分支自動化以根據作業系統執行特定的日誌收集/分析命令。
   + **analyzeLogs/analyzeLogsWindows**：

     根據作業系統類型分析和輸出 Amazon CloudWatch Agent 日誌的問題清單。
   + **collectLogs/collectLogsWindows**：

     根據作業系統類型封裝和輸出相關的 Amazon CloudWatch Agent 故障診斷檔案。
   + **checkEndpointReachability/checkEndpointReachabilityWindows**：

     檢查執行個體是否可以根據作業系統類型到達所需的端點。
   + **branchOnRunVpcReachabilityAnalyzer**：

     如果已啟用並偵測到網路問題， 會分支自動化以執行 VPC 連線能力分析。
   + **generateEndpoints**：

     產生端點以從延伸檢查失敗和 的值進行檢查`CheckEC2Endpoint`。
   + **analyzeAwsEndpointReachabilityFromEC2**：

     呼叫自動化 Runbook，`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`以檢查所選執行個體對所需端點的連線能力。
   + **outputFindings**：

     輸出自動化執行步驟的結果。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAgent/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-TroubleshootCloudWatchAlarm`
<a name="automation-awssupport-troubleshoot-cloudwatchalarm"></a>

 **Description** 

 `AWSSupport-TroubleshootCloudWatchAlarm` Runbook 有助於識別和疑難排解設定錯誤或有問題的 Amazon CloudWatch (CloudWatch) 警示的問題。它利用 AWS APIs 和已知警示評估邏輯來偵測受監控指標中的延遲或遺失資料點，這可能會導致遺漏或延遲警示動作。此 Runbook 提供結構化方法來調查和解決 Amazon CloudWatch (CloudWatch) 警示相關問題。

 **如何運作？** 

 Runbook 會`AWSSupport-TroubleshootCloudWatchAlarm`執行下列步驟：
+ 驗證 Amazon CloudWatch (CloudWatch) 警示詳細資訊和 `AlarmTriggerTimestamp` 參數的值，以檢查是否在 2，592，000 秒 (30 天） 內。
+ 檢查警示是以指標或指標數學為基礎，還是異常偵測器警示。
+ 檢查警示是否處於資料不足的狀態。
+ 檢查 （警示） 中使用的 metric 是否與 `ListMetrics`值相符。
+ 驗證指標是否在指定的時間戳記遺失資料點 (s)。
+ 取得指定時間戳記的最新歷史記錄。
+ 檢查 （警示） 是否因 指標延遲或遺漏而未觸發。
+ 檢查 （警示） 已啟用的動作是否已交付。
+ 產生結合所有診斷結果的故障診斷報告。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootCloudWatchAlarm) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudwatch:DescribeAlarms`
+ `cloudwatch:DescribeAlarmHistory`
+ `cloudwatch:DescribeAnomalyDetectors`
+ `cloudwatch:GetMetricData`
+ `cloudwatch:GetMetricStatistics`
+ `cloudwatch:ListMetrics`

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarms",
                "cloudwatch:DescribeAlarmHistory",
                "cloudwatch:DescribeAnomalyDetectors",
                "cloudwatch:GetMetricData",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAlarm/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAlarm/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 類型：`String`
     + 描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **CloudWatchMetricAlarmName （必要）：**
     + 類型：`String`
     + 描述：（必要） 要故障診斷的 Amazon CloudWatch (CloudWatch) 指標警示名稱。
     + 允許模式： `^[a-zA-Z0-9.:;,\\-_&() ]{1,255}$`
   + **AlarmTriggerTimestamp （必要）：**
     + 類型：`String`
     + 描述：（必要） 發生警示問題的 UTC 時間戳記。此資訊對於疑難排解問題和了解問題發生的內容至關重要。時間戳記值應為從今天起算過去 30 天內的時間，格式為 `YYYY-MM-DDTHH:mm:ssZ`。範例：`2024-10-29T09:04:00Z`
     + 允許模式： `^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})Z$`

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **`VerifyRunbookInputs`**

     驗證 Amazon CloudWatch (CloudWatch) 警示詳細資訊和 `AlarmTriggerTimestamp` 參數的值，以檢查是否在 2，592，000 秒 (30 天） 內。
   + **`UpdateSSMDocumentInputChecksVariable`**

     `SSMDocumentInputChecks` 使用`VerifyRunbookInputs`步驟`SSMDocumentInputChecks`中的值更新變數。
   + **`BranchOnAlarmIsVerified`**

     Runbook 輸入驗證`AlarmTriggerTimestamp`和 上的分支`CloudWatchAlarmName`。
   + **`CheckMetricAlarmType`**

     檢查警示是以指標或指標數學為基礎，還是異常偵測器警示。
   + **`CheckAlarmInInsufficientDataState`**

     檢查警示是否處於資料不足的狀態。
   + **`UpdateInsufficientDataChecksVariable`**

     `InsufficientDataChecks` 使用`CheckAlarmInInsufficientDataState`步驟`InsufficientDataChecks`中的值更新變數。
   + **`BranchOnAlarmHasInsufficientData`**

     `CheckAlarmInInsufficientDataState` 步驟中`AlarmHasInsufficientData`值的分支，預設步驟為 `CheckMetricMismatch`。
   + **`CheckMetricMismatch`**

     檢查 （警示） 中使用的 metric 是否與 `ListMetrics`值相符。
   + **`UpdateMetricMismatchChecksVariable`**

     `MetricMismatchChecks` 使用`CheckMetricMismatch`步驟`MetricMismatchChecks`中的值更新變數。
   + **`BranchOnMetricsMatched`**

     `CheckMetricMismatch` 步驟中`MetricsMatched`值的分支，預設步驟為 `CheckMissingDatapoint`。
   + **`CheckMissingDatapoint`**

     驗證指標是否在指定的時間戳記遺失資料點 (s)。
   + **`UpdateMetricMissingDatapointsChecksVariable`**

     `MetricMissingDatapointsChecks` 使用`CheckMissingDatapoint`步驟`MetricMissingDatapointsChecks`中的值更新變數。
   + **`BranchOnMetricMissingDatapoint`**

     `CheckMissingDatapoint` 步驟`MetricMissingDatapoint`的值分支，預設步驟為 `GetAlarmHistoryDetails`。
   + **`GetAlarmHistoryDetails`**

     取得指定時間戳記的最新歷史記錄。
   + **`UpdateAlarmHistoryChecksVariable`**

     `AlarmHistoryChecks` 使用`GetAlarmHistoryDetails`步驟`AlarmHistoryChecks`中的值更新變數。
   + **`BranchOnAlarmHistoryFound`**

     `GetAlarmHistoryDetails` 步驟中`AlarmHistoryFound`值的分支，預設步驟為 `CheckDelayedMetric`。
   + **`CheckDelayedMetric`**

     檢查 （警示） 是否因 指標延遲或遺漏而未觸發。
   + **`UpdateDelayedMetricChecksVariable`**

     `DelayedMetricChecks` 使用`CheckDelayedMetric`步驟`DelayedMetricChecks`中的值更新變數。
   + **`BranchOnMetricDelayedAndDatapointsMeetThreshold`**

     `MetricDelayed` 和 `CheckDelayedMetric` 步驟`DatapointsMeetThreshold`的值上的分支，預設步驟為 `GenerateReport`。
   + **`CheckActionDelivered`**

     檢查 （警示） 已啟用的動作是否已交付。
   + **`UpdateActionDeliveredChecksVariable`**

     `ActionDeliveredChecks` 使用`CheckActionDelivered`步驟`ActionDeliveredChecks`的輸出更新變數。
   + **`GenerateReport`**

     編譯先前步驟的輸出並輸出報告。

1. 執行完成後，請檢閱輸出區段以取得執行的詳細結果：
   + **GenerateReport.Report**

     提供的 Amazon CloudWatch (CloudWatch) 指標警示的報告。

   ```
                   ------------------------------------------------------------------------------------------
                   |                     AWS CloudWatch Alarm Troubleshooting Results                       |
                   ------------------------------------------------------------------------------------------
                   |     Alarm Name                        -               Demo-Alarm                       |
                   |     Timestamp                         -               2025-03-04T06:31:00Z             |
                   ------------------------------------------------------------------------------------------
                   |     ✅ No Issue(s) Found                                                               |
                   ------------------------------------------------------------------------------------------
   
   
   
                   ==========================================================================================
                   1. Validating SSM Document input parameters:
                   ==========================================================================================
                   ✅ [PASSED]: Found a metric alarm with name Demo-Alarm
   
   
                   ==========================================================================================
                   2. Checking alarm's data state:
                   ==========================================================================================
                   ✅ [PASSED]: The alarm is not in INSUFFICIENT_DATA state, alarm's state is: ALARM
   
   
                   ==========================================================================================
                   3. Checking if the alarm experienced metric mismatches:
                   ==========================================================================================
                   ✅ [PASSED]: Metric matches with the configured metric for Alarm.
   
   
                   ==========================================================================================
                   4. Checking if the alarm's metric(s) experienced missing datapoint(s):
                   ==========================================================================================
                   ✅ [PASSED]: Metric has datapoints
   
   
                   ==========================================================================================
                   5. Retrieving alarm's history for timestamp 2025-03-04T06:31:00Z:
                   ==========================================================================================
                   ✅ [PASSED]: Found most recent alarm history item for the provided timestamp: '2025-03-04T06:31:00Z'
   
   
                   ==========================================================================================
                   6. Checking if the alarm experienced metric delays or the alarm's datapoint(s) did not meet the configured threshold:
                   ==========================================================================================
                   ✅ [PASSED]: CloudWatch alarm did not experience any delayed metric
   
   
                   ==========================================================================================
                   7. Checking if the alarm has actions enabled and if action(s) were delivered:
                   ==========================================================================================
                   ✅ [PASSED]: Successfully executed action arn:aws:sns:us-east-1:12345678910:Demo_Alarms_Topic
   
   
                   ------------------------------------------------------------------------------------------
   
                   ✅ All the checks have passed for CloudWatch alarm, Demo-Alarm, the alarm's configuration is correct.
   ```

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAlarm/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/)

# Amazon DocumentDB
<a name="automation-ref-docdb"></a>

AWS Systems Manager 自動化為 Amazon DocumentDB 提供預先定義的 Runbook （與 MongoDB 相容）。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-EnableDocDbClusterBackupRetentionPeriod`](aws-enabledocdbclusterbackupretentionperiod.md)

# `AWS-EnableDocDbClusterBackupRetentionPeriod`
<a name="aws-enabledocdbclusterbackupretentionperiod"></a>

 **Description** 

 `AWS-EnableDocDbClusterBackupRetentionPeriod` Runbook 會為您指定的 Amazon DocumentDB 叢集啟用備份保留期間。此功能會設定自動備份保留的總天數。若要修改叢集，叢集必須處於可用狀態，引擎類型為 `docdb`。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableDocDbClusterBackupRetentionPeriod) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ DBClusterResourceId

  類型：字串

  描述：（必要） 您要為其啟用備份保留期的 Amazon DocumentDB 叢集的資源 ID。
+ BackupRetentionPeriod

  類型：整數

  描述：（必要） 保留自動備份的天數。必須是 7-35 天的值。
+ PreferredBackupWindow

  類型：字串

  描述：（選用） 國際標準時間協同 (UTC) 的每日時間範圍，格式為 hh24：mm-hh24：mm，例如 07：14-07：44。值必須至少為 30 分鐘，且不能與偏好的維護時段衝突。
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `docdb:DescribeDBClusters`
+ `docdb:ModifyDBCluster`
+ `rds:DescribeDBClusters`
+ `rds:ModifyDBCluster`

 **文件步驟** 
+ GetDocDbClusterIdentifier (`aws:executeAwsApi`) - 使用提供的資源 ID 傳回 Amazon DocumentDB 叢集識別符。
+ VerifyDocDbEngine (`aws:assertAwsResourceProperty`) - 驗證 Amazon DocumentDB 引擎類型`docdb`是為了防止意外變更其他 Amazon RDS 引擎類型。
+ VerifyDocDbStatus (`aws:waitAwsResourceProperty`) - 驗證 Amazon DocumentDB 叢集狀態為 `available`。
+ ModifyDocDbRetentionPeriod (`aws:executeAwsApi`) - 使用指定 Amazon DocumentDB 叢集提供的值來設定保留期間。
+ VerifyDocDbBackupsEnabled (`aws:executeScript`) - 驗證 Amazon DocumentDB 叢集的保留期間，如果指定，則表示已成功設定偏好的備份時段。

 **輸出** 

ModifyDocDbRetentionPeriod.ModifyDbClusterResponse - `ModifyDBCluster` API 操作的回應。

VerifyDocDbBackupsEnabled.VerifyDbClusterBackupsEnabledResponse - 步驟的輸出，`VerifyDocDbBackupsEnabled`確認成功修改 Amazon DocumentDB 叢集。

# CodeBuild：
<a name="automation-ref-acb"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS CodeBuild。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-ConfigureCodeBuildProjectWithKMSCMK`](automation-aws-codebuild-cmk.md)
+ [`AWSConfigRemediation-DeleteAccessKeysFromCodeBuildProject`](automation-aws-delete-cb-keys.md)

# `AWSConfigRemediation-ConfigureCodeBuildProjectWithKMSCMK`
<a name="automation-aws-codebuild-cmk"></a>

 **Description** 

 `AWSConfigRemediation-ConfigureCodeBuildProjectWithKMSCMK` Runbook 會使用您指定的 AWS Key Management Service () 客戶受管金鑰來加密 AWS CodeBuild (CodeBuild AWS KMS) 專案的建置成品。 AWS Config 必須在您執行此自動化 AWS 區域 的 中啟用 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-ConfigureCodeBuildProjectWithKMSCMK) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ KMSKeyId

  類型：字串

   描述：（必要） 您要用來加密`ProjectId`參數中指定 CodeBuild 專案的客戶受管金鑰的 AWS KMS Amazon Resource Name (ARN)。
+ ProjectId

  類型：字串

  描述：（必要） 您要加密其建置成品的 CodeBuild 專案 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `codebuild:BatchGetProjects` 
+  `codebuild:UpdateProject` 
+  `config:GetResourceConfigHistory` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從專案 ID 收集 CodeBuild 專案名稱。
+  `aws:executeAwsApi` - 啟用您在 `ProjectId` 參數中指定的 CodeBuild 專案加密。
+  `aws:assertAwsResourceProperty` - 驗證 CodeBuild 專案上是否已啟用加密。

 **輸出** 

 UpdateLambdaConfig.UpdateFunctionConfigurationResponse - `UpdateFunctionConfiguration` API 呼叫的回應。

# `AWSConfigRemediation-DeleteAccessKeysFromCodeBuildProject`
<a name="automation-aws-delete-cb-keys"></a>

 **Description** 

 `AWSConfigRemediation-DeleteAccessKeysFromCodeBuildProject` Runbook 會從您指定的 AWS CodeBuild (CodeBuild) 專案中刪除 `AWS_ACCESS_KEY_ID`和 `AWS_SECRET_ACCESS_KEY`環境變數。 AWS Config 必須在您執行此自動化 AWS 區域 的 中啟用 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteAccessKeysFromCodeBuildProject) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ ResourceId

  類型：字串

  描述：（必要） 您想要刪除其存取金鑰環境變數的 CodeBuild 專案 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `codebuild:BatchGetProjects` 
+  `codebuild:UpdateProject` 

 **文件步驟** 
+  `aws:executeScript` - 刪除 `ResourceId` 參數中指定之 CodeBuild 專案的存取金鑰環境變數。

# AWS CodeDeploy
<a name="automation-ref-acd"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS CodeDeploy。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-TroubleshootCodeDeploy`](automation-awssupport-troubleshootcodedeploy.md)

# `AWSSupport-TroubleshootCodeDeploy`
<a name="automation-awssupport-troubleshootcodedeploy"></a>

 **Description** 

 `AWSSupport-TroubleshootCodeDeploy` Runbook 可協助診斷 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上 AWS CodeDeploy 部署失敗的原因。Runbook 會輸出步驟，協助您進一步解決問題或故障診斷。也提供 CodeDeploy 的最佳實務，協助您避免未來的類似問題。

此 Runbook 可協助您解決下列問題：
+ CodeDeploy 代理程式未安裝或未於 Amazon EC2 執行個體上執行
+ Amazon EC2 執行個體未連接 AWS Identity and Access Management (IAM) 執行個體設定檔
+ 連接至 Amazon EC2 執行個體的 IAM 執行個體設定檔沒有必要的 Amazon Simple Storage Service (Amazon S3) 許可
+ Amazon S3 中儲存的修訂遺失，或所使用的 Amazon S3 儲存貯體位於與 Amazon EC2 執行個體 AWS 區域 不同的 中
+ 應用程式規格 (AppSpec) 檔案問題
+ 「檔案已存在於位置」錯誤
+ 失敗的 CodeDeploy 受管生命週期事件關聯
+ 失敗的客戶受管生命週期事件關聯
+ 部署期間的縮減事件

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootCodeDeploy) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ DeploymentId

  類型：字串

  描述：（必要） 失敗的部署 ID。
+ InstanceId

  類型：字串

  描述：（必要） 部署失敗的 Amazon EC2 執行個體 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `codedeploy:GetDeployment` 
+  `codedeploy:GetDeploymentTarget` 
+  `ec2:DescribeInstances` 

 **文件步驟** 
+  `aws:executeAwsApi` - 驗證為 `DeploymentId`和 `InstanceId` 參數提供的值。
+  `aws:executeScript` - 從 Amazon EC2 執行個體收集資訊，例如執行個體的狀態和 IAM 執行個體設定檔詳細資訊。
+  `aws:executeScript` - 檢閱指定的部署，並傳回有關部署失敗原因的分析。

# AWS Config
<a name="automation-ref-cc"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Config。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-SetupConfig`](automation-aws-setup-config.md)

# `AWSSupport-SetupConfig`
<a name="automation-aws-setup-config"></a>

 **Description** 

 `AWSSupport-SetupConfig` Runbook 會建立 AWS Identity and Access Management (IAM) 服務連結角色、由 提供支援的組態記錄器 AWS Config，以及具有 Amazon Simple Storage Service (Amazon S3) 儲存貯體的交付管道，其中 會 AWS Config 傳送組態快照和組態歷史記錄檔案。如果您為 `AggregatorAccountId`和 `AggregatorAccountRegion` 參數指定值，則 Runbook 也會建立資料彙總的授權，以從多個 和多個 收集 AWS Config 組態 AWS 帳戶 和合規資料 AWS 區域。若要進一步了解如何從多個帳戶和區域彙總資料，請參閱《 *AWS Config 開發人員指南*》中的[多帳戶多區域資料彙總](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-SetupConfig) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ AggregatorAccountId

  類型：字串

  描述：（選用） 將新增彙總器的 ID，以彙總來自多個帳戶和 AWS 帳戶 的 AWS Config 組態和合規資料 AWS 區域。彙總器也會使用此帳戶來授權來源帳戶。
+ AggregatorAccountRegion

  類型：字串

  描述：（選用） 將新增彙總器的區域，以彙總來自多個帳戶和區域的 AWS Config 組態和合規資料。
+ IncludeGlobalResourcesRegion

  類型：字串

  預設：us-east-1

  描述：（必要） 若要避免在每個區域中記錄全域資源資料，請指定一個區域來記錄全域資源資料。
+ 分區

  類型：字串

   預設：`aws`

  描述：（必要） 您要從中收集 AWS Config 組態和合規資料的分割區。
+ S3BucketName

  類型：字串

   預設：`aws-config-delivery-channel`

  描述：（選用） 您要套用至為交付管道建立的 Amazon S3 儲存貯體的名稱。帳戶 ID 會附加到名稱的結尾。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:DescribeConfigurationRecorders` 
+  `config:DescribeDeliveryChannels` 
+  `config:PutAggregationAuthorization` 
+  `config:PutConfigurationRecorder` 
+  `config:PutDeliveryChannel` 
+  `config:StartConfigurationRecorder` 
+  `iam:CreateServiceLinkedRole` 
+  `iam:PassRole` 
+  `s3:CreateBucket` 
+  `s3:ListAllMyBuckets` 
+  `s3:PutBucketPolicy` 

 **文件步驟** 
+  `aws:executeScript` - AWS Config 如果服務連結的 IAM 角色不存在，請為 建立該角色。
+  `aws:executeScript` - 如果組態記錄器不存在，則建立組態記錄器。
+  `aws:executeScript` - 建立 Amazon S3 儲存貯體，以便在交付管道尚未存在時使用。
+  `aws:executeScript` - 使用 Runbook 建立的資源建立交付管道。
+  `aws:executeAwsApi` - 啟動組態記錄器。
+  `aws:executeScript` - 如果您為 `AggregatorAccountId`和 `AggregatorAccountRegion` 參數指定值，則會設定多帳戶和多區域資料彙總的授權。

# Amazon Connect
<a name="automation-ref-con"></a>

 AWS Systems Manager 自動化為 Amazon Connect 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-AssociatePhoneNumbersToConnectContactFlows`](automation-associate-phone-numbers-to-connect-contact-flows.md)
+ [`AWSSupport-CollectAmazonConnectContactFlowLog`](automation-collect-amazon-connect-contact-flow-log.md)

# `AWSSupport-AssociatePhoneNumbersToConnectContactFlows`
<a name="automation-associate-phone-numbers-to-connect-contact-flows"></a>

 **Description** 

 `AWSSupport-AssociatePhoneNumbersToConnectContactFlows` 可協助您將電話號碼與 Amazon Connect 執行個體中的聯絡流程建立關聯。透過在輸入逗號分隔值 (CSV) 檔案中提供電話號碼和聯絡流程的映射， Runbook 會在 14.5 分鐘內將盡可能多的電話號碼與聯絡流程建立關聯。Runbook 會產生所有電話號碼和聯絡流程對的 CSV 檔案，其無法在時間限制內建立關聯，以便您在下次執行時輸入。

 **如何運作？** 

 Runbook `AWSSupport-AssociatePhoneNumbersToConnectContactFlows`可協助您使用存放在 Amazon Connect Simple Storage Service (Amazon S3) 儲存貯體中的映射資料的 CSV 檔案，將電話號碼與 Amazon Connect 執行個體中的聯絡流程建立關聯。輸入 CSV 檔案應符合下列格式，其`PhoneNumber`值為 [E.164 格式。](https://www.itu.int/rec/T-REC-E.164/en)

**輸入 CSV 檔案的範例**

```
PhoneNumber,ContactFlowName
+1800555xxxx,ContactFlowA
+1800555yyyy,ContactFlowB
+1800555zzzz,ContactFlowC
```

自動化 Runbook 也會在 `DestinationFileBucket`和 中指定的目的地位置建立下列檔案`DestinationFilePath`。
+ **`automation:EXECUTION_ID/ResourceIdList.csv`**：暫時檔案，其中包含 `AssociatePhoneNumberContactFlow` API 所需的 `PhoneNumberId`和 `ContactFlowId`對。
+ **`automation:EXECUTION_ID/ErrorResourceList.csv`**：檔案，其中包含因錯誤而無法處理的電話號碼和聯絡流程對，例如 `ResourceNotFoundException` 的格式`PhoneNumber,ContactFlowName,ErrorMessage`。
+ **`automation:EXECUTION_ID/NonProcessedResourceList.csv`**：包含未處理的電話號碼和聯絡流程對的檔案。Runbook 會嘗試在 14.5 分鐘內處理盡可能多的電話號碼和聯絡流程 (15 分鐘 AWS Lambda 的函數逾時 - 30 秒的緩衝）。如果因為時間限制而無法處理某些電話號碼/聯絡流程，則 Runbook 會將它們包含在 CSV 檔案中，以做為下次執行 Runbook 的輸入。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

```
        {
            "Statement": [
                {
                    "Action": [
                        "s3:GetBucketPublicAccessBlock",
                        "s3:GetBucketPolicyStatus",
                        "s3:GetBucketAcl",
                        "s3:GetObject",
                        "s3:GetObjectAttributes",
                        "s3:PutObject",
                        "s3:PutObjectAcl"
                    ],
                    "Resource": [
                    "arn:aws:s3:::YOUR-BUCKET/*",
                    "arn:aws:s3:::YOUR-BUCKET"
                    ],
                    "Effect": "Allow"
                },
                {
                    "Action": [
                        "cloudformation:CreateStack",
                        "cloudformation:DescribeStacks",
                        "cloudformation:DeleteStack",
                        "iam:CreateRole",
                        "iam:DeleteRole",
                        "iam:DeleteRolePolicy",
                        "iam:GetRole",
                        "iam:PutRolePolicy",
                        "lambda:CreateFunction",
                        "lambda:DeleteFunction",
                        "lambda:GetFunction",
                        "lambda:InvokeFunction",
                        "lambda:TagResource",
                        "connect:AssociatePhoneNumberContactFlow",
                        "logs:CreateLogGroup",
                        "logs:TagResource",
                        "logs:PutRetentionPolicy",
                        "logs:DeleteLogGroup",
                        "s3:GetAccountPublicAccessBlock"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                },
                {
                    "Action": [
                        "connect:DescribeInstance",
                        "connect:ListPhoneNumbers",
                        "connect:ListContactFlows",
                        "ds:DescribeDirectories"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                },
                {
                    "Condition": {
                        "StringLikeIfExists": {
                            "iam:PassedToService": [
                                "ssm.amazonaws.com",
                                "lambda.amazonaws.com"
                            ]
                        }
                    },
                    "Action": [
                        "iam:PassRole"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
```

如果提供 `LambdaRoleArn` 參數，角色需要下列動作，才能成功使用 Runbook。

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Action": [
				"logs:CreateLogGroup"
			],
			"Resource": "arn:aws:logs:us-east-1:111122223333:*",
			"Effect": "Allow"
		},
		{
			"Action": [
				"logs:CreateLogStream",
				"logs:PutLogEvents"
			],
			"Resource": "arn:aws:logs:us-east-1:111122223333:*",
			"Effect": "Allow"
		},
		{
			"Action": [
				"connect:AssociatePhoneNumberContactFlow"
			],
			"Resource": "*",
			"Effect": "Allow"
		},
		{
			"Action": [
				"s3:PutObject",
				"s3:GetObject"
			],
			"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/DESTINATION_FILE_PATH*",
			"Effect": "Allow"
		}
	]
}
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-AssociatePhoneNumbersToConnectContactFlows/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-AssociatePhoneNumbersToConnectContactFlows/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **ConnectInstanceId （必要）**

     Amazon Connect 執行個體的 ID。
   + **SourceFileBucket （必要）**

     存放 CSV 檔案的 Amazon S3 儲存貯體，其中包含電話號碼和聯絡流程對。
   + **SourceFilePath （必要）**

     CSV 檔案的 Amazon S3 物件金鑰，其中包含電話號碼和聯絡流程對。例如 `path/to/input.csv`。
   + **DestinationFileBucket （必要）**

     自動化將放置中繼檔案和結果報告的 Amazon S3 儲存貯體。
   + **DestinationFilePath （選用）**

     存放`DestinationFileBucket`中繼檔案和結果報告的 Amazon S3 物件路徑。例如，如果您指定 `path/to/files/`，檔案會存放在 下`s3://[DestinationFileBucket]/path/to/files/[automation:EXECUTION_ID]/`。
   + **S3BucketOwnerAccount （選用）**

     擁有您要上傳聯絡流程日誌之 Amazon S3 儲存貯體的 AWS 帳號。如果您未指定此參數，則 Runbook 會使用自動化執行所在使用者或角色 AWS 的帳戶 ID。
   + **S3BucketOwnerRoleArn （選用）**

     IAM 角色的 ARN，具有取得 Amazon S3 儲存貯體和帳戶區塊公開存取設定、儲存貯體加密組態、儲存貯體 ACLs、儲存貯體政策狀態，以及將物件上傳至儲存貯體的許可。如果未指定此參數，則 Runbook 會使用 `AutomationAssumeRole`（如果指定） 或啟動此 Runbook 的使用者 （如果`AutomationAssumeRole`未指定）。請參閱 Runbook 說明中的必要許可區段。
   + **LambdaRoleArn （選用）**

     允許 AWS Lambda 函數存取所需 AWS 服務和資源的 IAM 角色 ARN。如果未指定角色，此自動化會在您的帳戶中為 Lambda 建立一個 IAM 角色。

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **CheckConnectInstanceExistance**

     檢查 中提供的 Amazon Connect 執行個體是否存在`ConnectInstanceId`。
   + **CheckS3BucketPublicStatus**

     檢查 中指定的 Amazon S3 儲存貯體是否`SourceFileBucket``DestinationFileBucket`允許匿名或公有讀取或寫入存取許可。
   + **CheckSourceFileExistenceAndSize**

     檢查 中指定的來源 CSV 檔案`SourceFilePath`是否存在，以及檔案大小是否超過 25 MiB 的限制。
   + **GenerateResourceIdMap**

     下載 中指定的來源 CSV 檔案`SourceFilePath`，並識別每個資源`ContactFlowId`的 `PhoneNumberId`和 。完成後，它會將包含 `PhoneNumber`、`ContactFlowName`、 `PhoneNumberId`和 的 CSV 檔案上傳至 中指定的目的地 Amazon S3 `ContactFlowId`儲存貯體`DestinationFileBucket`。如果`PhoneNumberId`無法識別特定號碼的 ，則 CSV 檔案中的 將是空的。
   + **AssociatePhoneNumbersToContactFlows**

     使用 AWS CloudFormation 堆疊在您的 帳戶中建立 AWS Lambda 函數。 AWS Lambda 函數會將每個號碼與 `SourceFileBucket`和 中指定的來源 CSV 檔案中列出的聯絡流程建立關聯，`SourceFilePath`堆疊會 AWS CloudFormation 叫用 函數。 AWS Lambda 函數會在逾時之前 (15 分鐘），盡可能將電話號碼映射到聯絡流程。因錯誤而無法處理的電話號碼和聯絡流程清單會上傳至 `[automation:EXECUTION_ID]/ErrorResourceList.csv`。因為超過單一執行中可處理的最大電話號碼數量而無法處理的電話號碼，會在 中上傳`[automation:EXECUTION_ID]/NonProcessedResourceList.csv`。如果此步驟失敗，則會前往`DescribeCloudFormationErrorFromStackEvents`步驟，以顯示堆疊 AWS CloudFormation 事件失敗的原因。
   + **WaitForPhoneNumberContactFlowAssociationCompletion**

     等待建立映射電話號碼至聯絡流程的 AWS Lambda 函數，且 AWS CloudFormation 堆疊完成其調用。
   + **GenerateReport**

     產生報告，其中包含映射到聯絡流程的電話號碼數量、由於錯誤而無法處理的電話號碼數量，以及由於在單一執行中可以處理的最大電話號碼數量而無法處理的電話號碼數量。如果適用`[automation:EXECUTION_ID]/NonProcessedResourceList.csv`，報告也會顯示 `[automation:EXECUTION_ID]/ErrorResourceList.csv`或 的位置 (Amazon S3 URI 和 Amazon S3 主控台 URL)。
   + **`DeleteCloudFormationStack`**

     刪除 AWS CloudFormation 堆疊，包括用於映射的 Lambda 函數。
   + **`DescribeCloudFormationErrorFromStackEvent`**

     描述`AssociatePhoneNumbersToContactFlows`步驟 AWS CloudFormation 堆疊的錯誤。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：
   + **GenerateReport.OutputPayload**

      電話號碼和聯絡流程關聯的輸出。此報告包含下列資訊：
     + 輸入 CSV 檔案中列出的電話號碼和聯絡流程配對數量
     + 與輸入 CSV 檔案中指定的聯絡流程相關聯的電話號碼數量
     + 由於錯誤而無法與聯絡流程建立關聯的電話號碼數量
     + 由於時間限制，與聯絡流程無關的電話號碼數量
     + CSV 檔案的位置 (Amazon S3 URI 和 Amazon S3 主控台 URL)，其中包含因錯誤而無法關聯的電話號碼和聯絡流程對
     + CSV 檔案的位置 (Amazon S3 URI 和 Amazon S3 主控台 URL)，其中包含因時間限制而未關聯的電話號碼和聯絡流程對
   + **DescribeCloudFormationErrorFromStackEvents.Events**

     如果`AssociatePhoneNumbersToContactFlows`步驟失敗，顯示 AWS CloudFormation 堆疊事件的輸出。

使用少量電話號碼和聯絡流程輸出執行

![\[Report showing 7 phone numbers processed successfully with no errors or time constraints.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/automation-associate-phone-numbers-to-connect-contact-flows_outputs_small.png)


使用大量電話號碼和聯絡流程輸出執行，以及由於錯誤或時間限制而未關聯的電話號碼

![\[Amazon Connect phone number mapping results showing processed and unprocessed contacts.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/automation-associate-phone-numbers-to-connect-contact-flows_outputs_many.png)


 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-AssociatePhoneNumbersToConnectContactFlows/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-CollectAmazonConnectContactFlowLog`
<a name="automation-collect-amazon-connect-contact-flow-log"></a>

 **Description** 

 `AWSSupport-CollectAmazonConnectContactFlowLog` 自動化 Runbook 用於收集特定聯絡人 ID 的 Amazon Connect 聯絡人流程日誌。透過提供 Amazon Connect 執行個體 ID 和聯絡人 ID， Runbook 會從 Amazon CloudWatch 日誌群組搜尋聯絡人的聯絡流程日誌，並將其上傳至請求參數中指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。Runbook 會產生輸出，提供 Amazon S3 主控台 URL 和 AWS CLI 命令供您下載日誌。

 **如何運作？** 

`AWSSupport-CollectAmazonConnectContactFlowLog` 自動化 Runbook 有助於收集存放在所設定 CloudWatch 日誌群組中特定聯絡人 ID 的 Amazon Connect 聯絡流程日誌，並將其上傳至指定的 Amazon S3 儲存貯體。為了協助保護從 Amazon Connect 聯絡流程中收集之日誌的安全性，自動化會評估 Amazon S3 儲存貯體組態，以判斷儲存貯體是否授予公有`read`或`write`存取許可，且由 `S3BucketOwnerAccountId` 參數中指定的 AWS 帳戶所擁有。如果您的 Amazon S3 儲存貯體使用伺服器端加密搭配 AWS Key Management Service 金鑰 (SSE-KMS)，請確定執行此自動化的使用者或 AWS Identity and Access Management (IAM) 角色具有 AWS KMS 金鑰的`kms:GenerateDataKey`許可。如需 Amazon Connect 執行個體產生之日誌的詳細資訊，請參閱[存放在 Amazon CloudWatch 日誌群組中的流程日誌](https://docs.aws.amazon.com/connect/latest/adminguide/contact-flow-logs-stored-in-cloudwatch.html)。

**重要**  
CloudWatch Logs Insights 查詢會根據查詢的資料量產生費用。免費方案客戶僅需針對超出 Service Quotas 的使用量支付費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CollectAmazonConnectContactFlowLog) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

```
        {
            "Statement": [
                {
                    "Action": [
                        "s3:GetBucketPublicAccessBlock",
                        "s3:GetBucketPolicyStatus",
                        "s3:GetBucketAcl",
                        "s3:GetObject",
                        "s3:GetObjectAttributes",
                        "s3:PutObject",
                        "s3:PutObjectAcl"
                    ],
                    "Resource": [
                    "arn:aws:s3:::amzn-s3-demo-bucket/*",
                    "arn:aws:s3:::amzn-s3-demo-bucket"
                    ],
                    "Effect": "Allow"
                },
                {
                    "Action": [
                        "connect:DescribeInstance",
                        "connect:DescribeContact",
                        "ds:DescribeDirectories"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                },
                {
                    "Action": [
                        "logs:StartQuery",
                        "logs:GetQueryResults"

                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
```

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectAmazonConnectContactFlowLog/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectAmazonConnectContactFlowLog/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **ConnectInstanceId （必要）：**

     Amazon Connect 執行個體的 ID。
   + **ContactId （必要）：**

     您要為其收集聯絡流程日誌的聯絡 ID。
   + **S3BucketName （必要）：**

     帳戶中您要上傳聯絡流程日誌的 Amazon S3 儲存貯體名稱。請確定儲存貯體政策不會將不必要的讀取/寫入許可授予不需要存取所收集日誌的各方。
   + **S3ObjectPrefix （選用）：**

     Amazon S3 儲存貯體中已上傳聯絡流程日誌的 Amazon S3 物件路徑。例如，如果您指定 `CollectedLogs`，日誌將上傳為 `s3://your-s3-bucket/CollectedLogs/ContactFlowLog_[ContactId][AWSAccountId].gz`。如果您未指定此參數，則會使用 Systems Manager Automation 執行 ID，例如：`s3://your-s3-bucket/[automation:EXECUTION_ID]/ContactFlowLog[ContactId]_[AWSAccountId].gz`。注意：如果您指定 的值`S3ObjectPrefix`並使用相同的 【ContactId】 執行此自動化，則聯絡人流程日誌將被覆寫。
   + **S3BucketOwnerAccount （選用）：**

     擁有您要上傳聯絡流程日誌之 Amazon S3 儲存貯體的 AWS 帳號。如果您未指定此參數，則 Runbook 會使用自動化執行所在使用者或角色 AWS 的帳戶 ID。
   + **S3BucketOwnerRoleArn （選用）：**

     IAM 角色的 ARN，具有取得 Amazon S3 儲存貯體和帳戶區塊公開存取設定、儲存貯體加密組態、儲存貯體 ACLs、儲存貯體政策狀態，以及將物件上傳至儲存貯體的許可。如果未指定此參數，則 Runbook 會使用 `AutomationAssumeRole`（如果指定） 或啟動此 Runbook 的使用者 （如果`AutomationAssumeRole`未指定）。請參閱 Runbook 說明中的必要許可區段。  
![\[Input parameters form for AWS Systems Manager Automation with fields for roles, IDs, and S3 settings.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/automation-collect-amazon-connect-contact-flow-log_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **CheckConnectInstanceExistance**

     檢查 中提供的 Amazon Connect 執行個體是否為 `ConnectInstanceId` `ACTIVE`。
   + **CheckS3BucketPublicStatus**

     檢查 中指定的 Amazon S3 儲存貯體是否`S3BucketName`允許匿名或公有讀取或寫入存取許可。
   + **GenerateLogSearchTimeRange**

     根據 `InitiationTimestamp` 和 `DescribeContact` API `LastUpdateTimestamp`傳回`StartQuery`的步驟產生 `EndTime` `StartTime`和 。 `StartTime`將是 之前的一小時`InitiationTimestamp`，`EndTime`並將是 之後的一小時`LastUpdateTimestamp`。
   + **StartQuery**

     針對與 `ContactId` 中提供的 Amazon Connect 執行個體相關聯的 CloudWatch Logs 日誌群組中提供的 ，啟動查詢日誌`ConnectInstanceId`。查詢在執行時間 60 分鐘後逾時。如果您的查詢逾時，請減少要搜尋的時間範圍。您可以在 CloudWatch 主控台中檢視目前進行中的查詢，以及您最近的查詢歷史記錄。如需詳細資訊，請參閱[檢視執行中的查詢或查詢歷史記錄](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-History.html)。
   + **WaitForQueryCompletion**

     等待提供的 `ContactId`完成 CloudWatch Logs 查詢日誌。請注意，查詢會在執行時間的 60 分鐘後逾時。如果您的查詢逾時，請減少要搜尋的時間範圍。您可以在 Amazon Connect 主控台中檢視目前進行中的查詢，以及您最近的查詢歷史記錄。如需詳細資訊，請參閱[檢視執行中的查詢或查詢歷史記錄](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-History.html)。
   + **UploadContactFlowLog**

     取得查詢結果，並將聯絡流程日誌上傳至 中指定的 Amazon S3 儲存貯體`S3BucketName`。
   + **GenerateReport**

     傳回上傳聯絡流程日誌的 Amazon S3 主控台 URL，以及可用來下載日誌檔案的範例 AWS CLI 命令。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：
   + **GenerateReport.OutputPayload**

     輸出，告訴您 Runbook 已成功擷取指定聯絡人的聯絡流程日誌。此報告也包含 Amazon S3 主控台 URL 和範例 AWS CLI 命令，讓您可以下載日誌檔案。  
![\[Output showing successful retrieval of Contact Flow log with S3 Console URL and AWS CLI command.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/automation-collect-amazon-connect-contact-flow-log_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectAmazonConnectContactFlowLog/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 Directory Service
<a name="automation-ref-ads"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Directory Service。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-CreateDSManagementInstance`](automation-awssupport-create-ds-management-instance.md)
+ [`AWSSupport-TroubleshootADConnectorConnectivity`](automation-awssupport-troubleshootadconnectorconnectivity.md)
+ [`AWSSupport-TroubleshootDirectoryTrust`](automation-awssupport-troubleshootdirectorytrust.md)

# `AWS-CreateDSManagementInstance`
<a name="automation-awssupport-create-ds-management-instance"></a>

 **Description** 

 `AWS-CreateDSManagementInstance` Runbook 會建立 Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體，供您用來管理 AWS Directory Service 目錄。管理執行個體無法用於管理 AD Connector 目錄。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateDSManagementInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ AmiID

  類型：字串

   預設：`{{ ssm:/aws/service/ami-windows-latest/Windows_Server-2019-English-Full-Base }}`

  描述：（選用） Amazon Machine Image(AMI) 用來啟動執行個體的 ID。根據預設，執行個體將使用最新的 Microsoft Windows Server 2019 Base AMI 啟動。
+ DirectoryId

  類型：字串

  描述：（必要） 目錄的 Directory Service 目錄 ID。
+ IamInstanceProfileName

  類型：字串

  描述：（選用） IAM 執行個體描述檔名稱。根據預設，如果名稱為 AmazonSSMDirectoryServiceInstanceProfileRole 的執行個體描述檔不存在，則會建立名稱為 AmazonSSMDirectoryServiceInstanceProfileRole 的執行個體描述檔。

  預設：AmazonSSMDirectoryServiceInstanceProfileRole
+ InstanceType

  類型：字串

  預設：t3.medium

  允許的值：
  + t2.nano
  + t2.micro
  + t2.small
  + t2.medium
  + t2.large
  + t2.xlarge
  + t2.2xlarge
  + t3.nano
  + t3.micro
  + t3.small
  + t3.medium
  + t3.large
  + t3.xlarge
  + t3.2xlarge

  描述：（選用） 要啟動的執行個體類型。預設為 t3.medium。
+ KeyPairName

  類型：字串

  描述：（選用） 啟動執行個體時要使用的金鑰對。Windows 不支援 ED25519 金鑰對。根據預設，執行個體在沒有金鑰對的情況下啟動 (NoKeyPair)。

  預設：NoKeyPair
+ RemoteAccessCidr

  類型：字串

  描述：（選用） 建立 RDP （連接埠範圍 3389) 連接埠開放給 CIDR 指定的 IPs 的安全群組 （預設為 0.0.0.0/0)。如果安全群組已存在，則不會修改，規則也不會變更。

  預設：0.0.0.0/0
+ SecurityGroupName

  類型：字串

  描述：（選用） 安全群組名稱。根據預設，如果名稱為 AmazonSSMDirectoryServiceSecurityGroup 的安全群組不存在，則會建立名稱為 AmazonSSMDirectoryServiceSecurityGroup 的安全群組。

  預設：AmazonSSMDirectoryServiceSecurityGroup
+ Tags (標籤)

  類型：MapList

  描述：（選用） 您要套用至自動化所建立資源的鍵/值對。

  預設：` [ {"Key":"Description","Value":"Created by AWS Systems Manager Automation"}, {"Key":"Created By","Value":"AWS Systems Manager Automation"} ]`

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ds:DescribeDirectories` 
+  `ec2:AuthorizeSecurityGroupIngress` 
+  `ec2:CreateSecurityGroup` 
+  `ec2:CreateTags` 
+  `ec2:DeleteSecurityGroup` 
+  `ec2:DescribeInstances` 
+  `ec2:DescribeInstanceStatus` 
+  `ec2:DescribeKeyPairs` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeVpcs` 
+  `ec2:RunInstances` 
+  `ec2:TerminateInstances` 
+  `iam:AddRoleToInstanceProfile` 
+  `iam:AttachRolePolicy` 
+  `iam:CreateInstanceProfile` 
+  `iam:CreateRole` 
+  `iam:DeleteInstanceProfile` 
+  `iam:DeleteRole` 
+  `iam:DetachRolePolicy` 
+  `iam:GetInstanceProfile` 
+  `iam:GetRole` 
+  `iam:ListAttachedRolePolicies` 
+  `iam:ListInstanceProfiles` 
+  `iam:ListInstanceProfilesForRole` 
+  `iam:PassRole` 
+  `iam:RemoveRoleFromInstanceProfile` 
+  `iam:TagInstanceProfile` 
+  `iam:TagRole` 
+  `ssm:CreateDocument` 
+  `ssm:DeleteDocument` 
+  `ssm:DescribeInstanceInformation` 
+  `ssm:GetAutomationExecution` 
+  `ssm:GetParameters` 
+  `ssm:ListCommandInvocations` 
+  `ssm:ListCommands` 
+  `ssm:ListDocuments` 
+  `ssm:SendCommand` 
+  `ssm:StartAutomationExecution` 

 **文件步驟** 
+  `aws:executeAwsApi` - 收集您在 `DirectoryId` 參數中指定之目錄的詳細資訊。
+  `aws:executeAwsApi` - 取得啟動目錄之虛擬私有雲端 (VPC) 的 CIDR 區塊。
+  `aws:executeAwsApi` - 使用您在 `SecurityGroupName` 參數中指定的值建立安全群組。
+  `aws:executeAwsApi` - 為新建立的安全群組建立傳入規則，允許來自您在 `RemoteAccessCidr` 參數中指定 CIDR 的 RDP 流量。
+  `aws:executeAwsApi` - 使用您在 `IamInstanceProfileName` 參數中指定的值建立 IAM 角色和執行個體描述檔。
+  `aws:executeAwsApi` - 根據您在 Runbook 參數中指定的值啟動 Amazon EC2 執行個體。
+  `aws:executeAwsApi` - 建立 AWS Systems Manager 文件，將新啟動的執行個體加入您的目錄。
+  `aws:runCommand` - 將新執行個體加入您的目錄。
+  `aws:runCommand` - 在新執行個體上安裝遠端伺服器管理工具。

# `AWSSupport-TroubleshootADConnectorConnectivity`
<a name="automation-awssupport-troubleshootadconnectorconnectivity"></a>

 **Description** 

 `AWSSupport-TroubleshootADConnectorConnectivity` Runbook 會驗證 AD Connector 的下列先決條件：
+ 檢查與 AD Connector 相關聯的安全群組和網路存取控制清單 (ACL) 規則是否允許所需的流量。
+ 檢查 AWS Security Token Service AWS Systems Manager、 和 Amazon CloudWatch 介面 VPC 端點是否存在與 AD Connector 相同的虛擬私有雲端 (VPC) 中。

當先決條件檢查成功完成時，執行手冊會在與 AD Connector 相同的子網路中啟動兩個 Amazon Elastic Compute Cloud (Amazon EC2) Linux t2.micro 執行個體。然後，使用 `netcat`和 `nslookup`公用程式執行網路連線測試。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootADConnectorConnectivity) 

**重要**  
 使用此 Runbook 可能會針對自動化期間建立 AWS 帳戶 的 Amazon EC2 執行個體、Amazon Elastic Block Store 磁碟區和 Amazon Machine Image(AMI)，向 收取額外費用。如需詳細資訊，請參閱 [Amazon Elastic Compute Cloud 定價](https://aws.amazon.com/ec2/pricing/)和 [Amazon Elastic Block Store 定價](https://aws.amazon.com/ebs/pricing/)。  
 如果`aws:deletestack`步驟失敗，請前往 AWS CloudFormation 主控台手動刪除堆疊。此 Runbook 建立的堆疊名稱開頭為 `AWSSupport-TroubleshootADConnectorConnectivity`。如需有關刪除 CloudFormation 堆疊的資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[刪除堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ DirectoryId

  類型：字串

  描述：（必要） 您要疑難排解連線的 AD Connector 目錄 ID。
+ Ec2InstanceProfile

  類型：字串

  字元上限：128 

  描述：（必要） 您要指派給啟動執行連線測試之執行個體的執行個體設定檔名稱。您指定的執行個體描述檔必須連接`AmazonSSMManagedInstanceCore`政策或同等許可。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:DescribeInstances` 
+  `ec2:DescribeImages` 
+  `ec2:DescribeSubnets` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeNetworkAcls` 
+  `ec2:DescribeVpcEndpoints` 
+  `ec2:CreateTags` 
+  `ec2:RunInstances` 
+  `ec2:StopInstances` 
+  `ec2:TerminateInstances` 
+  `cloudformation:CreateStack` 
+  `cloudformation:DescribeStacks` 
+  `cloudformation:ListStackResources` 
+  `cloudformation:DeleteStack` 
+  `ds:DescribeDirectories` 
+  `ssm:SendCommand` 
+  `ssm:ListCommands` 
+  `ssm:ListCommandInvocations` 
+  `ssm:GetParameters` 
+  `ssm:DescribeInstanceInformation` 
+  `iam:PassRole` 

 **文件步驟** 
+  `aws:assertAwsResourceProperty` - 確認 `DirectoryId` 參數中指定的目錄是 AD Connector。
+  `aws:executeAwsApi` - 收集 AD Connector 的相關資訊。
+  `aws:executeAwsApi` - 收集與 AD Connector 相關聯的安全群組資訊。
+  `aws:executeAwsApi` - 收集與 AD Connector 子網路相關聯的網路 ACL 規則的相關資訊。
+  `aws:executeScript` - 評估 AD Connector 安全群組規則，以確認允許必要的傳出流量。
+  `aws:executeScript` - 評估 AD Connector 網路 ACL 規則，以確認允許必要的傳出和傳入網路流量。
+  `aws:executeScript` - 檢查 AWS Systems Manager AWS Security Token Service 和 Amazon CloudWatch 介面端點是否存在於與 AD Connector 相同的 VPC 中。
+  `aws:executeScript` - 編譯先前步驟中執行之檢查的輸出。
+  `aws:branch` - 會根據先前步驟的輸出來配置自動化。如果安全群組和網路 ACLs 缺少必要的傳出和傳入規則，自動化會停止在此。
+  `aws:createStack` - 建立 CloudFormation 堆疊以啟動 Amazon EC2 執行個體，以執行連線測試。
+  `aws:executeAwsApi` - 收集新啟動的 Amazon EC2 執行個體 IDs。
+  `aws:waitForAwsResourceProperty` - 等待第一個新啟動的 Amazon EC2 執行個體報告由 管理 AWS Systems Manager。
+  `aws:waitForAwsResourceProperty` - 等待第二個新啟動的 Amazon EC2 執行個體報告由 管理 AWS Systems Manager。
+  `aws:runCommand` - 從第一個 Amazon EC2 執行個體對現場部署 DNS 伺服器 IP 地址執行網路連線測試。
+  `aws:runCommand` - 從第二個 Amazon EC2 執行個體對內部部署 DNS 伺服器 IP 地址執行網路連線測試。
+  `aws:changeInstanceState` - 停止用於連線測試的 Amazon EC2 執行個體。
+  `aws:deleteStack` - 刪除 CloudFormation 堆疊。
+  `aws:executeScript` - 輸出在自動化無法刪除 CloudFormation 堆疊時如何手動刪除堆疊的指示。

# `AWSSupport-TroubleshootDirectoryTrust`
<a name="automation-awssupport-troubleshootdirectorytrust"></a>

 **Description** 

 `AWSSupport-TroubleshootDirectoryTrust` Runbook 會診斷 AWS Managed Microsoft AD 和 Microsoft Active Directory 之間的信任建立問題。自動化會確認目錄類型支援信任，然後會檢查關聯的安全群組規則、網路存取控制清單 (網路 ACL)，以及路由表來檢查是否有潛在的連線能力問題。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootDirectoryTrust) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ DirectoryId

  類型：字串

  允許模式：^d-【a-z0-9】\$110\$1\$1

  描述：（必要） AWS Managed Microsoft AD 要故障診斷的 ID。
+ RemoteDomainCidrs

  類型：StringList

  允許模式：^((【0-9】\$1【1-9】【0-9】\$11【0-9】\$12\$1\$12【0-4】【0-9】\$125【0-5】)\$1.)\$13\$1(【0-9】\$1【1-9】【0-9】\$11【0-9】\$12\$1\$12【0-4】【0-9】\$125【0-5】)(\$1/(3【0-2】\$1【1-2】【0-9】\$1【1-9】)\$1

  描述：(必要) 您正在嘗試與其建立信任關係的遠端網域 CIDR。您可以使用逗號分隔值新增多個 CIDR。例如：172.31.48.0/20, 192.168.1.10/32。
+ RemoteDomainName

  類型：字串

  描述：(必要) 您正在與其建立信任關係的遠端網域完整網域名稱。
+ RequiredTrafficACL

  類型：字串

  描述：（必要） 的預設連接埠需求 AWS Managed Microsoft AD。在大多數情況下，您不應修改預設值。

  預設：\$1"inbound":\$1"tcp":[[53,53],[88,88],[135,135],[389,389],[445,445],[464,464],[636,636],[1024,65535]],"udp":[[53,53],[88,88],[123.123],[138,138],[389,389],[445,445],[464,464]],"icmp":[[-1,-1]]\$1,"outbound":\$1"-1":[[0,65535]]\$1\$1
+ RequiredTrafficSG

  類型：字串

  描述：（必要） 的預設連接埠需求 AWS Managed Microsoft AD。在大多數情況下，您不應修改預設值。

  預設：\$1"inbound":\$1"tcp":[[53,53],[88,88],[135,135],[389,389],[445,445],[464,464],[636,636],[1024,65535]],"udp":[[53,53],[88,88],[123.123],[138,138],[389,389],[445,445],[464,464]],"icmp":[[-1,-1]]\$1,"outbound":\$1"-1":[[0,65535]]\$1\$1
+ TrustId

  類型：字串

  描述：(選用) 要針對其進行故障診斷的信任關係 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ds:DescribeConditionalForwarders` 
+  `ds:DescribeDirectories` 
+  `ds:DescribeTrusts` 
+  `ds:ListIpRoutes` 
+  `ec2:DescribeNetworkAcls` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeSubnets` 

 **文件步驟** 
+  `aws:assertAwsResourceProperty` - 確認目錄類型為 AWS Managed Microsoft AD。
+  `aws:executeAwsApi` - 取得 的相關資訊 AWS Managed Microsoft AD。
+  `aws:branch` - 如果為`TrustId`輸入參數提供值，則分支自動化。
+  `aws:executeAwsApi` - 取得信任關係的相關資訊。
+  `aws:executeAwsApi` - 取得 的條件式轉送器 DNS IP `RemoteDomainName` 地址。
+  `aws:executeAwsApi` - 取得已新增至 的 IP 路由相關資訊 AWS Managed Microsoft AD。
+  `aws:executeAwsApi` - 取得 AWS Managed Microsoft AD 子網路CIDRs。
+  `aws:executeAwsApi` - 取得與 相關聯之安全群組的相關資訊 AWS Managed Microsoft AD。
+  `aws:executeAwsApi` - 取得與 相關聯之網路 ACLs 的相關資訊 AWS Managed Microsoft AD。
+  `aws:executeScript` - 確認 `RemoteDomainCidrs`是有效的值。確認 AWS Managed Microsoft AD 具有 的條件式轉送器，而且 AWS Managed Microsoft AD 如果 `RemoteDomainCidrs`是非 RFC `RemoteDomainCidrs` 1918 IP 地址，則必要的 IP 路由已新增至 。
+  `aws:executeScript` - 評估安全群組規則。
+  `aws:executeScript` - 評估網路 ACLs。

 **輸出** 

evalDirectorySecurityGroup.output - 評估與 相關聯的安全群組規則是否 AWS Managed Microsoft AD 允許建立信任的必要流量。

evalAclEntries.output - 評估與 相關聯的網路 ACLs是否 AWS Managed Microsoft AD 允許建立信任的必要流量。

 evaluateRemoteDomainCidr.output ‒ 評估 `RemoteDomainCidrs` 是否為有效值的結果。確認 AWS Managed Microsoft AD 具有 的條件式轉送器，而且 AWS Managed Microsoft AD 如果 `RemoteDomainCidrs`是非 RFC `RemoteDomainCidrs` 1918 IP 地址，則必要的 IP 路由已新增至 。

# AWS AppSync
<a name="automation-ref-apsy"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS AppSync。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-EnableAppSyncGraphQLApiLogging`](aws-enable-appsync-graphql-api-logging.md)

# `AWS-EnableAppSyncGraphQLApiLogging`
<a name="aws-enable-appsync-graphql-api-logging"></a>

 **Description** 

 `AWS-EnableAppSyncGraphQLApiLogging` Runbook 會為您指定的 AWS AppSync GraphQL API 啟用欄位層級記錄和請求層級記錄。即使已啟用記錄功能， Runbook 仍會將變更套用至指定的 GraphQL API。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableAppSyncGraphQLApiLogging) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ ApiId

  類型：字串

  描述：（必要） 您要為其啟用記錄的 API ID。
+ FieldLogLevel

  類型：字串

  有效值：錯誤 \$1 ALL

  描述：（必要） 欄位記錄層級。
+ CloudWatchLogsRoleArn

  類型：字串

  描述：（必要） AWS AppSync 擔任發佈至 Amazon CloudWatch Logs 之服務角色的 ARN。
+ ExcludeVerboseContent

  類型：布林值

  預設：False

  描述：（選用） 將 設定為 `True`以排除標頭、內容和評估的映射範本等資訊，無論記錄層級為何。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `appsync:GetGraphqlApi`
+ `appsync:UpdateGraphqlApi`
+ `iam:PassRole`

 **文件步驟** 
+ aws：executeAwsApi - 收集與主要身分驗證類型相關的身分驗證類型和組態資訊。
+ aws：branch - 根據身分驗證類型的分支。
+ aws：executeAwsApi - 根據 Runbook 輸入參數指定的值更新 AWS AppSync GraphQL API 的記錄組態。

 **輸出** 
+ `EnableApiLoggingWithApiKeyOrAwsIamAuthorization.UpdateGraphQLApiResponse`：來自`UpdateGraphqlApi`呼叫的回應。
+ `EnableApiLoggingWithLambdaAuthorization.UpdateGraphQLApiResponse`：來自`UpdateGraphqlApi`呼叫的回應。
+ `EnableApiLoggingWithCognitoAuth.UpdateGraphQLApiResponse`：來自`UpdateGraphqlApi`呼叫的回應。
+ `EnableApiLoggingWithOpenIdAuthorization.UpdateGraphQLApiResponse`：來自`UpdateGraphqlApi`呼叫的回應。

# Amazon Athena
<a name="automation-ref-ate"></a>

 AWS Systems Manager 自動化為 Amazon Athena 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-EnableAthenaWorkGroupEncryptionAtRest`](aws-enable-athena-workgroup-encryption-at-rest.md)

# `AWS-EnableAthenaWorkGroupEncryptionAtRest`
<a name="aws-enable-athena-workgroup-encryption-at-rest"></a>

 **Description** 

 `AWS-EnableAthenaWorkGroupEncryptionAtRest` Runbook 會為您指定的 Amazon Athena 工作群組啟用靜態加密。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableAthenaWorkGroupEncryptionAtRest) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ WorkGroup

  類型：字串

  描述：（必要） 您要為其啟用靜態加密的工作群組。
+ EncryptionOption

  類型：字串

  有效值：SSE\$1S3 \$1 SSE\$1KMS \$1 CSE\$1KMS 

  描述：（必要） 指定使用的加密選項。您可以選擇使用 Amazon S3 受管金鑰 (SSE\$1S3) 進行伺服器端加密、使用 AWS KMS 受管金鑰進行伺服器端加密 (SSE\$1KMS)，或使用 AWS KMS 受管金鑰進行用戶端加密 (CSE\$1KMS)。
+ KmsKeyId

  類型：字串

  描述：（選用） 如果您使用的是 AWS KMS 加密選項，請指定金鑰 ARN、金鑰 ID 或您要使用的金鑰的金鑰別名。
+ EnableMinimumEncryptionConfiguration

  類型：布林值

  預設：True

  描述：（選用） 針對寫入 Amazon S3 的查詢和計算結果，強制執行工作群組的最低加密層級。啟用時，工作群組使用者只能在提交查詢時，將加密設定為管理員或更高層級設定的最低層級。此設定不適用於啟用 Spark 的工作群組。
+ EnforceWorkGroupConfiguration

  類型：布林值

  預設：True

  描述：（選用） 如果設定為 `True`，工作群組的設定會覆寫用戶端設定。如果設定為 `False`，則會使用用戶端設定。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `athena:GetWorkGroup`
+ `athena:UpdateWorkGroup`

 **文件步驟** 
+ aws：branch - 根據 `EncryptionOption` 參數中指定的加密選項進行分支。
+ aws：executeAwsApi - 此步驟會使用指定的加密設定更新 Athena 工作群組。
+ aws：executeAwsApi - 使用指定的加密設定更新 Athena 工作群組。
+ aws：assertAwsResourceProperty - 驗證工作群組的加密已啟用。

# DynamoDB
<a name="automation-ref-ddb"></a>

 AWS Systems Manager 自動化為 Amazon DynamoDB 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-ChangeDDBRWCapacityMode`](change-read-write-capacity.md)
+ [`AWS-CreateDynamoDBBackup`](automation-aws-createdynamodbbackup.md)
+ [`AWS-DeleteDynamoDbBackup`](automation-aws-deletedynamodbbackup.md)
+ [`AWSConfigRemediation-DeleteDynamoDbTable`](automation-aws-deletedynamodbtable.md)
+ [`AWS-DeleteDynamoDbTableBackups`](automation-aws-deletedynamodbtablebackups.md)
+ [`AWSConfigRemediation-EnableEncryptionOnDynamoDbTable`](automation-aws-enable-ddb-encrypt.md)
+ [`AWSConfigRemediation-EnablePITRForDynamoDbTable`](automation-aws-enable-pitr-ddb.md)
+ [`AWS-EnableDynamoDbAutoscaling`](AWS-EnableDynamoDbAutoscaling.md)
+ [`AWS-RestoreDynamoDBTable`](aws-restore-dynamodb-table.md)

# `AWS-ChangeDDBRWCapacityMode`
<a name="change-read-write-capacity"></a>

**Description**

`AWS-ChangeDDBRWCapacityMode` Runbook 會將一或多個 Amazon DynamoDB (DynamoDB) 資料表的讀取/寫入容量模式變更為隨需模式或佈建模式。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ChangeDDBRWCapacityMode)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ CapacityMode

  類型：字串

  有效值：PROVISIONED \$1 PAY\$1PER\$1REQUEST

  描述：（必要） 所需的讀取/寫入容量模式。從隨需 (pay-per-request切換到佈建容量時，必須設定初始佈建容量值。初始佈建容量值是根據過去 30 分鐘內資料表和全域次要索引的耗用讀取和寫入容量來估計。
+ ReadCapacityUnits

  類型：整數

  預設：0

  描述：（選用） 在 DynamoDB 傳回調節例外狀況之前，每秒耗用的強烈一致讀取數量上限。
+ TableNames

  類型：字串

  描述：（必要） DynamoDB 資料表名稱的逗號分隔清單，以變更 的讀取/寫入容量模式。
+ WriteCapacityUnits

  類型：整數

  預設：0

  描述：（選用） DynamoDB 傳回限流例外狀況之前每秒耗用的寫入數上限。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `dynamodb:DescribeTable`
+ `dynamodb:UpdateTable`

**文件步驟**
+ `aws:executeScript` - 變更 `TableNames` 參數中指定之 DynamoDB 資料表的讀取/寫入容量模式。

**輸出**

ChangeDDBRWCapacityMode.SuccessesTables - 已成功變更容量模式的 DynamoDB 資料表名稱清單

ChangeDDBRWCapacityMode.FailedTables - DynamoDB 資料表名稱的映射清單，其中變更容量模式失敗，以及失敗的原因。

# `AWS-CreateDynamoDBBackup`
<a name="automation-aws-createdynamodbbackup"></a>

 **Description** 

建立 Amazon DynamoDB 資料表的備份。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateDynamoDBBackup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ BackupName

  類型：字串

  描述：(必要) 要建立的備份之名稱。
+ LambdaAssumeRole

  類型：字串

  描述：(選用) 角色的 ARN，允許由自動化建立的 Lambda 代您執行動作。如果未指定，則會建立暫時性角色來執行 Lambda 函數。
+ TableName

  類型：字串

  描述：(必要) DynamoDB 資料表的名稱。

# `AWS-DeleteDynamoDbBackup`
<a name="automation-aws-deletedynamodbbackup"></a>

 **Description** 

刪除 Amazon DynamoDB 資料表的備份。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DeleteDynamoDbBackup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ BackupArn

  類型：字串

  描述：(必要) 要刪除的 DynamoDB 資料表之 ARN。

# `AWSConfigRemediation-DeleteDynamoDbTable`
<a name="automation-aws-deletedynamodbtable"></a>

 **Description** 

 `AWSConfigRemediation-DeleteDynamoDbTable` Runbook 會刪除您指定的 Amazon DynamoDB (DynamoDB) 資料表。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteDynamoDbTable) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ TableName

  類型：字串

  描述：（必要） 您要刪除的 DynamoDB 資料表名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `dynamodb:DeleteTable` 
+  `dynamodb:DescribeTable` 

 **文件步驟** 
+  `aws:executeScript` - 刪除 `TableName` 參數中指定的 DynamoDB 資料表。
+  `aws:executeScript` - 確認已刪除 DynamoDB 資料表。

# `AWS-DeleteDynamoDbTableBackups`
<a name="automation-aws-deletedynamodbtablebackups"></a>

 **Description** 

根據保留天數或計數刪除 DynamoDB 資料表備份。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DeleteDynamoDbTableBackups) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ LambdaAssumeRole

  類型：字串

  描述：(選用) 角色的 ARN，允許由自動化建立的 Lambda 代您執行動作。如果未指定，則會建立暫時性角色來執行 Lambda 函數。
+ RetentionCount

  類型：字串

  預設：10

  描述：(選用) 要為資料表保留的備份數量。如果備份的數量超過指定，則會刪除超過指定數量的最舊備份。只能使用 RetentionCount 或 RetentionDays 其中之一，不能同時使用兩者。
+ RetentionDays

  類型：字串

  描述：(選用) 要為資料表保留備份的天數。比指定天數更舊的備份都會刪除。只能使用 RetentionCount 或 RetentionDays 其中之一，不能同時使用兩者。
+ TableName

  類型：字串

  描述：(必要) DynamoDB 資料表的名稱。

# `AWSConfigRemediation-EnableEncryptionOnDynamoDbTable`
<a name="automation-aws-enable-ddb-encrypt"></a>

 **Description** 

 `AWSConfigRemediation-EnableEncryptionOnDynamoDbTable` Runbook 會使用您為 `KMSKeyId` 參數指定的 AWS Key Management Service () 客戶受管金鑰來加密 Amazon DynamoDB (DynamoDB AWS KMS) 資料表。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableEncryptionOnDynamoDbTable) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ KMSKeyId

  類型：字串

   描述：（必要） 您要用來加密`TableName`參數中指定之 DynamoDB 資料表的客戶受管金鑰 ARN。
+ TableName

  類型：字串

  描述：（必要） 您要加密的 DynamoDB 資料表名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `dynamodb:DescribeTable` 
+  `dynamodb:UpdateTable` 

 **文件步驟** 
+  `aws:executeAwsApi` - 加密您在 `TableName` 參數中指定的 DynamoDB 資料表。
+  `aws:waitForAwsResourceProperty` - 驗證 DynamoDB 資料表的 `Enabled` 屬性`SSESpecification`設定為 `true` 。
+  `aws:assertAwsResourceProperty` - 確認 DynamoDB 資料表已使用 `KMSKeyId` 參數中指定的客戶受管金鑰加密。

# `AWSConfigRemediation-EnablePITRForDynamoDbTable`
<a name="automation-aws-enable-pitr-ddb"></a>

 **Description** 

 `AWSConfigRemediation-EnablePITRForDynamoDbTable` Runbook 會在您指定的 Amazon DynamoDB 資料表上啟用point-in-time復原 (PITR)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnablePITRForDynamoDbTable) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ TableName

  類型：字串

  描述：（必要） 啟用point-in-time復原的 DynamoDB 資料表名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `dynamodb:DescribeContinuousBackups ` 
+  `dynamodb:UpdateContinuousBackups` 

 **文件步驟** 
+  `aws:executeAwsApi` - 在您於 `TableName` 參數中指定的 DynamoDB 資料表上啟用point-in-time復原。
+  `aws:assertAwsResourceProperty` - 確認 DynamoDB 資料表上已啟用point-in-time復原。

# `AWS-EnableDynamoDbAutoscaling`
<a name="AWS-EnableDynamoDbAutoscaling"></a>

 **Description** 

 `AWS-EnableDynamoDbAutoscaling` Runbook 會為您指定的佈建容量 Amazon DynamoDB 資料表啟用 Application Auto Scaling。Application Auto Scaling 可動態調整佈建的輸送量容量，以回應流量模式。如需詳細資訊，請參閱《Amazon [ DynamoDB 開發人員指南》中的使用 DynamoDB 自動擴展自動管理輸送量容量](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html)。 * DynamoDB * 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ TableName

  類型：字串

  描述：（必要） 您要啟用 Application Auto Scaling 的 DynamoDB 資料表名稱。
+ MinReadCapacity

  類型：整數

  描述：（必要） DynamoDB 資料表的佈建輸送量讀取容量單位數目下限。
+ MaxReadCapacity

  類型：整數

  描述：（必要） DynamoDB 資料表的佈建輸送量讀取容量單位數量上限。
+ TargetReadCapacityUtilization

  類型：整數

  描述：（必要） 所需的目標讀取容量使用率。目標使用率是某個時間點的已耗用佈建輸送量百分比。您可以將自動擴展目標使用率值設定為 20% 到 90%。
+ ReadScaleOutCooldown

  類型：整數

  描述：（必要） 等待先前的讀取容量向外擴展活動生效的秒數。
+ ReadScaleInCooldown

  類型：整數

  描述：（必要） 讀取容量縮減活動完成後，另一個縮減活動開始之前的秒數。
+ MinWriteCapacity

  類型：整數

  描述：（必要） DynamoDB 資料表的佈建輸送量寫入單位數目下限。
+ MaxWriteCapacity

  類型：整數

  描述：（必要） DynamoDB 資料表的佈建輸送量寫入單位數量上限。
+ TargetWriteCapacityUtilization

  類型：整數

  描述：（必要） 所需的目標寫入容量使用率。目標使用率是某個時間點的已耗用佈建輸送量百分比。您可以將自動擴展目標使用率值設定為 20% 到 90%。
+ WriteScaleOutCooldown

  類型：整數

  描述：（必要） 等待先前的寫入容量向外擴展活動生效的秒數。
+ WriteScaleInCooldown

  類型：整數

  描述：（必要） 寫入容量縮減活動完成後，另一個縮減活動開始之前的秒數。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `application-autoscaling:DescribeScalableTargets`
+ `application-autoscaling:DescribeScalingPolicies`
+ `application-autoscaling:PutScalingPolicy`
+ `application-autoscaling:RegisterScalableTarget`
+ RegisterAppAutoscalingTargetWrite (`aws:executeAwsApi`) - 在您指定的 DynamoDB 資料表上設定 Application Auto Scaling。
+ RegisterAppAutoscalingTargetWriteDelay (`aws:sleep`) - 休眠以避免 API 調節。
+ PutScalingPolicyWrite (`aws:executeAwsApi`) - 設定 DynamoDB 資料表的目標寫入容量使用率。
+ PutScalingPolicyWriteDelay (`aws:sleep`) - 休眠以避免 API 調節。
+ RegisterAppAutoscalingTargetRead (`aws:executeAwsApi`) - 設定 DynamoDB 資料表的最小和最大讀取容量單位。
+ RegisterAppAutoscalingTargetReadDelay (`aws:sleep`) - 休眠以避免 API 調節。
+ PutScalingPolicyRead (`aws:executeAwsApi`) - 設定 DynamoDB 資料表的目標讀取容量使用率。
+ VerifyDynamoDbAutoscalingEnabled (`aws:executeScript`) - 驗證應用程式Auto Scaling已根據您指定的值為 DynamoDB 資料表啟用。

 **輸出** 
+ RegisterAppAutoscalingTargetWrite.Response
+ PutScalingPolicyWrite.Response
+ RegisterAppAutoscalingTargetRead.Response
+ PutScalingPolicyRead.Response
+ VerifyDynamoDbAutoscalingEnabled.DynamoDbAutoscalingEnabledResponse

# `AWS-RestoreDynamoDBTable`
<a name="aws-restore-dynamodb-table"></a>

 **Description** 

 `AWS-RestoreDynamoDBTable` Runbook 會還原您使用point-in-time復原 (PITR) 指定的 Amazon DynamoDB 資料表。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-RestoreDynamoDBTable) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ EnablePointInTimeRecoverAsNeeded

  類型：布林值

  預設：true

  描述：（選用） 判斷自動化是否視需要開啟point-in-time復原以還原資料表。
+ GlobalSecondaryIndexOverride

  類型：字串

  描述：（選用） 取代新資料表現有次要索引的新全域次要索引。
+ LocalSecondaryIndexOverride

  類型：字串

  描述：（選用） 取代新資料表現有次要索引的新本機次要索引。
+ RestoreDateTime

  類型：字串

  描述：（必要） 您想要在過去 35 天內將資料表還原至 的point-in-time復原。使用以下格式指定日期和時間： `DD/MM/YYYY HH:MM:SS`
+ SourceTableArn

  類型：字串

  描述：（必要） 您要還原之資料表的 ARN。
+ SseSpecificationOverride

  類型：字串

  描述：（選用） 用於新資料表的伺服器端加密設定。
+ TargetTableName

  類型：字串

  描述：（必要） 要還原的資料表名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `dynamodb:BatchWriteItem` 
+  `dynamodb:DeleteItem` 
+  `dynamodb:DescribeTable` 
+  `dynamodb:GetItem` 
+  `dynamodb:PutItem` 
+  `dynamodb:Query` 
+  `dynamodb:RestoreTableToPointInTime` 
+  `dynamodb:Scan` 
+  `dynamodb:UpdateItem` 

 **文件步驟** 
+  `aws:executeScript` - 使用point-in-time復原還原您在 `TargetTableName` 參數中指定的 DynamoDB 資料表。

# AWS Database Migration Service
<a name="automation-ref-dms"></a>

AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Database Migration Service。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json) 。

**Topics**
+ [`AWSSupport-TroubleshootDMSTableErrors`](awssupport-troubleshoot-dms-table-errors.md)
+ [`AWSSupport-TroubleshootDMSEndpointConnection`](automation-awssupport-troubleshootdmsendpointconnection.md)

# `AWSSupport-TroubleshootDMSTableErrors`
<a name="awssupport-troubleshoot-dms-table-errors"></a>

 **Description** 

 AWS Systems Manager **AWSSuport-TroubleshootDMSTableErrors** 自動化 Runbook 可協助您自動化在資料庫遷移任務或無伺服器複寫`Table errors`中找到的 疑難排解程序 AWS Database Migration Service。當資料庫遷移任務或在 AWS DMS 服務中建立的無伺服器複寫無法從來源端點 （來源資料庫） 遷移到目標端點 （目標資料庫） 時，就會發生這些錯誤。此 Runbook 會分析 CloudWatch 日誌的簽章錯誤訊息，特別是專注於傳統資料庫遷移任務的任務日誌，以及無伺服器複寫的無伺服器日誌。它也針對 AWS DMS 遷移`Table error`期間遇到的常見錯誤訊息，提供有針對性的建議和修復步驟。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 擷取所提供 AWS DMS ARN 的相關資訊，可以是資料庫遷移任務或無伺服器複寫。
+ 透過檢查 DescribeReplicationTasks API （適用於資料庫遷移任務） 和 DescribeReplications API （適用於無伺服器複寫） 回應中的`FreshStartDate`值，驗證所提供的 AWS DMS 資源是否已啟動至少一次。如果資源尚未啟動，自動化會引發錯誤。
+ 如果資源已啟動，自動化會使用 `TableStatistics`資訊檢查`TableError`狀態中的資料表。如果找不到錯誤，自動化會在顯示訊息確認在指定的資料庫遷移任務或無伺服器複寫中找不到資料表錯誤後結束工作流程。
+ 如果找到`TableError`狀態為 的資料表，自動化會檢查指定 AWS DMS 資源是否已啟用 CloudWatch 記錄。如果未啟用記錄，自動化會在顯示指出未啟用記錄的訊息後結束工作流程。

  **注意：**CloudWatch 記錄預期會啟用，因為自動化依賴這些日誌來分析和識別`TableError`狀態資料表的問題。
+ 如果啟用記錄，自動化會分析 CloudWatch 日誌，並為每個處於 `TableError` 狀態的資料表產生報告。報告包含常見錯誤訊息的建議，並提供相關的錯誤日誌，以協助識別和解決防止資料表從 AWS DMS 來源端點成功遷移至 AWS DMS 目標端點的問題。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootDMSTableErrors) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DMSArn

  類型：字串

  描述：（必要） 資料庫遷移任務或無伺服器複寫的 ARN 

  允許模式： `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):dms:[a-z0-9-]+:\d{12}:(task|replication-config):[a-zA-Z0-9-]+$`
+ StartTimeRange

  類型：字串

  描述：（選用） 此參數定義指定資料庫遷移任務或無伺服器複寫的 CloudWatch 日誌分析時間範圍的開始。提供時，只會收集和分析從此特定時間之後產生的日誌。請注意，如果 `startDate`和 之間的時間範圍`endDate`太長，工作流程可能會逾時。值應以 ISO 6081 日期時間格式提供。

  允許模式： `^$|^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d{3})Z$`
+ EndTimeRange

  類型：字串

  描述：（選用） 此參數會設定指定資料庫遷移任務或無伺服器複寫之 CloudWatch 日誌分析的時間範圍結束。提供時，只會收集和分析在此特定時間之前產生的日誌。請注意，如果 `startDate`和 之間的時間範圍`endDate`太長，工作流程可能會逾時。值應以 ISO 6081 日期時間格式提供。

  允許模式： `^$|^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d{3})Z$`

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `dms:DescribeReplicationTasks`
+ `dms:DescribeReplications`
+ `dms:DescribeEndpoints`
+ `dms:DescribeReplicationConfigs`
+ `dms:DescribeTableStatistics`
+ `dms:DescribeReplicationTableStatistics`
+ `logs:FilterLogEvents`

 **自動化擔任角色的 IAM 政策範例** 

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

****  

```
            {
                "Version":"2012-10-17",		 	 	 
                "Statement": [
                    {
                        "Sid": "VisualEditor0",
                        "Effect": "Allow",
                        "Action": [
                            "dms:DescribeReplicationConfigs",
                            "dms:DescribeEndpoints",
                            "dms:DescribeReplicationTableStatistics",
                            "dms:DescribeTableStatistics",
                            "logs:FilterLogEvents",
                            "dms:DescribeReplicationTasks",
                            "dms:DescribeReplications"
                        ],
                        "Resource": "*"
                    }
                ]
            }
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSTableErrors/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSTableErrors/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **DMSArn**

     資料庫遷移任務的 ARN 或具有資料表錯誤的無伺服器複寫。
   + **StartTimeRange**

     （選用） ISO 6081 日期時間格式，定義用於分析指定資料庫遷移任務或無伺服器複寫之 CloudWatch 日誌的時間範圍開始。
   + **EndTimeRange**

     （選用） ISO 6081 日期時間格式，定義用於分析指定資料庫遷移任務或無伺服器複寫之 CloudWatch 日誌的時間範圍結束。

1. 從頁面底部選取**執行**按鈕。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **validateDMSInputTypeAndGatherDetails**

     驗證指定的 AWS DMS ARN 輸入，並收集後續步驟中所需的資料庫遷移任務或無伺服器複寫的基本詳細資訊。
   + **branchOnTableErrors**

     根據在上述步驟中找到的資料表錯誤數目，將工作流程分支。如果計數大於 0，則繼續 - `branchOnCWLoggingStatus` 步驟。否則，請繼續 - `outputNoTableErrors` 步驟。
   + **outputNoTableErrors**

     輸出訊息，指出指定的資料庫遷移任務或無伺服器複寫中找不到資料表錯誤。
   + **branchOnCWLoggingStatus**

     根據在上述步驟中找到的 CloudWatch 記錄狀態來配置工作流程。如果啟用，則繼續 - `gatherTableDetails` 步驟。否則，請繼續 - `outputNoCWLoggingEnabled` 步驟。
   + **outputNoCWLoggingEnabled**

     輸出訊息，指出指定的資料庫遷移任務或無伺服器複寫中未啟用 CloudWatch 記錄。
   + **gatherTableDetails**

     收集失敗資料表的`FullLoadEndTime`時間戳記，並計算時間範圍值以分析 CloudWatch 日誌。
   + **analyzeCloudWatchLogs**

     根據簽章錯誤訊息分析 CloudWatch 日誌群組中找到的日誌，並將報告傳回給使用者。

1. 執行完成後，請檢閱輸出區段以取得執行的詳細結果。
   + **找不到資料表錯誤的輸出**

     如果在提供的資料庫遷移任務或無伺服器複寫中找不到資料表錯誤，自動化會顯示指出相同的輸出。
   + **未啟用 CloudWatch 登入的輸出**

     如果在提供的資料庫遷移任務或無伺服器複寫中未啟用 CloudWatch 記錄，自動化會顯示說明相同的輸出，並提供啟用記錄的步驟。
   + **記錄分析報告**

     輸出報告，從提供的資料庫遷移任務或無伺服器複寫中識別`Table error`處於 狀態的資料表、區分錯誤類型、列出遇到的錯誤訊息，以及為每個已識別的資料表提供目標修復步驟和建議。

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSTableErrors/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-TroubleshootDMSEndpointConnection`
<a name="automation-awssupport-troubleshootdmsendpointconnection"></a>

 **Description** 

**AWSSupport-TroubleshootDMSEndpointConnection** Runbook 可協助診斷和疑難排解 AWS Database Migration Service 複寫執行個體和 AWS DMS 端點之間的連線問題。自動化使用 [Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 檢查來測試網路連線，並分析網路組態，以識別可能阻止成功 AWS DMS 遷移的潛在連線問題。

**重要**  
您必須先使用 AWS DMS 主控台或 API 測試 AWS DMS 複寫執行個體與端點之間的連線，再執行此 Runbook。如果您尚未測試連線，請先執行此操作，否則您可能需要重新執行此 Runbook。 AWS DMS 複寫執行個體和端點都必須處於可用狀態，才能進行準確的連線測試。

**重要**  
此 Runbook 會建立和叫用 AWS Lambda 函數，這會產生 Lambda 費用。每個 Reachability Analyzer 分析執行也會產生費用。如需定價詳細資訊，請參閱網路分析索引標籤下的 [Amazon VPC 定價](https://aws.amazon.com/vpc/pricing/)頁面和[AWS Lambda 定價](https://aws.amazon.com/lambda/pricing/)。

 **如何運作？** 

Runbook 會透過下列階段執行 AWS DMS 連線的系統性分析：

**階段 1：資源驗證和先決條件**
+ **端點驗證**：驗證 AWS DMS 端點是否存在、擷取其組態 （伺服器名稱、連接埠、引擎類型），並確認資料庫引擎支援故障診斷。
+ **連線測試狀態**：使用 AWS DMS `DescribeConnections` API 擷取複寫執行個體和端點之間的目前連線測試狀態，包括先前測試嘗試的任何失敗訊息。
+ **複寫執行個體分析**：收集網路組態詳細資訊，包括 Amazon VPC ID、子網路 IDs、安全群組 IDs，並識別複寫執行個體的相關聯彈性網路界面 (ENI)。

**階段 2：DNS 解析和網路路徑探索**
+ **Amazon VPC 型 DNS 解析**：在與複寫執行個體相同的 Amazon VPC 內建立暫時 Lambda 函數，從 Amazon VPC 內容中將端點主機名稱解析為其 IP 地址，以確保準確的私有 DNS 解析。
+ **目標識別**：根據端點是否位於相同的 Amazon VPC （使用 ENI) 或外部 （使用解析的 IP 地址），判斷 Reachability Analyzer 的適當目標。
+ **IPv6 相容性檢查**：驗證已解析的地址是 IPv4，因為 Reachability Analyzer 不支援 IPv6 地址。

**階段 3：全面網路路徑分析**
+ **Reachability Analyzer 執行**：建立從複寫執行個體 ENI 到目標 （端點 ENI 或 IP 地址） 的 Network Insights 路徑，並執行全面的分析，以測試指定連接埠上的 TCP 連線。
+ **多層網路分析**：檢查完整的網路路徑，包括路由表、安全群組、網路 ACLs、網際網路閘道、NAT 閘道、Amazon VPC 對等互連和傳輸閘道，以識別連線障礙。
+ **詳細解釋產生**：對於連線失敗， 會針對封鎖流量的每個網路元件提供特定說明，包括確切的規則編號、CIDR 區塊、連接埠範圍和通訊協定限制。

**階段 4：報告產生和資源清除**
+ **全面報告**：產生詳細的報告，其中包含連線測試摘要、網路路徑分析結果，以及修復指引的特定失敗說明。
+ **資源管理**：自動清除已建立的資源 (Lambda 函數、IAM 角色、Network Insights 路徑），除非 PersistReachabilityAnalyzerResults 參數設定為保留分析結果以供進一步調查。
+ **錯誤處理**：提供各種失敗案例的特定錯誤報告，包括不支援的資料庫引擎、缺少資源、DNS 解析失敗和許可問題。

Runbook 支援對多個資料庫引擎的連線進行故障診斷，包括 Amazon Aurora、Amazon DocumentDB、Amazon DynamoDB、Amazon Neptune、Amazon Redshift、Amazon S3、Azure SQL Database、DB2、MySQL、Oracle、PostgreSQL、SQL Server 等。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootDMSEndpointConnection) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStacks`
+ `cloudformation:DescribeStackEvents`
+ `dms:DescribeEndpoints`
+ `dms:DescribeReplicationInstances`
+ `dms:DescribeConnections`
+ `iam:GetRole`
+ `iam:PassRole`
+ `iam:SimulatePrincipalPolicy`
+ `lambda:CreateFunction`
+ `lambda:DeleteFunction`
+ `lambda:GetFunction`
+ `lambda:InvokeFunction`
+ `lambda:ListTags`
+ `lambda:TagResource`
+ `lambda:UntagResource`
+ `lambda:UpdateFunctionCode`

 **選用的 IAM 許可** 

只有在您未提供`LambdaRoleArn`參數且希望自動化為您建立 Lambda 執行角色`AutomationAssumeRole`時，才需要下列許可：
+ `iam:CreateRole`
+ `iam:DeleteRole`
+ `iam:AttachRolePolicy`
+ `iam:DetachRolePolicy`
+ `iam:TagRole`
+ `iam:UntagRole`

**重要**  
 除了上述動作之外， `AutomationAssumeRole`還應該將 [ AmazonVPCReachabilityAnalyzerFullAccessPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonVPCReachabilityAnalyzerFullAccessPolicy.html) 作為[連接的受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)，以便成功執行 [Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 測試。

範例政策：

```
        {
            "Version": "2012-10-17"		 	 	 ,
            "Statement": [
                {
                    "Sid": "AllowDMSTroubleshootingActions",
                    "Effect": "Allow",
                    "Action": [
                        "dms:DescribeEndpoints",
                        "dms:DescribeReplicationInstances",
                        "dms:DescribeConnections",
                        "lambda:GetFunction",
                        "lambda:ListTags",
                        "lambda:CreateFunction",
                        "lambda:DeleteFunction",
                        "lambda:TagResource",
                        "lambda:UntagResource",
                        "lambda:UpdateFunctionCode",
                        "cloudformation:DescribeStacks",
                        "cloudformation:DescribeStackEvents",
                        "cloudformation:CreateStack",
                        "cloudformation:DeleteStack",
                        "iam:GetRole",
                        "iam:SimulatePrincipalPolicy",
                        "iam:CreateRole",
                        "iam:DeleteRole",
                        "iam:TagRole",
                        "iam:UntagRole"
                    ],
                    "Resource": "*"
                },
                {
                    "Sid": "AllowDMSLambdaInvocation",
                    "Effect": "Allow",
                    "Action": [
                        "lambda:InvokeFunction"
                    ],
                    "Resource": "arn:*:lambda:*:*:function:AWSSupport-TroubleshootDMSEndpointConnection-*"
                },
                {
                    "Sid": "AllowPassRoleToDMSLambda",
                    "Effect": "Allow",
                    "Action": [
                        "iam:PassRole"
                    ],
                    "Resource": "arn:*:iam::*:role/AWSSupport-TroubleshootDMSEndpointConnection-*",
                    "Condition": {
                        "StringLikeIfExists": {
                            "iam:PassedToService": "lambda.amazonaws.com"
                        }
                    }
                },
                {
                    "Sid": "AllowRolePolicyManagement",
                    "Effect": "Allow",
                    "Action": [
                        "iam:AttachRolePolicy",
                        "iam:DetachRolePolicy"
                    ],
                    "Resource": "*",
                    "Condition": {
                        "StringLikeIfExists": {
                            "iam:ResourceTag/AWSSupport-TroubleshootDMSEndpointConnection": "true"
                        }
                    }
                }
            ]
        }
```

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSEndpointConnection/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSEndpointConnection/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 SSM Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，SSM Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **DmsEndpointArn （必要）**
     + 描述：（必要） AWS Database Migration Service 端點的 Amazon Resource Name (ARN)。
     + 類型：`String`
     + 允許模式： `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):dms:[a-z0-9-]+:\\d{12}:endpoint:[A-Z0-9]{1,48}$`
   + **DmsReplicationInstanceArn （必要）**
     + 描述：（必要） AWS Database Migration Service 複寫執行個體的 Amazon Resource Name (ARN)。
     + 類型：`String`
     + 允許模式： `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):dms:[a-z0-9-]+:\\d{12}:rep:[A-Z0-9]+$`
   + **PersistReachabilityAnalyzerResults （選用）**
     + 描述：（選用） 標記，通知是否應保留 Network Insights 分析執行的結果。
     + 類型：`Boolean`
     + 允許的值： `[true, false]`
     +  預設：`false`
   + **LambdaRoleArn （選用）**
     + 描述：（選用） 允許 AWS Lambda 函數存取所需 AWS 服務和資源的 (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)。如果未指定角色，則此 Systems Manager Automation 會在您的帳戶中為 Lambda 建立一個 IAM 角色。
     + 類型：`AWS::IAM::Role::Arn`
     +  預設：`""`
   + **確認 （必要）**
     + 描述：（必要） 輸入 `yes` 以確認此 Runbook 會在您的帳戶中建立 Lambda 函數，如果未`LambdaRoleArn`提供 IAM 角色，則會建立 IAM 角色。
     + 類型：`String`
     + 允許模式： `^[Yy][Ee][Ss]$`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **DescribeEndpointAndCheckEngine：**

     擷取 AWS DMS 端點組態，並驗證資料庫引擎類型是否支援故障診斷。從端點組態擷取伺服器名稱、連接埠和引擎類型。
   + **BranchOnEndpointAndCheckEngineErrors：**

     根據端點驗證中的任何錯誤來分支自動化。如果發現錯誤，自動化會繼續產生錯誤報告，否則會繼續進行連線測試。
   + **GetTestConnectionStatus：**

     使用 `DescribeConnections` API 擷取 AWS DMS 端點的連線狀態和錯誤訊息。此步驟會檢查是否已執行連線測試，並擷取任何失敗訊息。
   + **BranchOnTestConnectionStatusErrors：**

     根據連線測試狀態錯誤配置自動化。如果偵測到錯誤，自動化會產生錯誤報告；否則會繼續進行複寫執行個體分析。
   + **DescribeReplicationInstance：**

     擷取 AWS DMS 複寫執行個體的網路組態詳細資訊，包括 Amazon VPC ID、子網路 IDs、安全群組 IDs，並識別相關聯的彈性網路界面 (ENI)。
   + **ValidateResourcePermissions：**

     驗證執行角色是否具有必要的許可，以清除將在自動化程序期間建立的資源。
   + **CreateDNSResolverLambda：**

     建立 AWS CloudFormation 堆疊，其中包含部署在與複寫執行個體相同 Amazon VPC 內的 Lambda 函數。此函數用於從 Amazon VPC 內容將 DNS 名稱解析為私有 IP 地址。
   + **DescribeCloudFormationErrorFromStackEvents：**

     如果 CloudFormation 堆疊建立失敗，此步驟會描述堆疊事件的錯誤，以提供詳細的失敗資訊以進行故障診斷。
   + **GetDNSResolverLambdaName：**

     從 CloudFormation 堆疊輸出擷取 DNS 解析程式 Lambda 函數的名稱，以供後續步驟使用。
   + **ResolveDmsEndpoint：**

     叫用 Lambda 函數，從 Amazon VPC 內將 AWS DMS 端點主機名稱解析為其 IP 地址。這可確保準確的私有 DNS 解析並驗證 IPv4 相容性。
   + **BranchOnResolveDmsEndpointErrors：**

     根據 DNS 解析錯誤配置自動化。如果端點無法解析或解析為 IPv6 地址，自動化會產生錯誤報告。
   + **GetReachabilityAnalyzerTarget：**

     根據 Amazon VPC 組態和端點位置，識別 Reachability Analyzer 的適當目標。決定要使用 ENI （適用於相同的 Amazon VPC 端點） 或 IP 地址 （適用於外部端點） 作為目標。
   + **GenerateErrors：**

     在先前步驟中發生失敗時建立全面的錯誤報告。這包括端點驗證錯誤、連線測試失敗或 DNS 解析問題的詳細資訊，以及特定的修補指導。
   + **GenerateReport：**

     建立全面的故障診斷報告，其中包含連線狀態、使用 Reachability Analyzer 的網路路徑分析結果、連線障礙的詳細說明，以及建議的解決動作。
   + **CheckStackExists：**

     檢查 CloudFormation 堆疊是否已成功建立，且需要在清除期間刪除。無論自動化成功或失敗，此步驟都能確保適當的資源管理。
   + **DeleteDNSResolverLambda：**

     刪除包含 DNS 解析程式 Lambda 函數和相關資源的 CloudFormation 堆疊 （除非`PersistReachabilityAnalyzerResults`設定為 `true`)，確保自動化完成後不會保留任何剩餘資源。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果：
   + **GetTestConnectionStatus.status**

      AWS DMS 複寫執行個體和端點之間的目前連線測試狀態 （例如，成功、失敗、測試）。
   + **DescribeCloudFormationErrorFromStackEvents.Events**

     如果 CloudFormation 堆疊建立失敗，此輸出會包含堆疊建立程序的詳細錯誤事件，以協助診斷基礎設施部署問題。
   + **GenerateReport.report**

     全面的故障診斷報告，其中包含連線分析結果、 Reachability Analyzer 調查結果、網路路徑分析、識別的特定連線障礙，以及包含 AWS 相關文件連結的詳細修復建議。
   + **GenerateErrors.report**

     如果在自動化程序期間發生錯誤，此輸出會提供詳細的錯誤報告，包括特定失敗原因、受影響的資源，以及在重試自動化之前解決問題的指引。

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSEndpointConnection/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/)

# Amazon EBS
<a name="automation-ref-ebs"></a>

 AWS Systems Manager 自動化為 Amazon Elastic Block Store 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-AnalyzeEBSResourceUsage`](automation-aws-analyze-ebs-resource-usage.md)
+ [`AWS-ArchiveEBSSnapshots`](aws-archiveebssnapshots.md)
+ [`AWS-AttachEBSVolume`](automation-aws-attachebsvolume.md)
+ [`AWSSupport-CalculateEBSPerformanceMetrics`](automation-calculate-ebs-performance-metrics.md)
+ [`AWS-CopySnapshot`](automation-aws-copysnapshot.md)
+ [`AWS-CreateSnapshot`](automation-aws-createsnapshot.md)
+ [`AWS-DeleteSnapshot`](automation-aws-deletesnapshot.md)
+ [`AWSConfigRemediation-DeleteUnusedEBSVolume`](automation-aws-delete-ebs-volume.md)
+ [`AWS-DeregisterAMIs`](aws-deregisteramis.md)
+ [`AWS-DetachEBSVolume`](automation-aws-detachebsvolume.md)
+ [`AWSConfigRemediation-EnableEbsEncryptionByDefault`](automation-aws-enable-ebs-encryption.md)
+ [`AWS-ExtendEbsVolume`](aws-extendebsvolume.md)
+ [`AWSSupport-ModifyEBSSnapshotPermission`](automation-awssupport-modifyebssnapshotpermission.md)
+ [`AWSConfigRemediation-ModifyEBSVolumeType`](automation-aws-modify-ebs-type.md)

# `AWSSupport-AnalyzeEBSResourceUsage`
<a name="automation-aws-analyze-ebs-resource-usage"></a>

 **Description** 

 `AWSSupport-AnalyzeEBSResourceUsage` 自動化 Runbook 用於分析 Amazon Elastic Block Store (Amazon EBS) 上的資源用量。它會分析磁碟區用量，並識別指定區域中捨棄的磁碟區、影像和快照 AWS 。

 **如何運作？** 

Runbook 會執行下列四個任務：

1. 驗證 Amazon Simple Storage Service (Amazon S3) 儲存貯體是否存在，或建立新的 Amazon S3 儲存貯體。

1. 收集處於可用狀態的所有 Amazon EBS 磁碟區。

1. 收集已刪除來源磁碟區的所有 Amazon EBS 快照。

1. 收集任何非終止 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體未使用的所有 Amazon Machine Image (AMIs)。

 Runbook 會產生 CSV 報告，並將其存放在使用者提供的 Amazon S3 儲存貯體中。提供的儲存貯體應依照結尾所述的 AWS 安全最佳實務進行保護。如果使用者提供的 Amazon S3 儲存貯體不存在於帳戶中，則 Runbook 會使用名稱格式 建立新的 Amazon S3 儲存貯體`<User-provided-name>-awssupport-YYYY-MM-DD`，使用自訂 AWS Key Management Service (AWS KMS) 金鑰加密，啟用物件版本控制、封鎖公開存取，並要求 請求使用 SSL/TLS。

 如果您想要指定自己的 Amazon S3 儲存貯體，請確定已依照下列最佳實務進行設定：
+ 封鎖對儲存貯體的公開存取 (`IsPublic`設定為 `False`)。
+ 開啟 Amazon S3 存取記錄。
+ [僅允許對儲存貯體提出 SSL 請求](https://repost.aws/knowledge-center/s3-bucket-policy-for-config-rule)。
+ 開啟物件版本控制。
+ 使用 AWS Key Management Service (AWS KMS) 金鑰來加密儲存貯體。

**重要**  
使用此 Runbook 可能會對您的帳戶產生額外費用，以建立 Amazon S3 儲存貯體和物件。如需可能產生之費用的詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ S3BucketName

  類型：`AWS::S3::Bucket::Name`

  描述：（必要） 您帳戶中要上傳報告的 Amazon S3 儲存貯體。確保儲存貯體政策不會將不必要的讀取/寫入許可授予不需要存取所收集日誌的各方。如果指定的儲存貯體不存在於帳戶中，則自動化會在以名稱格式 啟動自動化的區域中建立新的儲存貯體`<User-provided-name>-awssupport-YYYY-MM-DD`，並以自訂 AWS KMS 金鑰加密。

  允許模式： `$|^(?!(^(([0-9]{1,3}[.]){3}[0-9]{1,3}$)))^((?!xn—)(?!.*-s3alias))[a-z0-9][-.a-z0-9]{1,61}[a-z0-9]$`
+ CustomerManagedKmsKeyArn

  類型：字串

  描述：（選用） 自訂 AWS KMS 金鑰 Amazon Resource Name (ARN)，用於加密在帳戶中不存在指定的儲存貯體時將建立的新 Amazon S3 儲存貯體。如果嘗試建立儲存貯體但未指定自訂 AWS KMS 金鑰 ARN，則自動化會失敗。

  允許模式： `(^$|^arn:aws:kms:[-a-z0-9]:[0-9]:key/[-a-z0-9]*$)`

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:DescribeImages`
+ `ec2:DescribeInstances`
+ `ec2:DescribeSnapshots`
+ `ec2:DescribeVolumes`
+ `kms:Decrypt`
+ `kms:GenerateDataKey`
+ `s3:CreateBucket`
+ `s3:GetBucketAcl`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:ListBucket`
+ `s3:ListAllMyBuckets`
+ `s3:PutObject`
+ `s3:PutBucketLogging`
+ `s3:PutBucketPolicy`
+ `s3:PutBucketPublicAccessBlock`
+ `s3:PutBucketTagging`
+ `s3:PutBucketVersioning`
+ `s3:PutEncryptionConfiguration`
+ `ssm:DescribeAutomationExecutions`

 **具有執行此 Runbook 所需最低 IAM 許可的政策範例：**

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

****  

```
        {
            "Version":"2012-10-17",		 	 	 
            "Statement": [{
                "Sid": "ReadOnlyPermissions",
                "Effect": "Allow",
                "Action": [
                    "ec2:DescribeImages",
                    "ec2:DescribeInstances",
                    "ec2:DescribeSnapshots",
                    "ec2:DescribeVolumes",
                    "ssm:DescribeAutomationExecutions"
                ],
                "Resource": "*"
            }, {
                "Sid": "KMSGeneratePermissions",
                "Effect": "Allow",
                "Action": ["kms:GenerateDataKey", "kms:Decrypt"],
                "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
            }, {
                "Sid": "S3ReadOnlyPermissions",
                "Effect": "Allow",
                "Action": [
                    "s3:GetBucketAcl",
                    "s3:GetBucketPolicyStatus",
                    "s3:GetBucketPublicAccessBlock",
                    "s3:ListBucket"
                ],
                "Resource": [
                    "arn:aws:s3:::amzn-s3-demo-bucket1",
                    "arn:aws:s3:::amzn-s3-demo-bucket2/"
                ]
            }, {
                "Sid": "S3CreatePermissions",
                "Effect": "Allow",
                "Action": [
                    "s3:CreateBucket",
                    "s3:PutObject",
                    "s3:PutBucketLogging",
                    "s3:PutBucketPolicy",
                    "s3:PutBucketPublicAccessBlock",
                    "s3:PutBucketTagging",
                    "s3:PutBucketVersioning",
                    "s3:PutEncryptionConfiguration"
                ],
                "Resource": "*"
            }]
        }
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 導覽至 AWS Systems Manager 主控台中的 [AWSSupport-AnalyzeEBSResourceUsage](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-AnalyzeEBSResourceUsage/description)。

1. 針對輸入參數，輸入下列項目：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **S3BucketName （必要）：**

     帳戶中要上傳報告的 Amazon S3 儲存貯體。
   + **CustomerManagedKmsKeyArn （選用）：**

     自訂 AWS KMS 金鑰 Amazon Resource Name (ARN)，用於加密在指定的儲存貯體不存在於帳戶中時將建立的新 Amazon S3 儲存貯體。  
![\[Input parameters for S3 bucket configuration, including bucket name and KMS key ARN.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-analyze-ebs-resource-usage_input_parameters.png)

1. 選取**執行**。

1. 自動化會啟動。

1. 自動化 Runbook 會執行下列步驟：
   + **checkConcurrency：**

     確保 區域中只有一個此 Runbook 的啟動。如果 Runbook 找到另一個正在進行的執行，則會傳回錯誤並結束。
   + **verifyOrCreateS3bucket：**

     驗證 Amazon S3 儲存貯體是否存在。如果沒有，它會在以名稱格式 啟動自動化的區域中建立新的 Amazon S3 儲存貯體`<User-provided-name>-awssupport-YYYY-MM-DD`，並使用自訂 AWS KMS 金鑰加密。
   + **gatherAmiDetails：**

     搜尋任何 Amazon EC2 執行個體未使用的 AMIs 會產生名稱格式為 的報告`<region>-images.csv`，並將其上傳至 Amazon S3 儲存貯體。
   + **gatherVolumeDetails：**

     驗證處於可用狀態的 Amazon EBS 磁碟區、使用名稱格式 產生報告`<region>-volume.csv`，並將其上傳至 Amazon S3 儲存貯體。
   + **gatherSnapshotDetails：**

     尋找已刪除的 Amazon EBS 磁碟區的 Amazon EBS 快照、使用名稱格式 產生報告`<region>-snapshot.csv`，並將其上傳至 Amazon S3 儲存貯體。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果。  
![\[Output details showing volume, AMI, and snapshot information for AWS resources.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-analyze-ebs-resource-usage_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-AnalyzeEBSResourceUsage)
+ [執行自動化](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-ArchiveEBSSnapshots`
<a name="aws-archiveebssnapshots"></a>

 **Description** 

 `AWS-ArchiveEBSSnapshots` Runbook 透過指定已套用至快照的標籤，協助您封存 Amazon Elastic Block Store (Amazon EBS) 磁碟區的快照。或者，如果您的快照未加上標籤，您可以提供磁碟區的 ID。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ArchiveEBSSnapshots) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ Description

  類型：字串

  描述：（選用） Amazon EBS 快照的描述。
+ DryRun

  類型：字串

  有效值：是 \$1 否

  描述：（必要） 檢查您是否具有動作所需的許可，而無需實際提出請求，並提供錯誤回應。
+ RetentionCount

  類型：字串

  描述：（選用） 您要封存的快照數量。如果您指定 的值，請勿指定此參數的值`RetentionDays`。
+ RetentionDays

  類型：字串

  描述：（選用） 您要封存的快照前幾天數。如果您為 指定值，請勿為此參數指定值`RetentionCount`。
+ SnapshotWithTag

  類型：字串

  有效值：是 \$1 否

  描述：（必要） 指定是否標記您要封存的快照。
+ TagKey

  類型：字串

  描述：（選用） 指派給您要封存之快照的標籤索引鍵。
+ TagValue

  類型：字串

  描述：（選用） 指派給您要封存之快照的標籤值。
+ VolumeId

  類型：字串

  描述：（選用） 您要封存其快照的磁碟區 ID。如果您的快照未加上標籤，請使用此參數。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:ArchiveSnapshots` 
+  `ec2:DescribeSnapshots` 

 **文件步驟** 

`aws:executeScript` - 使用您使用 `TagKey`和 `TagValue` 參數或 `VolumeId` 參數指定的標籤封存快照。

# `AWS-AttachEBSVolume`
<a name="automation-aws-attachebsvolume"></a>

 **Description** 

將 Amazon Elastic Block Store (Amazon EBS) 磁碟區連接至 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-AttachEBSVolume) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ 裝置

  類型：字串

  描述：(必要) 裝置名稱 (例如 /dev/sdh 或 xvdh)。
+ InstanceId

  類型：字串

  描述：(必要) 您想要連接磁碟區的執行個體之 ID。
+ VolumeId

  類型：字串

  描述：（必要） Amazon EBS 磁碟區的 ID。磁碟區和執行個體必須位於相同的可用區域內。

# `AWSSupport-CalculateEBSPerformanceMetrics`
<a name="automation-calculate-ebs-performance-metrics"></a>

 **Description** 

 `AWSSupport-CalculateEBSPerformanceMetrics` Runbook 透過計算效能指標並將其發佈至 CloudWatch 儀表板，協助診斷 Amazon EBS 效能問題。儀表板會顯示目標 Amazon EBS 磁碟區或連接至目標 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的所有磁碟區的預估平均 IOPS 和輸送量。對於 Amazon EC2 執行個體，它也會顯示執行個體的平均 IOPS 和輸送量。Runbook 會將連結輸出至新建立的 CloudWatch 儀表板，其中顯示相關的計算 CloudWatch 指標。CloudWatch 儀表板會在您的帳戶中建立，名稱為：`AWSSupport-<ResourceId>-EBS-Performance-<automation:EXECUTION_ID>`。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 確保指定的時間戳記有效。
+ 驗證資源 ID (Amazon EBS 磁碟區或 Amazon EC2 執行個體） 是否有效。
+ 當您提供 Amazon EC2 做為 ResourceID 時，它會建立 CloudWatch 儀表板，其中包含該 Amazon EC2 執行個體的實際總 IOPS/輸送量，以及連接至 Amazon EC2 執行個體之所有 Amazon EBS 磁碟區的預估平均 IOPS/輸送量圖表。
+ 當您提供 Amazon EBS 磁碟區做為 ResourceID 時，它會建立具有該磁碟區的預估平均 IOPS/輸送量圖表的 CloudWatch 儀表板。
+ 產生 CloudWatch 儀表板後，如果預估平均 IOPS 或預估平均輸送量分別超過最大 IOPS 或最大輸送量，則連接至 Amazon EC2 執行個體的磁碟區或磁碟區可能會產生微量爆量。

**注意**  
 對於爆量磁碟區 (gp2、sc2 和 st1)，應考慮最大 IOPS/輸送量，直到您有爆量平衡為止。完全使用爆量平衡後，即變成零，請考慮基準 IOPS/輸送量指標。

**重要**  
 建立 CloudWatch 儀表板可能會導致您的 帳戶產生額外費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價指南](https://aws.amazon.com/cloudwatch/pricing)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CalculateEBSPerformanceMetrics) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:DescribeVolumes`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceTypes`
+ `cloudwatch:PutDashboard`

範例政策

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "cloudwatch:PutDashboard",
            "Resource": "arn:aws:cloudwatch::111122223333:dashboard/*-EBS-Performance-*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeVolumes",
                "ec2:DescribeInstanceTypes"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CalculateEBSPerformanceMetrics/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CalculateEBSPerformanceMetrics/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **ResourceID （必要）：**

     Amazon EC2 執行個體或 Amazon EBS 磁碟區的 ID。
   + **開始時間 （必要）：**

     在 CloudWatch 中檢視資料的開始時間。時間的格式必須為 `yyyy-mm-ddThh:mm:ss`，UTC 則為 。
   + **結束時間 （必要）：**

     在 CloudWatch 中檢視資料的結束時間。時間的格式必須為 `yyyy-mm-ddThh:mm:ss`，UTC 則為 。  
![\[Input parameters form for AWS Systems Manager Automation with fields for role, resource ID, and time range.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-calculate-ebs-performance-metrics_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **CheckResourceIdAndTimeStamps：**

     檢查結束時間是否大於開始時間至少一分鐘，以及所提供的資源是否存在。
   + **CreateCloudWatchDashboard：**

     計算 Amazon EBS 效能，並根據您的資源 ID 顯示圖形。如果您為參數資源 ID 提供 Amazon EBS 磁碟區 ID，此 Runbook 會建立 CloudWatch 儀表板，其中包含 Amazon EBS 磁碟區的預估平均 IOPS 和預估平均輸送量。如果您為參數資源 ID 提供 Amazon EC2 執行個體 ID，此 Runbook 會建立 CloudWatch 儀表板，其中包含 Amazon EC2 執行個體的平均總 IOPS 和平均總輸送量，以及連接至 Amazon EC2 執行個體之所有 Amazon EBS 磁碟區的預估平均 IOPS 和預估平均輸送量。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：  
![\[CloudWatch dashboard creation output showing a URL link and a message with instructions.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-calculate-ebs-performance-metrics_outputs.png)

   做為 Amazon EC2 執行個體之資源 ID 的 CloudWatch Dashboard 範例  
![\[CloudWatch dashboard showing EC2 instance metrics with graphs for IOPS, throughput, and volume performance.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-calculate-ebs-performance-metrics_dashboard_ec2_instance.png)

   資源 ID 為 Amazon EBS 磁碟區 ID 的 CloudWatch Dashboard 範例  
![\[CloudWatch dashboard showing EBS volume performance metrics with IOPS and throughput graphs.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-calculate-ebs-performance-metrics_dashboard_ebs_volume.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CalculateEBSPerformanceMetrics/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 EBS 磁碟區是否爆量，然後防止這種情況發生？](https://repost.aws/knowledge-center/ebs-identify-micro-bursting)
+ [如何使用 CloudWatch 檢視 EC2 執行個體的彙總 Amazon EBS 效能指標？](https://repost.aws/knowledge-center/ebs-aggregate-cloudwatch-performance)

# `AWS-CopySnapshot`
<a name="automation-aws-copysnapshot"></a>

 **Description** 

複製 Amazon Elastic Block Store (Amazon EBS) 磁碟區的point-in-time快照。您可以在相同 AWS 區域 或區域中將快照複製到另一個區域。加密的 Amazon EBS 快照副本會保持加密。未加密快照的副本仍保持未加密狀態。若要複製從另一個帳戶共用的加密快照，您必須擁有用於加密快照之 KMS 金鑰的許可。複製另一個快照建立的快照，具有一個不應用於任何用途的任意磁碟區 ID。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CopySnapshot) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ Description

  類型：字串

  描述：（選用） Amazon EBS 快照的描述。
+ SnapshotId

  類型：字串

  描述：（必要） 要複製的 Amazon EBS 快照 ID。
+ SourceRegion

  類型：字串

  描述：(選用) 來源快照目前存在的區域。

 **文件步驟** 

copySnapshot - 複製 Amazon EBS 磁碟區的快照。

 **輸出** 

copySnapshot.SnapshotId - 新快照的 ID。

# `AWS-CreateSnapshot`
<a name="automation-aws-createsnapshot"></a>

 **Description** 

建立 Amazon EBS 磁碟區的快照。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateSnapshot) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ Description

  類型：字串

  描述：(選用) 快照的描述
+ VolumeId

  類型：字串

  描述：(必要) 磁碟區的 ID。

# `AWS-DeleteSnapshot`
<a name="automation-aws-deletesnapshot"></a>

 **Description** 

刪除 Amazon EBS 磁碟區的快照。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DeleteSnapshot) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ SnapshotId

  類型：字串

  描述：(必要) EBS 快照的 ID。

# `AWSConfigRemediation-DeleteUnusedEBSVolume`
<a name="automation-aws-delete-ebs-volume"></a>

 **Description** 

 `AWSConfigRemediation-DeleteUnusedEBSVolume` Runbook 會刪除未使用的 Amazon Elastic Block Store (Amazon EBS) 磁碟區。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteUnusedEBSVolume) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ CreateSnapshot

  類型：布林值

   描述：（選用） 如果設定為 `true` ，自動化會在刪除之前建立 Amazon EBS 磁碟區的快照。
+ VolumeId

  類型：字串

  描述：（必要） 您要刪除的 Amazon EBS 磁碟區的 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:CreateSnapshot` 
+  `ec2:DeleteVolume` 
+  `ec2:DescribeSnapshots` 
+  `ec2:DescribeVolumes` 

 **文件步驟** 
+  `aws:executeScript` - 驗證您在 `VolumeId` 參數中指定的 Amazon EBS 磁碟區不在使用中，並根據您為`CreateSnapshot`參數選擇的值建立快照。
+  `aws:branch` - 根據您為`CreateSnapshot`參數選擇的值進行分支。
+  `aws:waitForAwsResourceProperty` - 等待快照完成。
+  `aws:executeAwsApi` - 在快照建立失敗時刪除快照。
+  `aws:executeAwsApi` - 刪除您在 `VolumeId` 參數中指定的 Amazon EBS 磁碟區。
+  `aws:executeScript` - 驗證已刪除 Amazon EBS 磁碟區。

# `AWS-DeregisterAMIs`
<a name="aws-deregisteramis"></a>

 **Description** 

 `AWS-DeregisterAMIs` Runbook 透過指定您已套用至 的標籤，協助您取消註冊 Amazon Machine Images(AMIs)AMIs。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DeregisterAMIs) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DryRun

  類型：字串

  有效值：是 \$1 否

  描述：（必要） 檢查您是否具有動作所需的許可，而無需實際提出請求，並提供錯誤回應。
+ RetainNumber

  類型：字串

  描述：（選用） 您要保留AMIs的 數量。如果您為 指定值，請勿為此參數指定值`Age`。
+ 年齡

  類型：字串

  描述：（選用） 您要保留AMIs的過去天數。如果您為 指定值，請勿為此參數指定值`RetainNumber`。
+ TagKey

  類型：字串

  描述：（必要） 指派給您要取消註冊AMIs之 標籤的索引鍵。
+ TagValue

  類型：字串

  描述：（必要） 指派給您要取消註冊之 AMIs的標籤值。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:DeregisterImage` 
+  `ec2:DescribeImages` 

 **文件步驟** 
+  `aws:executeAwsApi` - 驗證您為 Runbook 輸入參數指定的值。
+  `aws:executeAwsApi` - AMIs使用您使用 `TagKey`和 `TagValue` 參數指定的標籤取消註冊。

# `AWS-DetachEBSVolume`
<a name="automation-aws-detachebsvolume"></a>

 **Description** 

從 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體分離 Amazon EBS 磁碟區。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DetachEBSVolume) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ LambdaAssumeRole

  類型：字串

  描述：（選用） Lambda 所擔任角色的 ARN
+ VolumeId

  類型：字串

  描述：(必要) EBS 磁碟區的 ID。磁碟區和執行個體必須位於相同的可用區域內

# `AWSConfigRemediation-EnableEbsEncryptionByDefault`
<a name="automation-aws-enable-ebs-encryption"></a>

 **Description** 

 `AWSConfigRemediation-EnableEbsEncryptionByDefault` Runbook 會在您執行自動化 AWS 區域 的 AWS 帳戶 和 中的所有新 Amazon Elastic Block Store (Amazon EBS) 磁碟區上啟用加密。執行自動化之前建立的磁碟區不會加密。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableEbsEncryptionByDefault) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:EnableEbsEncryptionByDefault` 
+  `ec2:GetEbsEncryptionByDefault` 
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 

 **文件步驟** 
+  `aws:executeAwsApi` - 啟用目前帳戶和區域中的預設 Amazon EBS 加密設定。
+  `aws:assertAwsResourceProperty` - 確認已啟用預設的 Amazon EBS 加密設定。

# `AWS-ExtendEbsVolume`
<a name="aws-extendebsvolume"></a>

 **Description** 

`AWS-ExtendEbsVolume` Runbook 會增加 Amazon EBS 磁碟區的大小，並擴展檔案系統。此自動化支援 `xfs`和 `ext4` 檔案系統。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ExtendEbsVolume) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DriveLetter

  類型：字串

  描述：（選用） 您要擴充其檔案系統的磁碟機字母。Windows 執行個體需要此參數。
+ InstanceId

  類型：字串

  描述：（選用） 您要延伸之 Amazon EBS 磁碟區的 Amazon EC2 執行個體 ID。
+ KeepSnapshot

  類型：布林值

  預設：true

  描述：（選用） 決定是否要在增加 Amazon EBS 磁碟區大小之前保留建立的快照。
+ MountPoint

  類型：字串

  描述：（選用） 您要擴充其檔案系統之磁碟機的掛載點。Linux 執行個體需要此參數。
+ SizeGib

  類型：字串

  描述：（必要） 您要修改 Amazon EBS 磁碟區的大小，以 GiB 為單位。
+ VolumeId

  類型：字串

  描述：（必要） 您要擴展的 EBS 磁碟區的 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:CreateSnapshot` 
+  `ec2:CreateTags` 
+  `ec2:DeleteSnapshot` 
+  `ec2:DescribeVolumes` 
+  `ec2:ModifyVolume` 
+  `ssm:DescribeInstanceInformation` 
+  `ssm:GetCommandInvocation` 
+  `ssm:SendCommand` 

 **文件步驟** 
+  `aws:executeScript` - 將磁碟區的大小增加到您在 `VolumeId` 參數中指定的值，並擴展檔案系統。

# `AWSSupport-ModifyEBSSnapshotPermission`
<a name="automation-awssupport-modifyebssnapshotpermission"></a>

 **Description** 

 `AWSSupport-ModifyEBSSnapshotPermission` Runbook 可協助您修改多個 Amazon Elastic Block Store (Amazon EBS) 快照的許可。使用此 Runbook，您可以建立快照`Public`或 ，`Private`並與其他 共用 AWS 帳戶。使用此 Runbook 無法與其他帳戶共用使用預設 KMS 金鑰加密的快照。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ModifyEBSSnapshotPermissions) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ AccountIds

  類型：StringList

  預設：none

   描述：（選用） 您要與其共用快照的帳戶 IDs。如果您`No`輸入 參數的值，則需要此`Private`參數。
+ AccountPermissionOperation

  類型：字串

  有效值：新增 \$1 移除

  預設：none

  描述：（選用） 要執行的操作類型。
+ 私有

  類型：字串

  有效值：是 \$1 否

   描述：（必要） 如果您想要與特定帳戶共用快照，請輸入 `No` 的值。
+ SnapshotIds

  類型：StringList

  描述：（必要） 您要修改其許可的 Amazon EBS 快照 IDs。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DescribeSnapshots` 
+  `ec2:ModifySnapshotAttribute` 

 **文件步驟** 

1.  `aws:executeScript` - 驗證 `SnapshotIds` 參數中提供的快照 IDs。驗證 IDs 之後，指令碼會檢查加密的快照，並在找到任何快照時輸出清單。

1.  `aws:branch` - 根據您為 `Private` 參數輸入的值來配置自動化。

1.  `aws:executeScript` - 修改指定快照的許可，以與指定的帳戶共用快照。

1.  `aws:executeScript` - 修改快照的許可，將快照從 變更為 `Public` `Private` 。

 **輸出** 

ValidateSnapshots.EncryptedSnapshots

SharewithOtherAccounts.Result

MakePrivate.Result

MakePrivate.Commands

# `AWSConfigRemediation-ModifyEBSVolumeType`
<a name="automation-aws-modify-ebs-type"></a>

 **Description** 

 `AWSConfigRemediation-ModifyEBSVolumeType` Runbook 會修改 Amazon Elastic Block Store (Amazon EBS) 磁碟區的磁碟區類型。修改磁碟區類型後，磁碟區會進入 `optimizing` 狀態。如需監控磁碟區修改進度的資訊，請參閱《*Amazon EC2 使用者指南*》中的[監控磁碟區修改進度](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-modifications.html)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-ModifyEBSVolumeType) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ EbsVolumeId

  類型：字串

  描述：（必要） 您要修改的 Amazon EBS 磁碟區的 ID。
+ EbsVolumeType

  類型：字串

  有效值：標準 \$1 io1 \$1 io2 \$1 gp2 \$1 gp3 \$1 sc1 \$1 st1

   描述：您要變更 Amazon EBS 磁碟區的磁碟區類型。如需 Amazon EBS 磁碟區類型的資訊，請參閱《[Amazon EC2 使用者指南》中的 Amazon EBS 磁碟區類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html)。 *Amazon EC2 * 

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DescribeVolumes` 
+  `ec2:ModifyVolume` 

 **文件步驟** 
+  `aws:waitForAwsResourceProperty` - 驗證磁碟區的狀態為 `available`或 `in-use` 。
+  `aws:executeAwsApi` - 修改您在 `EbsVolumeId` 參數中指定的 Amazon EBS 磁碟區。
+  `aws:waitForAwsResourceProperty` - 確認磁碟區的類型已變更為您在 `EbsVolumeType` 參數中指定的值。

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

 AWS Systems Manager 自動化為 Amazon Elastic Compute Cloud 提供預先定義的 Runbook。Amazon Elastic Block Store 的 Runbook 位於 Runbook 參考的 [Amazon EBS](automation-ref-ebs.md)區段。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](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>

**Description**

變更 Auto Scaling 群組中 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的待命狀態。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：（必要） 您要在 Auto Scaling 群組中變更待命狀態的 Amazon EC2 執行個體 ID。
+ LambdaRoleArn

  類型：字串

  描述：(選用) 角色的 ARN，允許由自動化建立的 Lambda 代您執行動作。如果未指定，則會建立暫時性角色來執行 Lambda 函數。

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

**Description**

變更 Auto Scaling 群組中 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的待命狀態。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：（必要） 您要變更 Auto Scaling 群組中待命狀態的 EC2 執行個體 ID。
+ LambdaRoleArn

  類型：字串

  描述：(選用) 角色的 ARN，允許由自動化建立的 Lambda 代您執行動作。如果未指定，則會建立暫時性角色來執行 Lambda 函數。

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

**Description**

從 Amazon Elastic Compute Cloud Amazon Machine Image(Amazon EC2AMI) 執行個體建立新的 ()。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ InstanceId

  類型：字串

  描述：(必要) EC2 執行個體的 ID。
+ NoReboot

  類型：布林值

  描述：(選用) 在建立映像之前不要重新開機執行個體。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

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

****  

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

------

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

**Description**

刪除 Amazon Machine Image(AMI) 和所有相關聯的快照。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ImageId

  類型：字串

  描述：(必要) AMI 的 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

------
#### [ 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>

**Description**

在 Auto Scaling 群組中修補 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：(必要) 要修補的執行個體之 ID。請勿指定設定為在維護時段執行的執行個體 ID。
+ LambdaRoleArn

  類型：字串

  描述：（選用） 角色的 ARN，允許自動化建立的 Lambda 代表您執行動作。如果未指定，則會建立暫時性角色來執行 Lambda 函數。
+ WaitForInstance

  類型：字串

  預設：PT2M

  描述：（選用） 自動化應休眠的持續時間，以允許執行個體恢復服務。
+ WaitForReboot

  類型：字串

  預設：PT5M

  描述：（選用） 自動化應休眠的持續時間，以允許修補的執行個體重新啟動。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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>

**Description**

使 EC2 執行個體符合適用的修補程式基準。在失敗時復原根磁碟區。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：(必要) 套用修補程式基準的 EC2 InstanceId。
+ LambdaAssumeRole

  類型：字串

  描述：(選用) 角色的 ARN，允許由自動化建立的 Lambda 代您執行動作。如果未指定，則會建立暫時性角色來執行 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  |  deleteCloudFormationTemplate  |  `aws:deleteStack`  | 

**輸出**

IdentifyRootVolume.Payload

PrePatchSnapshot.Output

SaveComplianceReportToS3.Payload

RestoreFromSnapshot.Payload

CheckCompliance.Payload

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

 **Description** 

使用 `AWS-QuarantineEC2Instance` Runbook，您可以將安全群組指派給不允許任何傳入或傳出流量的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

**重要**  
執行此 Runbook 之前，應仔細檢閱 RDP 設定的變更。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：(必要) 管理 RDP 設定的受管執行個體之 ID。
+ IsolationSecurityGroup

  類型：字串

  描述：（必要） 您要指派給執行個體的安全群組名稱，以防止傳入或傳出流量。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `autoscaling:DescribeAutoScalingInstances`
+ `autoscaling:DetachInstances`
+ `ec2:CreateSecurityGroup`
+ `ec2:CreateSnapshot`
+ `ec2:DescribeInstances`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSnapshots`
+ `ec2:ModifyInstanceAttribute`
+ `ec2:RevokeSecurityGroupEgress`
+ `ec2:RevokeSecurityGroupIngress`

 **文件步驟** 
+ `aws:executeAwsApi` - 收集執行個體的詳細資訊。
+ `aws:executeScript` - 驗證執行個體不是 Auto Scaling 群組的一部分。
+ `aws:executeAwsApi` - 建立連接到執行個體之根磁碟區的快照。
+ `aws:waitForAwsResourceProperty` - 等待快照狀態為 `completed`。
+ `aws:executeAwsApi` - 將 `IsolationSecurityGroup` 參數中指定的安全群組指派給您的執行個體。

 **輸出** 

`GetEC2InstanceResources.RevokedSecurityGroupsIds`

`GetEC2InstanceResources.RevokedSecurityGroupsNames`

`createSnapshot.SnapId`

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

**Description**

變更 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的執行個體類型。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ InstanceId

  類型：字串

  描述：(必要) 執行個體的 ID。
+ InstanceType

  類型：字串

  描述：(必要) 執行個體類型。

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

**Description**

重新啟動一或多個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：StringList

  描述：（必要） 要重新啟動的 Amazon EC2 執行個體 IDs。

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

 **Description** 

`AWS-SetupJupyter` Runbook 可協助您在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上設定 Jupyter Notebook。您可以指定現有的執行個體，或提供自動化的 Amazon Machine Image(AMI) ID 來啟動和設定新的執行個體。開始之前，您必須在參數存放區中建立`SecureString`參數，以用作 Jupyter Notebook 的密碼。參數存放區是 中的工具 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ AmiId

  類型：字串

  描述：（選用） AMI您要用來啟動新執行個體和設定 Jupyter Notebook 的 ID。
+ InstanceId

  類型：字串

  描述：（必要） 您要設定 Jupyter Notebook 的執行個體 ID。
+ InstanceType

  類型：字串

  預設：t3.medium

  描述：（選用） 如果您要啟動新的執行個體來設定 Jupyter Notebook，請指定要使用的執行個體類型。
+ JupyterPasswordSSMKey

  類型：字串

  描述：（必要） 您要用作 Jupyter Notebook 密碼的參數存放區中的`SecureString`參數名稱。
+ KeyPairName

  類型：字串

  描述：（選用） 您要與新啟動的執行個體建立關聯的金鑰對。
+ RemoteAccessCidr

  類型：字串

  預設：0.0.0.0/0

  描述：（選用） 您要允許 SSH 流量的 CIDR 範圍。
+ RoleName

  類型：字串

  預設：SSMManagedInstanceProfileRole

  描述：（選用） 新啟動執行個體的執行個體設定檔名稱。
+ StackName

  類型：字串

  預設：CreateManagedInstanceStack\$1\$1automation:EXECUTION\$1ID\$1\$1

  描述：（選用） 您希望自動化使用的 CloudFormation 堆疊名稱。
+ SubnetId

  類型：字串

  預設：Default

  描述：（選用） 您要啟動要使用的新執行個體的子網路。
+ VpcId

  類型：字串

  預設：Default

  描述：（選用） 您想要在其中啟動新執行個體的虛擬私有雲端 (VPC) ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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` - 使用您為 Runbook 輸入參數指定的值，在您指定的執行個體或新啟動的執行個體上設定 Jupyter Notebook。

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

**Description**

啟動一或多個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：StringList

  描述：(必要) 要啟動的 EC2 執行個體。

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

**Description**

停止一或多個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：StringList

  描述：（必要） 要停止的 EC2 執行個體。

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

**Description**

終止一或多個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：StringList

  描述：(必要) 要終止的一個或多個 EC2 執行個體之 ID。

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

**Description**

使用 Linux 發行套件和 Amazon 軟體更新 Amazon Machine Image(AMI)。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。

  允許模式： `^$|^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")，無排除套件。

  允許模式： `^(none|[a-zA-Z0-9\s,._+:=<>()\[\]/*-]+)$`
  + 必須是「無」或由字母、數字、空格和下列字元組成的逗號分隔項目清單： `, . _ + : = < > ( ) [ ] / * -`
+ IamInstanceProfileName

  類型：字串

  預設：ManagedInstanceProfile

  描述：（必要） 可讓 Systems Manager 管理執行個體的執行個體描述檔。

  允許模式： `^[\w+=,.@-]{1,128}$`
  + 必須介於 1 到 128 個字元之間，且只能包含字母、數字和這些字元： `+ = , . @ - _`
+ IncludePackages

  類型：字串

  預設：all

  描述：(選用) 僅更新這些具名的套件。根據預設 ("all")，會套用所有可用的更新。

  允許模式： `^(all|[a-zA-Z0-9\s,._+:=<>()\[\]/*-]+)$`
  + 必須是「全部」或由字母、數字、空格和下列字元組成的逗號分隔項目清單： `, . _ + : = < > ( ) [ ] / * -`
+ InstanceType

  類型：字串

  預設：t2.micro

  描述：(選用) 做為工作空間主機啟動的執行個體類型。執行個體類型因區域而異。

  允許模式： `^[a-z0-9]+(-[a-z0-9]+)*\.[a-z0-9]+$`
  + 必須是格式 prefix.suffix，其中兩個部分都包含小寫字母和數字，且字首可能包含連字號
+ MetadataOptions

  類型：StringMap

  預設：\$1"HttpEndpoint"： "enabled"， "HttpTokens"： "optional"\$1

  描述：（選用） 執行個體的中繼資料選項。如需詳細資訊，請參閱 [InstanceMetadataOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html)。

  允許模式： `^\{[^<>\$;|&\\]*\}$`
  + 必須以大括號 \$1 \$1 包裝，且不能包含這些字元： `< > $ ; | & \`
+ PostUpdateScript

  類型：字串

  預設：none

  描述：(選用) 套用套件更新後要執行的指令碼之 URL。預設 ("none") 為不執行指令碼。

  允許模式： `^(none|https?://[\w\-._~:/?#\[\]@!$&'()*+,;=%]+)$`
  + 必須是「無」或有效的 HTTP/HTTPS URL
+ PreUpdateScript

  類型：字串

  預設：none

  描述：(選用) 套用更新前要執行的指令碼之 URL。預設 ("none") 為不執行指令碼。

  允許模式： `^(none|https?://[\w\-._~:/?#\[\]@!$&'()*+,;=%]+)$`
  + 必須是「無」或有效的 HTTP/HTTPS URL
+ SecurityGroupIds

  類型：字串

  描述：（必要） 您希望套用至 之安全群組 IDs 的逗號分隔清單AMI。

  允許模式： `^sg-[a-z0-9]{8,17}$`
  + 必須以 "sg-" 開頭，後面接著 8-17 個小寫字母或數字
+ SourceAmiId

  類型：字串

  描述：(必要) 來源 Amazon Machine Image ID。

  允許模式： `^ami-[a-z0-9]{8,17}$`
  + 必須以「ami-」開頭，後面接著 8-17 個小寫字母或數字
+ SubnetId

  類型：字串

  描述：（選用） 您要啟動執行個體的子網路 ID。如果您已刪除預設 VPC，則需要此參數。

  允許模式： `^$|^subnet-[a-z0-9]{8,17}$`
  + 必須是空的 OR 以 "subnet-" 開頭，後面接著 8-17 個小寫字母或數字
+ TargetAmiName

  類型：字串

  預設：UpdateLinuxAmi\$1from\$1\$1\$1SourceAmiId\$1\$1\$1on\$1\$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>

**Description**

更新 Microsoft Windows Amazon Machine Image(AMI)。根據預設，此 Runbook 會安裝所有 Windows 更新、Amazon 軟體和 Amazon 驅動程式。接著會執行 Sysprep 以建立新的 AMI。支援透過 Windows Server 20R2的 Windows Server 2008 R2。

**重要**  
此 Runbook 不支援 Windows Server 2025 和更新版本，因為 AWS Paravirtual 驅動程式與這些版本不相容。如需詳細資訊，請參閱 [Windows 執行個體的 Paravirtual 驅動程式](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html)。

**重要**  
如果您的執行個體 AWS Systems Manager 使用 VPC 端點連線至 ，除非在 us-east-1 區域中使用，否則此 Runbook 將會失敗。執行個體必須啟用 TLS 1.2，才能使用此 Runbook。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ 類別

  類型：字串

  描述：(選用) 指定一個或多個更新類別。您可以使用逗號分隔值篩選類別。選項：Application，Connectors，CriticalUpdates，DefinitionUpdates，DeveloperKits，Drivers，FeaturePacks，Guidance，Microsoft，SecurityUpdates，ServicePacks，Tools，UpdateRollups，Updates，有效格式包括單一項目，例如：CriticalUpdates。或者您可以指定逗號分隔清單：CriticalUpdates,SecurityUpdates。備註：逗號旁不得有任何空格。
+ ExcludeKbs

  類型：字串

  描述：(選用) 指定一個或多個要排除的 Microsoft 知識庫 (KB) 文章 ID。您可以使用逗號分隔值排除多個 ID。有效格式：KB9876543 或 9876543。
+ IamInstanceProfileName

  類型：字串

  預設：ManagedInstanceProfile

  描述：（必要） 可讓 Systems Manager 管理執行個體的角色名稱。
+ IncludeKbs

  類型：字串

  描述：(選用) 指定一個或多個要包含的 Microsoft 知識庫 (KB) 文章 ID。您可以使用逗號分隔值安裝多個 ID。有效格式：KB9876543 或 9876543。
+ InstanceType

  類型：字串

  預設：t2.medium

  描述：(選用) 做為工作空間主機啟動的執行個體類型。執行個體類型因區域而異。預設為 t2.medium。
+ MetadataOptions

  類型：StringMap

  預設：\$1"HttpEndpoint"： "enabled"， "HttpTokens"： "optional"\$1

  描述：（選用） 執行個體的中繼資料選項。如需詳細資訊，請參閱 [InstanceMetadataOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html)。
+ PostUpdateScript

  類型：字串

  描述：(選用) 做為字串提供的指令碼。它會在安裝 OS 更新後執行。
+ PreUpdateScript

  類型：字串

  描述：(選用) 做為字串提供的指令碼。它會在安裝 OS 更新前執行。
+ PublishedDateAfter

  類型：字串

  描述：(選用) 指定更新應在其後發佈的日期。例如，假設指定 01/01/2017，則 Windows Update 搜尋會傳回在 01/01/2017 當天或之後發佈的任何更新。
+ PublishedDateBefore

  類型：字串

  描述：(選用) 指定更新應在其之前發佈的日期。例如，假設指定 01/01/2017，則 Windows Update 搜尋會傳回在 01/01/2017 當天或之前發佈的任何更新。
+ PublishedDaysOld

  類型：字串

  描述：(選用) 指定更新從發佈日期起的天數。例如，假設指定 10，則 Windows Update 搜尋會傳回在發佈前 10 天或更多天之前的任何更新。
+ SecurityGroupIds

  類型：字串

  描述：（必要） 您希望套用至 之安全群組 IDs 的逗號分隔清單AMI。
+ SeverityLevels

  類型：字串

  描述：(選用) 指定一個或多個與更新關聯的 MSRC 嚴重性等級。您可以使用逗號分隔值篩選嚴重性等級。根據預設，會選取所有安全層級的修補程式。如果提供值，則更新清單會以這些值篩選。選項：Critical，Important，Low，Moderate 或 Unspecified。有效格式包括單一項目，例如：Critical。或者，您可以指定逗號分隔清單：Critical，Important，Low。
+ SourceAmiId

  類型：字串

  描述：（必要） 來源 AMI ID。
+ SubnetId

  類型：字串

  描述：（選用） 您要啟動執行個體的子網路 ID。如果您已刪除預設 VPC，則需要此參數。
+ TargetAmiName

  類型：字串

  預設：UpdateWindowsAmi\$1from\$1\$1\$1SourceAmiId\$1\$1\$1on\$1\$1\$1global:DATE\$1TIME\$1\$1

  描述：(選用) 要建立的新 AMI 之名稱。預設為系統產生的字串，包括來源 AMI ID，以及建立時間和日期。

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

**Description**

`AWSConfigRemediation-EnableAutoScalingGroupELBHealthCheck` Runbook 會為您指定的 Amazon EC2 Auto Scaling (Auto Scaling) 群組啟用運作狀態檢查。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ AutoScalingGroupARN

  類型：字串

  描述：（必要） 您要啟用運作狀態檢查之自動擴展群組的 Amazon Resource Name (ARN)。
+ HealthCheckGracePeriod

  類型：整數

  預設：300

  描述：（選用） Auto Scaling 在檢查已開始服務的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的運作狀態之前等待的時間，以秒為單位。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ec2:DescribeAutoScalingGroups`
+ `ec2:UpdateAutoScalingGroup`

**文件步驟**
+ `aws:executeScript` - 針對您在 `AutoScalingGroupARN` 參數中指定的 Auto Scaling 群組啟用運作狀態檢查。

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

**Description**

`AWSConfigRemediation-EnforceEC2InstanceIMDSv2` Runbook 需要您指定的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體，才能使用執行個體中繼資料服務第 2 版 (IMDSv2)。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ InstanceId

  類型：字串

  描述：（必要） 您想要使用 IMDSv2 的 Amazon EC2 執行個體 ID。 IMDSv2
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ HttpPutResponseHopLimit

  類型：整數

  描述：（選用） 從 IMDS 服務返回請求者的 Hop 回應限制。EC2 執行個體託管容器設定為 EC2或更高。設為 0 不變更 （預設）。

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

  預設：0

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ec2:DescribeInstances`
+ `ec2:ModifyInstanceMetadataOptions`

**文件步驟**
+ `aws:executeScript` - 在您`required`於 `InstanceId` 參數中指定的 Amazon EC2 執行個體上將 `HttpTokens`選項設定為 。
+ `aws:assertAwsResourceProperty` - 驗證 Amazon EC2 執行個體上需要 IMDSv2。 Amazon EC2 

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

**Description**

AMI 從Windows Server執行 SQL Server 2008 或更新版本的 EC2 執行個體建立 ，然後將 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

如果您使用的是舊版 Windows Server 與 SQL Server 2019 不相容，則自動化文件必須將您的 Windows Server 版本升級至 2016。

升級為多步驟程序，可能需要 2 小時才能完成。自動化會從執行個體建立 AMI，然後從指定 AMI中的新 啟動暫時執行個體`SubnetID`。與原始執行個體相關聯的安全群組會套用至暫時執行個體。然後，自動化會在臨時執行個體`TargetSQLVersion`上執行 就地升級。升級之後，自動化AMI會從暫時執行個體建立新的 ，然後終止暫時執行個體。

您可以在 VPC AMI中啟動新的 來測試應用程式功能。結束測試後，在執行另一次升級前，請先安排應用程式停機時間，再完全切換至已升級的執行個體。

**注意**  
如果您想要修改從新 啟動之 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 2008 R2 (或更新版本) 和 SQL Server 2008 (或更新版本) 的 Windows Server 版本。
+ 確認 SSM Agent 安裝於您的執行個體上。如需詳細資訊，請參閱[在 Windows Server 的 EC2 執行個體上安裝和設定 SSM Agent](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. 從磁碟機 E:\$1 將 ISO 的內容複製到磁碟機 D:\$1

    1. 建立步驟 2 中所建立 6 GB 磁碟區的 EBS 快照。

**限制**
+ 升級僅能在使用 Windows 身分驗證的 SQL Server 上執行。
+ 確認執行個體上沒有待定的安全性修補程式更新。開啟 **Control Panel (控制面板)**，接著選擇 **Check for updates (檢查更新)**。
+ 不支援在 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 授權包含的執行個體 （使用 AWS 提供的 Amazon Machine Image for Windows Server 搭配 Microsoft SQL Server 啟動的執行個體） 而言是選用的。
+ RebootInstanceBeforeTakingImage

  類型：字串

  描述：（選用） 如果設定為 `true`，自動化會在建立預先升級 AMI 之前重新啟動執行個體。根據預設，自動化不會在升級前重新啟動。
+ TargetSQLVersion

  類型：字串

  描述：（選用） 選取目標 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>

**Description**

從 Windows Server 2008 R2、2012 R2、2016 或 2019 執行個體建立 Amazon Machine Image(AMI)，然後將 升級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 個 vCPU 或 4GB RAM 的執行個體上執行作業系統升級。自動化會從執行個體建立 AMI，然後從`SubnetId`您指定的 中新建立的 AMI 啟動暫時執行個體。與原始執行個體相關聯的安全群組會套用至暫時執行個體。然後，自動化會在臨時執行個體`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 Standard 和 Datacenter 版本

**先決條件**
+ TLS 1.2 版。
+ 確認 SSM Agent 安裝於您的執行個體上。如需詳細資訊，請參閱[在 Windows Server 的 EC2 執行個體上安裝和設定 SSM Agent](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 執行個體。
+ 使用為 Systems Manager 提供必要許可的 AWS Identity and Access Management (IAM) 執行個體設定檔來設定Windows Server執行個體。如需詳細資訊，請參閱[建立 Systems Manager 的 IAM 執行個體設定檔](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html)。
+ 確認執行個體在開機磁碟中有 20 GB 的可用磁碟空間。
+ 如果執行個體未使用 AWS提供的 Windows 授權，請指定包含 2012 R2 安裝媒體的 Amazon EBS Windows Server 快照 ID。若要執行此作業：
  + 驗證 EC2 執行個體正在執行 Windows Server 2012 或更新版本。
  + 在執行個體執行的相同可用區域中建立 6 GB 的 EBS 磁碟區。將磁碟區連結到執行個體。例如，將其掛載為 D 磁碟機。
  + 在 ISO 按一下滑鼠右鍵，並將其掛載至執行個體，例如做為 E 磁碟機。
  + 從磁碟機 E:\$1 將 ISO 的內容複製到磁碟機 D:\$1
  + 從上述步驟 2 建立的 6 GB 磁碟區建立 EBS 快照。

**限制**

此自動化不支援升級 Windows 網域控制站、叢集或 Windows 桌面作業系統。此自動化也不支援安裝了下列角色的 Windows Server EC2 執行個體。
+ 遠端桌面工作階段主機 (RDSH)
+ 遠端桌面連線代理人 (RDCB)
+ 遠端桌面虛擬化主機 (RDVH)
+ 遠端桌面 Web 存取 (RDWA)

**參數**
+ AlternativeKeyPairName

  類型：字串

  描述：（選用） 升級程序期間要使用的替代金鑰對名稱。這在指派給原始執行個體的金鑰對無法使用的情況下非常有用。如果原始執行個體未指派金鑰對，您必須為此參數指定值。
+ BYOLWindowsMediaSnapshotId

  類型：字串

  描述：（選用） 要複製的 Amazon EBS 快照 ID，其中包含 Windows Server 2012R2 安裝媒體。只有在您升級 BYOL 執行個體時需要。
+ IamInstanceProfile

  類型：字串

  描述：（必要） 可讓 Systems Manager 管理執行個體的 IAM 執行個體設定檔名稱。
+ InstanceId

  類型：字串

  描述：（必要） Windows Server 執行 2008 R2、2012 R2、2016 或 2019 的 EC2 執行個體。
+ KeepPreUpgradeImageBackUp

  類型：字串

  描述：（選用） 如果設定 True，自動化不會刪除升級前從 EC2 執行個體建立的 AMI。如果設為 True，則您必須刪除 AMI。AMI 預設為刪除。
+ SubnetId

  類型：字串

  描述：（必要） 這是升級程序的子網路，也是來源 EC2 執行個體所在的子網路。確認子網路具有對 AWS 服務、Amazon S3 和 Microsoft 的傳出連線 （以下載修補程式）。
+ TargetWindowsVersion

  類型：字串

  描述：(必要) 選取目標 Windows 版本。

  預設：2022
+ RebootInstanceBeforeTakingImage

  類型：字串

  描述：(選用) 如果設為 True，則自動化在建立預先升級的 AMI 之前會重新開機執行個體。根據預設，自動化在升級之前不會重新開機。

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

**Description**

升級和修補連接到任何負載平衡器 （傳統、ALB 或 NLB) 的 Amazon 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 Server 的 EC2 執行個體上使用 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-win.html)。

**參數**
+ **InstanceId**

  類型：字串

  描述：（必要） 要修補與負載平衡器 （傳統、ALB 或 NLB) 相關聯的執行個體 ID。
+ **ConnectionDrainTime**

  類型：字串

  描述：（選用） 負載平衡器的連線耗盡時間，以分鐘為單位 (`1`-`59`)。
+ **S3BucketLog**

  類型：字串

  描述：（選用） 用來存放命令輸出回應的 Amazon S3 儲存貯體名稱。您可以指定您擁有的儲存貯體或與您共用的儲存貯體。如果您提供此參數，您還必須提供 ** runCommandAssumeRole**。
+ **runCommandAssumeRole**

  類型：字串

  描述：（選用） 用於在執行個體上執行命令的 IAM 角色 ARN。該角色必須和服務`ssm.amazonaws.com`主體具有信任關係，必須連接 **AmazonSSMManagedInstanceCore** 政策，且必須具有為 **S3BucketLog** 指定的 Amazon S3 儲存貯體的寫入許可。

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

**Description**

`AWSEC2-SQLServerDBRestore` Runbook 會將存放在 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)。

**重要**  
此 Runbook 會在每次自動化執行時重設 SQL Server 伺服器管理員 (SA) 使用者密碼。自動化完成後，您必須先再次設定自己的 SA 使用者密碼，才能連線至 SQL Server 執行個體。

[執行此自動化 （主控台）](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 執行個體必須是執行 Microsoft SQL Server 2017 的 Linux 執行個體。
  + 您提供的 EC2 執行個體必須使用已連接 `AmazonSSMManagedInstanceCore`受管政策的 AWS Identity and Access Management (IAM) 執行個體描述檔進行設定。如需詳細資訊，請參閱[建立 Systems Manager 的 IAM 執行個體設定檔](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html)。
  + SSM Agent 必須安裝在 EC2 執行個體上。如需詳細資訊，請參閱[在適用於 Linux 的 EC2 執行個體上安裝和設定 SSM Agent](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 相容的資料庫備份。如需詳細資訊，請參閱 [SQL Server 2017 在 Linux 上的版本和支援的功能](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-editions-and-components-2017?view=sql-server-2017)。

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

此自動化具有下列參數：
+ **DatabaseNames**

  類型：字串

  描述：(選用) 要還原之資料庫的名稱逗號分隔清單。
+ **DataDirectorySize**

  類型：字串

  描述：(選用) SQL Server Data 目錄在新 EC2 執行個體上所需的磁碟區大小 (GiB)。

  預設值：100
+ **KeyPair**

  類型：字串

  描述：(選用) 建立新 EC2 執行個體時要使用的鍵組。
+ **IamInstanceProfileName**

  類型：字串

  描述：（選用） 要連接到新 EC2 執行個體的 IAM 執行個體描述檔。IAM 執行個體描述檔必須連接 `AmazonSSMManagedInstanceCore`受管政策。
+ **InstanceId**

  類型：字串

  描述：(選用) 在 Linux 上執行 SQL Server 2017 的執行個體。如果未提供 InstanceId，自動化將使用提供的 InstanceType 和 SQLServerEdition 啟動新的 EC2 執行個體。
+ **InstanceType**

  類型：字串

  描述：(選用) 要啟動之 EC2 執行個體的執行個體類型。
+ **IsS3PresignedUrl**

  類型：字串

  描述：（選用） 如果 S3Input 是預先簽章的 S3 URL，請指出 `yes`。

  預設值：否

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

  類型：字串

  描述：(選用) SQL Server Log 目錄在新 EC2 執行個體上所需的磁碟區大小 (GiB)。

  預設值：100
+ **S3Input**

  類型：字串

  描述：(必要) S3 儲存貯體名稱、S3 物件金鑰的逗號分隔清單，或包含要還原之 SQL 備份檔案的預先簽章 S3 URL 逗號分隔清單。
+ **SQLServerEdition**

  類型：字串

  描述：(選用) 要在新建立的 EC2 執行個體上安裝的 SQL Server 2017 版本。

  有效值：標準 \$1 企業 \$1 Web \$1 Express
+ **SubnetId**

  類型：字串

  描述：(選用) 要啟動新 EC2 執行個體的子網路。子網路必須具有 AWS 服務的傳出連線。如果未提供 SubnetId 的值，自動化將使用預設子網路。
+ **TempDbDirectorySize**

  類型：字串

  描述：(選用) SQL Server TempDB 目錄在新 EC2 執行個體上所需的磁碟區大小 (GiB)。

  預設值：100

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

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

------
#### [ 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 Agent。

1. `aws:runCommand` - 在 PowerShell 中執行 SQL Server 還原指令碼。

**對於現有的 EC2 執行個體：**

1. `aws:waitForAwsResourceProperty` - 確認 EC2 執行個體已就緒。

1. `aws:executeAwsApi` - 如果執行個體尚未就緒，請重新啟動執行個體。

1. `aws:assertAwsResourceProperty` - 確認已安裝 SSM Agent。

1. `aws:runCommand` - 在 PowerShell 中執行 SQL Server 還原指令碼。

**輸出**

getInstance.InstanceId

restoreToNewInstance.Output

restoreToExistingInstance.Output

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

 **Description** 

`AWSSupport-ActivateWindowsWithAmazonLicense` Runbook Windows Server會使用 Amazon 提供的授權來啟用 的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。自動化會驗證並設定必要的金鑰管理服務作業系統設定，並嘗試啟用。這包括 Amazon 金鑰管理伺服器的作業系統路由，以及金鑰管理服務作業系統設定。將 `AllowOffline` 參數設定為 `true` 可讓自動化成功鎖定不受 管理的執行個體 AWS Systems Manager，但需要停止和啟動執行個體。

**注意**  
此 Runbook 不能用於自攜授權 (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

  描述：（選用） `true` 如果您允許離線 Windows 啟用修復，以防線上故障診斷失敗，或提供的執行個體不是受管執行個體，請將其設定為 。
**重要**  
離線方法需要所提供的 EC2 執行個體先停止再啟動。存放在執行個體存放磁碟區的資料會遺失。如果您不是使用彈性 IP，則公有 IP 位址會變更。
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ ForceActivation

  類型：字串

  有效值：true \$1 false

  預設：false

  描述：（選用） `true` 如果您想要繼續，即使 Windows 已啟用，也請將其設定為 。
+ InstanceId

  類型：字串

  描述：(必要) 您的受管 Windows Server EC2 執行個體的 ID。
+ SubnetId

  類型：字串

  預設：CreateNewVPC

  描述：(選用) 僅限離線 - 用於執行離線疑難排解的 EC2Rescue 執行個體之子網路 ID。使用 `SelectedInstanceSubnet`來使用與執行個體相同的子網路，或使用 `CreateNewVPC` 來建立新的 VPC。重要：子網路必須與 InstanceId 位於相同的可用區域，且必須允許存取 SSM 端點。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

我們建議接收命令的 EC2 執行個體具有連接 **AmazonSSMManagedInstanceCore** Amazon 受管政策的 IAM 角色。您必須擁有至少 **ssm：StartAutomationExecution** 和 **ssm：SendCommand** 才能執行自動化並將命令傳送至執行個體，以及 **ssm：GetAutomationExecution**，才能讀取自動化輸出。如需離線修復，請參閱 所需的許可`AWSSupport-StartEC2RescueWorkflow`。

 **文件步驟** 

1. `aws:assertAwsResourceProperty` - 檢查提供的執行個體平台是 Windows。

1. `aws:assertAwsResourceProperty` - 確認提供的執行個體是受管執行個體：

   1. （線上啟用修正） 如果輸入執行個體是受管執行個體，則執行 `aws:runCommand` 以執行 PowerShell 指令碼，嘗試修正 Windows 啟用。

   1. (離線啟用修正) 如果輸入執行個體不是受管執行個體：

      1. `aws:assertAwsResourceProperty` - 確認`AllowOffline`旗標設定為 `true`。如果是這樣，離線修正會開始，否則自動化會結束。

      1. `aws:executeAutomation` - `AWSSupport-StartEC2RescueWorkflow`使用 Windows 啟用離線修正指令碼叫用 。指令碼使用 EC2Config 或 EC2Launch，取決於作業系統版本。

      1. `aws:executeAwsApi` - 從 讀取結果`AWSSupport-StartEC2RescueWorkflow`。

 **輸出** 

activateWindows.Output

getActivateWindowsOfflineResult.Output

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

 **Description** 

`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2` Runbook 會分析從 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體或彈性網路介面到 AWS 服務 端點的連線能力。不支援 IPv6。Runbook 會使用您為 `ServiceEndpoint` 參數指定的值來分析對端點的連線。如果在 VPC 中找不到 AWS PrivateLink 端點，則 Runbook 會使用目前 服務公有 IP 地址 AWS 區域。此自動化使用來自 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 服務 中是否存在 AWS PrivateLink 端點。如果找到端點，自動化會驗證`privateDns`屬性是否已開啟。
+ 檢查 AWS PrivateLink 端點是否使用預設端點政策。

 **考量** 
+ 每個來源和目的地之間的分析執行都會向您收取費用。如需詳細資訊，請參閱 [Amazon VPC 定價](https://aws.amazon.com/vpc/pricing/)。
+ 在自動化期間，會建立網路洞見路徑和網路洞見分析。如果自動化成功完成，執行手冊會刪除這些資源 。如果清除步驟失敗，則 Runbook 不會刪除網路洞見路徑，您將需要手動將其刪除。如果您不手動刪除網路洞見路徑，它會繼續計入您 的配額 AWS 帳戶。如需 Reachability Analyzer 配額的詳細資訊，請參閱 [Reachability Analyzer 中的 Reachability Analyzer 配額](https://docs.aws.amazon.com//vpc/latest/reachability/reachability-analyzer-limits.html)。 **
+ 即使 Reachability Analyzer 傳回 ，使用代理、本機 DNS 解析程式或主機檔案等作業系統層級組態也可能會影響連線能力`PASS`。
+ 檢閱 Reachability Analyzer 執行之所有檢查的評估。如果有任何檢查傳回狀態為 `FAIL`，即使整體連線能力檢查傳回狀態為 ，這可能會影響連線能力`PASS`。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ 來源

  類型：字串

  描述：（必要） 您要分析連線能力的 Amazon EC2 執行個體或網路界面 ID。
+ ServiceEndpoint

  類型：字串

  描述：（必要） 您要分析連線能力的服務端點主機名稱。
+ RetainVpcReachabilityAnalysis

  類型：字串

  預設：false

  描述：（選用） 判斷是否保留網路洞見路徑和建立的相關分析。根據預設，用於分析連線能力的資源會在成功分析後刪除。如果您選擇保留分析，則 Runbook 不會刪除分析，而且您可以在 Amazon VPC 主控台中將其視覺化。主控台連結可在自動化輸出中使用。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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>

 **Description** 

Runbook `AWSPremiumSupport-ChangeInstanceTypeIntelToAMD`會自動從 Intel 支援的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體遷移至同等 AMD 支援的執行個體類型。此 Runbook 支援在 Nitro 系統上建置的一般用途 (M)、爆量一般用途 (T)、運算最佳化 (C) 和記憶體最佳化 (R) 執行個體。此 Runbook 可用於非由 Systems Manager 管理的執行個體。

為了降低資料遺失和停機的潛在風險， Runbook 會檢查執行個體的停止行為、執行個體是否在 Amazon EC2 Auto Scaling 群組中、執行個體的運作狀態，以及相同可用區域中是否提供同等 AMD 支援的執行個體類型。根據預設，如果連接執行個體存放區磁碟區，或執行個體是 AWS CloudFormation 堆疊的一部分，此 Runbook 不會變更執行個體類型。如果您想要變更此行為，請`yes`為 `AllowInstanceStoreInstances`和 `AllowCloudFormationInstances` 參數指定 。

**重要**  
存取 `AWSPremiumSupport-*` Runbook 需要 Business \$1 Support、Enterprise Support 或 Unified Operations Subscription。如需詳細資訊，請參閱[比較 AWS 支援 計劃](https://aws.amazon.com/premiumsupport/plans/)。

 **考量** 
+ 建議您先備份執行個體，再使用此 Runbook。
+ 變更執行個體類型需要 Runbook 來停止您的執行個體。當執行個體停止時，存放在 RAM 或執行個體存放區磁碟區中的任何資料都會遺失，並會釋出自動公有 IPv4 地址。如需詳細資訊，請參閱[停止和啟動執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)。
+ 如果您未指定 `TargetInstanceType` 參數的值，則 Runbook 會嘗試識別相同執行個體系列中虛擬 CPUs和記憶體的同等 AMD 執行個體。如果 Runbook 無法識別同等的 AMD 執行個體類型，則 Runbook 會結束。
+ 透過使用 `DryRun`選項，您可以擷取同等的 AMD 執行個體類型，並驗證需求，而無需實際變更執行個體類型。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ 確認

  類型：字串

  描述：（必要） 輸入 `yes` 以確認您的目標執行個體將在執行時停止。
+ InstanceId

  類型：字串

  描述：（必要） 您要變更其類型的 Amazon EC2 執行個體 ID。
+ TargetInstanceType

  類型：字串

  預設：自動

  描述：（選用） 您要變更執行個體的 AMD 執行個體類型。`automatic` 預設值使用虛擬 CPUs 和記憶體的同等執行個體類型。例如，m5.large 會變更為 m5a.large。
+ AllowInstanceStoreInstances

  類型：字串

  有效值：否 \$1 是

  預設：否

  描述：（選用） 如果您指定 `yes`，則 Runbook 會在已連接執行個體存放磁碟區的執行個體上執行。
+ AllowCloudFormationInstances

  類型：字串

  有效值：否 \$1 是

  預設：否

  描述：（選用） 如果設定為 `yes`，則 Runbook 會在屬於 CloudFormation 堆疊的執行個體上執行。
+ AllowCrossGeneration

  類型：字串

  有效值：否 \$1 是

  預設：否

  描述：（選用） 如果設定為 `yes`，則 Runbook 會嘗試尋找相同執行個體系列中最新的同等 AMD 執行個體類型。
+ DryRun

  類型：字串

  有效值：否 \$1 是

  預設：否

  描述：（選用） 如果設定為 `yes`，則 Runbook 會傳回同等的 AMD 執行個體類型，並驗證遷移需求，而不會變更執行個體類型。
+ SleepWait

  類型：字串

  預設：PT3S

  描述：（選用） Runbook 在啟動新的自動化之前應等待的時間。您為此參數提供的值必須符合 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` 參數需要下列動作才能成功使用 Runbook。
+  `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`、`stopped`、 `pending`或 `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`：確認此 Runbook 只有一個自動化目標為目前的執行個體。如果另一個自動化已在以相同執行個體為目標進行，則會傳回錯誤並結束。

1. `aws:executeAwsApi`：傳回具有相同記憶體和 vCPUs 數量的 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`：在結束 Runbook 之前等待。

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

 **Description** 

`AWSSupport-CheckXenToNitroMigrationRequirements` Runbook 會驗證 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體是否符合將執行個體類型從 Xen 類型執行個體成功變更為 Nitro 型執行個體類型的先決條件。此自動化會檢查下列項目：
+ 根裝置是 Amazon Elastic Block Store (Amazon EBS) 磁碟區。
+ `enaSupport` 屬性已啟用。
+ ENA 模組安裝在執行個體上。
+ NVMe 模組安裝在執行個體上。如果是，則已安裝模組，且指令碼會驗證模組是否已載入`initramfs`映像中。
+ 使用裝置名稱來分析`/etc/fstab`和尋找要掛載的區塊型裝置。
+ 根據預設，決定作業系統 (OS) 是否使用可預測的網路介面名稱。

此 Runbook 支援下列作業系統：
+ Red Hat Enterprise Linux
+ CentOS
+ Amazon Linux 2
+ Amazon Linux
+ Debian Server
+ 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  預設：false

  描述：（必要） 在遷移至 Nitro 型執行個體類型之前，您要檢查其先決條件的 Amazon EC2 執行個體 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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` - 收集執行個體 Hypervisor 的相關資訊。
+ `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>

 **Description** 

**AWSSupport-CloneXenEC2InstanceAndMigrateToNitro** Runbook 複製、準備和遷移複製的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體，目前正在 Amazon EC2 Xen 平台上執行，以在 [Amazon 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 地址將會變更。

**重要**  
**免責聲明**：執行此 Runbook 可能會對您的帳戶產生 Amazon EC2 執行個體、Amazon EBS 磁碟區和 的額外費用AMI。如需詳細資訊，請參閱 [Amazon EC2 定價](https://aws.amazon.com/ec2/pricing/)和 [Amazon EBS 定價](https://aws.amazon.com/ebs/pricing/)。

**重要**  
 **先決條件**   
目標 Amazon EC2 執行個體需要對儲存庫的傳出存取權，才能視需要`unzip`使用套件管理員安裝驅動程式和相依性，例如 `kernel-devel`、`gcc`、`linux-headers`、、`make`、`patch``rpm-build``wget``dracut`、 和 。

 **支援的作業系統** 
+ Red Hat Enterprise Linux (RHEL) 8 和 9
+ Amazon Linux 2 和 AL2023
+ Ubuntu Server 18.04 LTS、20.04 和 22.04
+ Debian 11 和 12 （僅限AWS 分割區）
+ SUSE12SP5 和 SUSE15SP(5，6)

 **如何運作？** 

Runbook 會執行下列高階步驟：
+ 驗證先決條件並檢查執行個體是否適合遷移。
+ 建立和測試 AMI，以確保遷移成功。
+ 啟用增強型聯網 (ENA) 屬性並安裝最新的 ENA 驅動程式。
+ 驗證和設定 initramfs 中的 NVMe 模組。
+ 分析和修改 /etc/fstab，以將裝置名稱取代為 UUIDs。
+ 停用可預測界面命名並移除持久性網路規則。
+ 將複製的執行個體類型變更為所需的 Nitro 類型。
+ 建立可用於啟動 Nitro AMI 執行個體的 Golden Image 的最終版本。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CloneXenEC2InstanceAndMigrateToNitro/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CloneXenEC2InstanceAndMigrateToNitro/description)中導覽至 。

1. 選取 **`Execute automation`**。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 AWS Identity and Access Management (IAM) 角色 ARN。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`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 （必要）：**
     + 描述：（必要） 提供 Amazon 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`，則 Runbook 會在已連接執行個體存放磁碟區的執行個體上執行。**警告：**執行個體停止時，執行個體儲存體磁碟區中的資料會遺失。此參數有助於避免意外的資料遺失。
     + 類型：`Boolean`
     + 允許的值： `[yes, no]`
     + 預設：`no`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **`checkConcurrency`**:

     確保只有一個針對目前 Amazon EC2 執行個體的 Runbook 執行。
   + **`getTargetInstanceProperties`**:

     擷取目標 Amazon EC2 執行個體的詳細資訊。
   + **`checkIfNitroInstanceTypeIsSupportedInAZ`**:

     決定是否在與目標 Amazon EC2 執行個體相同的可用區域中支援目標 Nitro 執行個體類型。
   + **`createTestImage`**:

     AMI 從提供的執行個體建立測試。
   + **`launchTestInstanceInSameSubnet`**:

     AMI 使用與目標 Amazon EC2 執行個體相同的組態，從測試啟動測試 Amazon EC2 執行個體。
   + **`approvalToStopTargetInstance`**:

     等待指定的委託人核准以停止目標執行個體。
   + **`createBackupImage`**:

     AMI 從提供的執行個體建立 以進行備份。
   + **`launchInstanceInSameSubnet`**:

     AMI 使用與來源 Amazon EC2 執行個體相同的組態，從備份啟動新的 Amazon EC2 執行個體。
   + **`checkAndInstallENADrivers`**:

     決定增強型網路轉接器 (ENA) 驅動程式在 Amazon EC2 執行個體上的可用性，如果遺失，則安裝 。
   + **`checkAndAddNVMEDrivers`**:

     確定複製的 Amazon EC2 執行個體上 NVMe 驅動程式的可用性，如果遺失，則安裝 。
   + **`checkAndModifyFSTABEntries`**:

     決定是否在 中使用裝置名稱，如果找到，則會將其`/etc/fstab`取代為其 UUIDs。
   + **`setNitroInstanceTypeForClonedInstance`**:

     為複製的 Amazon 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)
+ [支援自動化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

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

 **Description** 

此 Runbook 可協助您設定 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的執行個體中繼資料服務 (IMDS) 選項。使用此 Runbook，您可以設定下列項目：
+ 強制執行 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ EnforceIMDSv2

  類型：字串

  有效值：必要 \$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)。 *Amazon EC2 *
+ HttpPutResponseHopLimit

  類型：整數

  有效值：0-64

  預設：0

  描述：（選用） 執行個體中繼資料請求所需的 HTTP PUT 回應跳轉限制值 (1-64)。此值控制 PUT 回應可以周遊的躍點數量。若要防止回應在執行個體之外移動，`1`請為 參數值指定 。
+ InstanceId

  類型：字串

  描述：（必要） 您要設定其中繼資料設定的 Amazon EC2 執行個體 ID。
+ MetadataAccess

  類型：字串

  有效值：已啟用 \$1 已停用

  預設：啟用

  描述：（選用） 允許或拒絕 Amazon EC2 執行個體中的執行個體中繼資料存取。如果您指定 `disabled`，則會忽略所有其他參數，並拒絕執行個體的中繼資料存取。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:DescribeInstances`
+ `ec2:ModifyInstanceMetadataOptions`
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`

 **文件步驟** 

1. branchOnMetadataAccess - 根據 `MetadataAccess` 參數的值分支自動化。

1. disableMetadataAccess - 呼叫 ModifyInstanceMetadataOptions API 動作以停用中繼資料端點存取。

1. branchOnHttpPutResponseHopLimit - 根據`HttpPutResponseHopLimit`參數值分支自動化。

1. maintainHopLimitAndConfigureImdsVersion - 如果 `HttpPutResponseHopLimit`為 0，則維持目前的跳轉限制並變更其他中繼資料選項。

1. waitBeforeAssertingIMDSv2State - 在宣告 IMDSv2 狀態之前等待 30 秒。

1. setHopLimitAndConfigureImdsVersion - 如果 `HttpPutResponseHopLimit`大於 0，則使用指定的輸入參數設定中繼資料選項。

1. waitBeforeAssertingHopLimit - 在宣告中繼資料選項之前等待 30 秒。

1. assertHopLimit - 宣告 `HttpPutResponseHopLimit` 屬性設定為您指定的值。

1. branchVerificationOnIMDSv2Option - 根據`EnforceIMDSv2`參數值進行分支驗證。

1. assertIMDSv2IsOptional - 宣告`HttpTokens`值設定為 `optional`。

1. assertIMDSv2IsEnforced - Asserts `HttpTokens`值設定為 `required`。

1. waitBeforeAssertingMetadataState - 在宣告中繼資料狀態已停用之前等待 30 秒。

1. assertMetadataIsDisabled - Asserts 中繼資料為 `disabled`。

1. describeMetadataOptions - 套用您指定的變更後，取得中繼資料選項。

 **輸出** 

describeMetadataOptions.State

describeMetadataOptions.MetadataAccess

describeMetadataOptions.IMDSv2

describeMetadataOptions.HttpPutResponseHopLimit

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

 **Description** 

`AWSSupport-ContainEC2Instance` Runbook 為文章中概述的程序提供自動化解決方案[。遇到可能遭到入侵或可疑的情況時，如何隔離 Amazon EC2 執行個體？](https://repost.aws/articles/ARwkDzoO-8RN-SDQnA1aX-XA) 自動化分支取決於您指定的值。

 **如何運作？** 

此 Automation Runbook 透過一系列協調步驟`AWSSupport-ContainEC2Instance`執行 Amazon EC2 執行個體的網路遏制。在`Contain`模式下執行時，它會先驗證輸入參數，並檢查執行個體是否未終止。然後，它會將目前的安全群組組態備份到 Amazon S3 儲存貯體，以供稍後還原。Runbook 會建立兩個安全群組：臨時「所有存取」安全群組和最終「容器」安全群組。它會逐漸將執行個體的網路界面從其原始安全群組轉移到全存取安全群組，最後轉移到遏制安全群組。如果指定，它會建立執行個體的未加密和加密AMI備份。對於 Auto Scaling 群組中的執行個體，它會處理必要的 Auto Scaling 群組修改，並使執行個體進入待命狀態。在 `Release` 模式下執行時，它會使用來自 Amazon S3 的備份設定，將執行個體還原至其原始網路組態。Runbook 支援 `DryRun` 參數，可在不進行實際變更的情況下預覽動作，並在整個遏制和發佈工作流程中包含全面的錯誤處理和報告機制。

**重要**  
此 Runbook 會執行各種需要提升權限的操作，例如修改安全群組、建立 AMI，以及與 Auto Scaling 群組互動。這些動作可能會導致權限提升或影響您帳戶中的其他工作負載。您應該檢閱授予 `AutomationAssumeRole` 參數所指定角色的許可，並確保這些許可適用於預期的使用案例。如需 IAM 許可的詳細資訊，請參閱下列 AWS 文件：[https://docs.aws.amazon.com//IAM/latest/UserGuide/access_controlling.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_controlling.html)[https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup-iam.html](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup-iam.html)。
此 Runbook 會執行可能導致工作負載無法使用或中斷的變動動作。具體而言，它會修改與目標 Amazon EC2 執行個體相關聯的安全群組，這可能會影響網路連線。此外，如果執行個體是 Auto Scaling 群組的一部分， Runbook 可能會修改群組的組態，進而可能影響其擴展行為。
在遏制過程中，此 Runbook 會建立其他資源，例如安全群組和 AMI。雖然這些資源已加上標籤以供識別，但您應該知道它們的建立，並確保在遏制程序完成後進行適當的清除或管理。
如果 `Action` 參數設定為 `Release`，此 Runbook 會嘗試將 Amazon EC2 執行個體的組態還原為其原始狀態。不過，還原程序可能會失敗，使執行個體處於不一致的狀態。Runbook 提供在發生此類失敗時手動還原的說明，但您應該準備好在還原過程中處理潛在問題。
建議您徹底檢閱 Runbook、了解其潛在影響，並在非生產環境中進行測試，然後再在您的生產環境中執行。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ autoscaling：CreateOrUpdateTags
+ autoscaling：DeleteTags
+ autoscaling:DescribeAutoScalingGroups
+ autoscaling:DescribeAutoScalingInstances
+ autoscaling：DescribeTags
+ 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:DescribeImages
+ ec2:DescribeInstances
+ ec2：DescribeSecurityGroups
+ ec2:DescribeSnapshots
+ ec2:DescribeTags
+ ec2:ModifyNetworkInterfaceAttribute
+ ec2:RevokeSecurityGroupEgress
+ kms:創建權限
+ kms:描述金鑰
+ 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. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainEC2Instance/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainEC2Instance/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **動作 （必要）：**
     + 描述：（必要） 選取 `Contain` 以隔離 Amazon EC2 執行個體`Restore`，或嘗試從先前的備份還原 Amazon EC2 執行個體組態原始組態。
     + 類型：字串
     + 允許模式： `Contain|Restore`
   + **DryRun （選用）：**
     + 描述：（選用） 設為 時`true`，自動化不會執行任何命令，而是會報告嘗試執行的動作，詳細說明每個步驟。預設值：`true`。
     + 類型：布林值
     + 允許的值： `true|false`
   + **CreateAMIBackup （選用）：**
     + 描述：（選用） 設定為 時`true`，Amazon EC2 執行個體AMI的 會在執行遏制動作之前建立。
     + 類型：布林值
     + 允許的值： `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 （條件式）：**
     + 描述：（條件式） 在 `Action` 為 時上傳組態的 Amazon S3 儲存貯體，`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"}]`要套用至 Amazon EC2 執行個體的 Cidr、IpProtocol、FromPort 和 ToPort 格式。如果未提供任何規則，則沒有任何輸入規則的安全群組將連接到 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": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}]`要套用至 Amazon EC2 執行個體的 Cidr、IpProtocol、FromPort 和 ToPort 格式。如果未提供任何規則，則沒有任何輸出規則的安全群組將連接到 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 EC2 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.Output**

     當 `DryRun` 設定為 False 時，輸出此 Runbook 所執行之遏制動作的詳細資訊。
   + **RestoreInstanceConfiguration.Output**

     當 `DryRun` 設定為 False 時，輸出此 Runbook 執行的還原動作。
   + **ReportContain.Output**

     當 `DryRun` 設定為 True 時，輸出此 Runbook 所執行之遏制動作的詳細資訊。
   + **ReportRestore.Output**

     將 `DryRun` 設定為 True 時，輸出此 Runbook 所執行還原動作的詳細資訊。
   + **ReportContainmentFailure.Output**

     提供在遏制工作流程失敗情況下還原目標 Amazon EC2 執行個體原始組態的指示。
   + **ReportRestoreFailure.Output**

     提供在還原工作流程失敗案例期間還原目標 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)
+ [支援自動化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

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

 **Description** 

`AWSSupport-CopyEC2Instance` Runbook 為 知識中心文章中概述的程序提供自動化解決方案 [如何將 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的 ，並從 VPC 預設子網路AMI中的 啟動新的執行個體。

若要AMI將 複製到不同的區域，您必須提供 `AutomationAssumeRole` 參數的值。如果自動化在`waitForAvailableDestinationAmi`步驟期間逾時，則 AMI可能仍在複製。如果是這種情況，您可以等待複製完成，並手動啟動執行個體。

執行此自動化之前，請注意下列事項：
+ AMI是以 Amazon Elastic Block Store (Amazon EBS) 快照為基礎。對於沒有先前快照的大型檔案系統，AMI建立可能需要幾個小時。若要縮短AMI建立時間，請在建立 之前建立 Amazon EBS 快照AMI。
+ 建立 AMI不會為執行個體上的執行個體存放磁碟區建立快照。如需將執行個體存放磁碟區備份至 Amazon EBS 的資訊，請參閱[如何將 Amazon EC2 執行個體上的執行個體存放磁碟區備份至 Amazon EBS？](https://aws.amazon.com/premiumsupport/knowledge-center/back-up-instance-store-ebs/)
+ 新的 Amazon EC2 執行個體具有不同的私有 IPv4 或公有 IPv6 IP 地址。您必須使用指派給新執行個體的新 IP 地址，更新舊 IP 地址 （例如，在 DNS 項目中） 的所有參考。如果您在來源執行個體上使用彈性 IP 地址，請務必將其連接至新的執行個體。
+ 當複製啟動並嘗試聯絡網域時，可能會發生網域安全識別符 (SID) 衝突問題。擷取 AMI 之前，請使用 Sysprep 或從網域移除網域加入的執行個體，以防止衝突問題。如需詳細資訊，請參閱[如何使用 Sysprep 來建立和安裝自訂可重複使用AMIs？](https://aws.amazon.com/premiumsupport/knowledge-center/sysprep-create-install-ec2-windows-amis/)

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

**重要**  
我們不建議使用此 Runbook 複製 Microsoft Active Directory 網域控制站執行個體。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ 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` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:CreateImage`
+ `ec2:DeleteSnapshot`
+ `ec2:DeregisterImage`
+ `ec2:DescribeInstances`
+ `ec2:DescribeImages`
+ `ec2:RunInstances`

如果您要將執行個體複製到不同的區域，您也需要下列許可。
+ `ec2:CopyImage`

 **文件步驟** 
+ describeOriginalInstanceDetails - 從要複製的執行個體收集詳細資訊。
+ assertRootVolumeIsEbs - 檢查根磁碟區裝置類型是否為 `ebs`，如果不是，則結束自動化。
+ evalInputParameters - 評估為輸入參數提供的值。
+ createLocalAmi - 建立來源執行個體AMI的 。
+ tagLocalAmi - 標記在上一個步驟中AMI建立的 。
+ branchAssertRegionIsSame - 根據執行個體是在相同區域還是複製到不同區域而建立的分支。
+ branchAssertSameRegionWithKeyPair - 根據是否為相同區域內複製之執行個體的 `KeyPair` 參數提供值而進行分支。
+ sameRegionLaunchInstanceWithKeyPair - 使用您指定的金鑰對，從相同子網路或您指定的子網路中的來源執行個體AMI的 啟動 Amazon EC2 執行個體。
+ sameRegionLaunchInstanceWithoutKeyPair - 從相同子網路或您指定的子網路中的來源執行個體AMI的 啟動 Amazon EC2 執行個體，而不需要金鑰對。
+ copyAmiToRegion - AMI將 複製到目的地區域。
+ waitForAvailableDestinationAmi - 等待複製AMI的狀態變成 `available`。
+ destinationRegionLaunchInstance - 使用複製的 啟動 Amazon EC2 執行個體AMI。
+ branchAssertDestinationAmiToDelete - 根據您為 `KeepImageDestinationRegion` 參數提供的值來分支。
+ deregisterDestinationAmiAndDeleteSnapshots - 取消註冊複製的 AMI並刪除相關聯的快照。
+ branchAssertSourceAmiTodelete - 根據您為 `KeepImageSourceRegion` 參數提供的值來分支。
+ deregisterSourceAmiAndDeleteSnapshots - 從來源執行個體取消註冊AMI建立的 ，並刪除相關聯的快照。
+ sleep - 將自動化休眠 2 秒。這是終端機步驟。

 **輸出** 

sameRegionLaunchInstanceWithKeyPair.InstanceIds

sameRegionLaunchInstanceWithoutKeyPair.InstanceIds

destinationRegionLaunchInstance.DestinationInstanceId

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

 **Description** 

**AWSPremiumSupport-DiagnoseDiskUsageOnLinux** Runbook 會分析目標 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的 Amazon Elastic Block Store (Amazon EBS) 磁碟區，以判斷是否需要擴充。它會根據 Runbook 輸入參數中定義的閾值，檢查每個磁碟區的用量、檔案系統類型和擴展歷史記錄。指令碼會考慮最近修改、支援的檔案系統和 AWS 磁碟區限制等因素。然後，它會輸出任何適合擴展的磁碟區，以及每個磁碟區的相關詳細資訊。

 **如何運作？** 

此 Runbook 會執行下列操作：
+ 驗證目標執行個體是由 Systems Manager 管理且未執行 Windows
+ 擷取執行個體詳細資訊，包括平台和根裝置類型
+ 擷取 Amazon EC2 執行個體使用的磁碟區
+ 在 Linux 上執行預先檢查，以分析磁碟用量並判斷擴展候選項目
+ 使用相關詳細資訊輸出適合擴展的磁碟區

**重要**  
存取 `AWSPremiumSupport-*` Runbook 需要 Business \$1 Support、Enterprise Support 或 Unified Operations Subscription。如需詳細資訊，請參閱[比較 AWS 支援 計劃](https://aws.amazon.com/premiumsupport/plans/)。

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

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ 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. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-DiagnoseDiskUsageOnLinux/description](https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-DiagnoseDiskUsageOnLinux/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 IAM 角色的 Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`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)
+ [支援自動化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

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

 **Description** 

 Runbook `AWSSupport-EnableWindowsEC2SerialConsole`可協助您在 Amazon EC2 Windows 執行個體上啟用 Amazon EC2 序列主控台、特殊管理員主控台 (SAC) 和開機選單。透過 Amazon Elastic Compute Cloud (Amazon EC2) 序列主控台功能，您可以存取 Amazon EC2 執行個體的序列連接埠，以疑難排解開機、網路組態和其他問題。Runbook 會自動在執行中狀態且由 管理的執行個體上啟用 功能 AWS Systems Manager，以及處於已停止狀態或未由 管理的執行個體上啟用 功能所需的步驟 AWS Systems Manager。

 **如何運作？** 

 `AWSSupport-EnableWindowsEC2SerialConsole` 自動化 Runbook 有助於在執行 Microsoft Windows Server 的 Amazon EC2 執行個體上啟用 SAC 和開機選單。對於處於執行狀態且由 管理的執行個體 AWS Systems Manager， Runbook 會執行 AWS Systems Manager Run Command PowerShell 指令碼，以啟用 SAC 和開機功能表。對於處於已停止狀態或未受 管理的執行個體 AWS Systems Manager， Runbook 會使用 [AWSSupport-StartEC2RescueWorkflow](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` 參數需要下列動作才能成功使用 Runbook。

------
#### [ 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：（必要）**

     您要啟用 Amazon EC2 序列主控台、 (SAC) 和開機選單的 Amazon EC2 執行個體 ID。
   + **AutomationAssumeRole：（選用）**

     IAM 角色的 Amazon Resource Name (ARN)，可讓 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **HelperInstanceType：（條件式）**

     Runbook 為離線執行個體設定 Amazon EC2 序列主控台所佈建的 Amazon EC2 執行個體類型。
   + **HelperInstanceProfileName： （條件式）**

     協助程式執行個體的現有 IAM 執行個體描述檔名稱。如果您在處於停止狀態或未受 管理的執行個體上啟用 SAC 和開機功能表 AWS Systems Manager，這是必要的。如果未指定 IAM 執行個體描述檔，自動化會代表您建立一個。
   + **SubnetId：（條件式）**

     協助程式執行個體的子網路 ID。根據預設，它會使用所提供執行個體所在的相同子網路。
**重要**  
 如果您提供自訂子網路，它必須位於與 InstanceId 相同的可用區域，而且必須允許存取 Systems Manager 端點。只有在目標執行個體處於停止狀態或不受 管理時，才需要這樣做 AWS Systems Manager。
   + **CreateInstanceBackupBeforeScriptExecution：（選用）**

     指定 True 以建立 Amazon EC2 執行個體的 Amazon Machine Image (AMI) 備份，然後再啟用 SAC 和開機功能表。自動化完成之後，AMI 會持續存在。您有責任保護對 AMI 的存取或刪除它。
   + **BackupAmazonMachineImagePrefix： （條件式）**

     如果 `CreateInstanceBackupBeforeScriptExecution` 參數設定為 ，則會建立 Amazon Machine Image (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：****

     檢查執行個體類型 Hypervisor 是否為 Nitro 型。只有建置在 Nitro 系統的虛擬化執行個體才支援序列主控台存取。
   + **CheckIfInstanceIsInAutoScalingGroup：**

     呼叫 `DescribeAutoScalingInstances` API 來檢查 Amazon EC2 執行個體是否為 Amazon EC2 Auto Scaling 群組的一部分。如果執行個體是 Amazon EC2 Auto Scaling 群組的一部分，它會確保 .NET 執行個體的移植助理處於待命生命週期狀態。
   + **WaitForEc2InstanceStateStablized：**

     等待執行個體處於執行中或停止狀態。
   + **GetEc2InstanceState：**

     取得執行個體的目前狀態。
   + **BranchOnEc2InstanceState：**

     根據上一個步驟中擷取的執行個體狀態進行分支。如果執行個體狀態正在執行，則會前往 `CheckIfEc2InstanceIsManagedBySSM` 步驟，如果沒有，則會前往 `CheckIfHelperInstanceProfileIsProvided` 步驟。
   + **CheckIfEc2InstanceIsManagedBySSM：**

     檢查執行個體是否由 管理 AWS Systems Manager。如果受管，則 Runbook 會使用 PowerShell Run Command 啟用 SAC 和開機功能表。
   + **BranchOnPreEC2RescueBackup：**

     以`CreateInstanceBackupBeforeScriptExecution`輸入參數為基礎的分支。
   + **CreateAmazonMachineImageBackup：**

     建立執行個體的 AMI 備份。
   + **EnableSACAndBootMenu：**

     執行 PowerShell Run Command 指令碼來啟用 SAC 和開機功能表。
   + **RebootInstance：**

     重新啟動 Amazon EC2 執行個體以套用組態。如果執行個體在線上並由 管理，這是最後一個步驟 AWS Systems Manager。
   + **CheckIfHelperInstanceProfileIsProvided：**

     使用暫時 Amazon EC2 執行個體啟用 SAC 和離線開機功能表之前，檢查`HelperInstanceProfileName`指定的 是否存在。
   + **RunAutomationToInjectOfflineScriptForEnablingSACAndBootMenu：**

     當執行個體處於停止狀態或未由 管理時，執行 `AWSSupport-StartEC2RescueWorkflow` 以啟用 SAC 和開機功能表 AWS Systems Manager。
   + **GetExecutionDetails：**

     擷取備份和離線指令碼輸出的影像 ID。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：
   + **EnableSACAndBootMenu.Output:**

     `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>

 **Description** 

`AWSPremiumSupport-ExtendVolumesOnWindows` Runbook 會在目標 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上擴展 Amazon Elastic Block Store (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)。此 Runbook 建立的備份 AMI 和相關聯的快照，會根據其大小和保留時間長度而產生額外費用。對於某些磁碟區類型，如果您在擴展後需要維持相同的每 GB IOPS 比率，您可能需要修改佈建的 IOPS。
**備份與復原**：執行手冊會先建立備份 AMI，再對磁碟區進行任何變更。AMI 和相關聯的快照不會自動從您的帳戶中移除。如果不再需要，您應該手動移除這些備份。如果失敗，可以從相關聯 AMI 的快照復原磁碟區，如[使用快照取代 Amazon EBS 磁碟區](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ebs-restoring-volume.html)中所述。

 **如何運作？** 

此 Runbook 會執行下列操作：
+ 驗證目標執行個體是由 Systems Manager 管理，且正在執行 Windows Server
+ 確保只有一個針對目前 Amazon EC2 執行個體的 Runbook 執行
+ 從目標執行個體建立備份 Amazon Machine Image (AMI)
+ 擴展指定用於擴展的 Amazon EBS 磁碟區
+ 使用 PowerShell 命令擴展目標執行個體上的檔案系統

**重要**  
存取 `AWSPremiumSupport-*` Runbook 需要 Business \$1 Support、Enterprise Support 或 Unified Operations Subscription。如需詳細資訊，請參閱[比較 AWS 支援 計劃](https://aws.amazon.com/premiumsupport/plans/)。

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

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-ExtendVolumesOnWindows/description](https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-ExtendVolumesOnWindows/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 IAM 角色的 Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`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 Server。
   + **CheckConcurrency**：

     確保只有一個針對目前 Amazon EC2 執行個體的 Runbook 執行。
   + **CreateImage**：

     從目標執行個體建立備份 Amazon Machine Image (AMI)。
   + **WaitUntilImageReady**：

     等待 Amazon Machine Image (AMI) 完成建立並達到 `available` 狀態。
   + **ExtendEBSVolume**：

     擴展指定用於擴展之目標執行個體的 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)
+ [支援自動化工作流程](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>

 **Description** 

此 Runbook 使用 EC2Rescue工具來故障診斷，並盡可能修復 Linux 或 指定 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的常見連線問題Windows Server。不支援具有加密根磁碟區的執行個體。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ EC2RescueInstanceType

  類型：字串

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

  預設：t2.small

  描述：（必要） 執行個體的 EC2 EC2Rescue 執行個體類型。建議大小： `t2.small`
+ LogDestination

  類型：字串

  描述：（選用） 帳戶中您要上傳故障診斷日誌的 Amazon S3 儲存貯體名稱。請確認儲存貯體政策不會授予不必要的讀取/寫入許可給不需要存取所收集日誌的單位。
+ SubnetId

  類型：字串

  預設：CreateNewVPC

  描述：（選用） EC2Rescue執行個體的子網路 ID。根據預設， AWS Systems Manager Automation 會建立新的 VPC。或者，使用 `SelectedInstanceSubnet`來使用與執行個體相同的子網路，或指定自訂子網路 ID。 ``
**重要**  
子網路必須與 位於相同的可用區域`UnreachableInstanceId`，而且必須允許存取 SSM 端點。
+ UnreachableInstanceId

  類型：字串

  描述：(必要) 無法連線之 EC2 執行個體的 ID。
**重要**  
Systems Manager Automation 會停止此執行個體，並在嘗試任何操作之前建立 AMI。存放在執行個體存放磁碟區的資料會遺失。如果您不使用彈性 IP 地址，公有 IP 地址將會變更。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

您必須至少具有 `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`使用Windows Server離線指令碼的 EC2Rescue 調用 。

      1. `aws:executeAwsApi` - 從巢狀自動化擷取備份 AMI ID。

      1. `aws:executeAwsApi` - 從巢狀自動化擷取 EC2Rescue 摘要。

   1. (EC2Rescue for Linux) 如果提供的執行個體是 Linux 執行個體：

      1. `aws:executeAutomation` - `AWSSupport-StartEC2RescueWorkflow`使用適用於 Linux 的 EC2Rescue 離線指令碼調用

      1. `aws:executeAwsApi` - 從巢狀自動化擷取備份 AMI ID。

      1. `aws:executeAwsApi` - 從巢狀自動化擷取 EC2Rescue 摘要。

 **輸出** 

`getEC2RescueForWindowsResult.Output`

`getWindowsBackupAmi.ImageId`

`getEC2RescueForLinuxResult.Output`

`getLinuxBackupAmi.ImageId`

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

 **Description** 

`AWSSupport-ListEC2Resources` Runbook 會從 AWS 區域 您指定的 傳回 Amazon EC2 執行個體和相關資源的相關資訊，例如 Amazon Elastic Block Store (Amazon EBS) 磁碟區、彈性 IP 地址和 Amazon EC2 Auto Scaling 群組。根據預設，資訊會從所有區域收集，並顯示在自動化的輸出中。或者，您可以指定 Amazon Simple Storage Service (Amazon S3) 儲存貯體，以便將資訊上傳到 ，做為逗號分隔值 (.csv) 檔案。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ BucketName

  類型：字串

  描述：（選用） 所收集資訊上傳到的 S3 儲存貯體名稱。
+ DisplayResourceDeletionDocumentation

  類型：字串

  預設：true

  描述：（選用） 如果設定為 `true`，自動化會在輸出中建立與刪除資源相關的文件連結。
+ RegionsToQuery

  類型：字串

  預設：全部

  描述：（選用） 您要從中收集 Amazon EC2 相關資訊的區域。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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` - 列出您指定之帳戶和區域的所有 Amazon Machine Image (AMI)。
+ `aws:executeScript` - 列出您指定之帳戶和區域的所有 EBS 磁碟區。
+ `aws:executeScript` - 列出您指定之帳戶和區域的所有彈性 IP 地址。
+ `aws:executeScript` - 列出您指定之帳戶和區域的所有彈性網路介面。
+ `aws:executeScript` - 列出您指定之帳戶和區域的所有 Auto Scaling 群組。
+ `aws:executeScript` - 列出您指定之帳戶和區域的所有負載平衡器。
+ `aws:executeScript` - 如果您為 `Bucket` 參數提供值，則將收集的資訊上傳至指定的 S3 儲存貯體。

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

 **Description** 

`AWSSupport-ManageRDPSettings` Runbook 允許使用者管理常見的遠端桌面通訊協定 (RDP) 設定，例如 RDP 連接埠和網路層身分驗證 (NLA)。根據預設，執行手冊會讀取和輸出設定的值。

**重要**  
執行此 Runbook 之前，應仔細檢閱 RDP 設定的變更。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：(必要) 管理 RDP 設定的受管執行個體之 ID。
+ NLASettingAction

  類型：字串

  有效值：檢查 \$1 啟用 \$1 停用

  預設：Check

  描述：(必要) 在 NLA 設定上執行的動作：Check，Enable，Disable。
+ RDPPort

  類型：字串

  預設：3389

  描述：(選用) 指定新的 RDP 連接埠。僅在動作設為 Modify 時使用。連接埠號碼必須為介於 1025 到 65535 的數字。備註：連接埠變更之後，RDP 服務會重新啟動。
+ RDPPortAction

  類型：字串

  有效值：檢查 \$1 修改

  預設：Check

  描述：（必要） 要套用至 RDP 連接埠的動作。
+ RemoteConnections

  類型：字串

  有效值：檢查 \$1 啟用 \$1 停用

  預設：Check

  描述：（必要） 在 fDenyTSConnections 設定上執行的動作。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

接收命令的 EC2 執行個體必須具備已連接 **AmazonSSMManagedInstanceCore** Amazon 受管政策的 IAM 角色。使用者必須至少具備 **ssm:SendCommand** 以傳送命令給執行個體，也要有 **ssm:GetCommandInvocation** 才能夠讀取命令輸出。

 **文件步驟** 

`aws:runCommand` - 執行 PowerShell 指令碼以變更或檢查目標執行個體上的 RDP 設定。

 **輸出** 

manageRDPSettings.Output

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

 **Description** 

`AWSSupport-ManageWindowsService` Runbook 可讓您停止、啟動、重新啟動、暫停或停用目標執行個體上的任何 Windows 服務。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：（必要） 管理 服務的受管執行個體 ID。
+ ServiceAction

  類型：字串

  有效值：檢查 \$1 重新啟動 \$1 Force-Restart \$1 開始 \$1 停止 \$1 Force-Stop \$1 暫停

  預設：Check

  描述：（必要） 要套用至 Windows 服務的動作。請注意， `Force-Restart`和 `Force-Stop`可用來重新啟動和停止具有相依服務的 服務。
+ StartupType

  類型：字串

  有效值：檢查 \$1 自動 \$1 需求 \$1 停用 \$1 DelayedAutoStart

  預設：Check

  描述：（必要） 要套用至 Windows 服務的啟動類型。
+ WindowsServiceName

  類型：字串

  描述：(必要) 有效的 Windows 服務名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

建議接收命令的 EC2 執行個體具備連接 **AmazonSSMManagedInstanceCore** Amazon 受管政策的 IAM 角色。使用者必須至少有 **ssm：StartAutomationExecution** 和 **ssm：SendCommand** 來執行自動化並將命令傳送至執行個體，加上 **ssm：GetAutomationExecution**，才能讀取自動化輸出。

 **文件步驟** 

`aws:runCommand` - 執行 PowerShell 指令碼，將所需的組態套用至目標執行個體上的 Windows 服務。

 **輸出** 

manageWindowsService.Output

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

**Description**

`AWSSupport-MigrateEC2ClassicToVPC` Runbook 會將 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體從 EC2-Classic 遷移至虛擬私有雲端 (VPC)。此 Runbook 支援使用 Amazon Elastic Block Store (Amazon EBS) 根磁碟區遷移硬體虛擬機器 (HVM) 虛擬化類型的 Amazon EC2 執行個體。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ ApproverIAM

  類型：StringList

  描述：（選用） 可以核准或拒絕動作的 IAM 使用者的 Amazon Resource Name (ARNs)。只有在您指定 參數`CutOver`的值時，才會套用此`MigrationType`參數。
+ DestinationSecurityGroupId

  類型：StringList

  描述：（選用） 您要與 VPC 中啟動的 Amazon EC2 執行個體建立關聯的安全群組 ID。如果您未指定此參數的值，自動化會在 VPC 中建立安全群組，並從 EC2-Classic 中的安全群組複製規則。如果規則無法複製到新的安全群組，則 VPC 的預設安全群組會與 Amazon EC2 執行個體相關聯。
+ DestinationSubnetId

  類型：字串

  描述：（選用） 您要遷移 Amazon EC2 執行個體的子網路 ID。如果您未指定此參數的值，自動化會從 VPC 隨機選擇子網路。
+ InstanceId

  類型：字串

  描述：（必要） 您要遷移的 Amazon EC2 執行個體 ID。
+ MigrationType

  類型：字串

  有效值：CutOver \$1 Test

  描述：（必要） 您要執行的遷移類型。

  `CutOver` 此選項需要核准，才能停止在 Amazon EC2 EC2-Classic 執行個體。核准此動作後，Amazon EC2 執行個體會停止，自動化會建立 Amazon Machine Image(AMI)。當AMI狀態為 時`available`，新的 Amazon EC2 執行個體會在`DestinationSubnetId`您在 VPC AMI中指定的 中從此啟動。如果您在 EC2-Classic 中執行的 Amazon EC2 執行個體已連接彈性 IP 地址，執行個體將移至 VPC 中新建立的 Amazon EC2 執行個體。如果 VPC 中啟動的 Amazon EC2 執行個體因任何原因無法建立，則會終止，並請求核准才能在 EC2-Classic 中啟動 Amazon EC2 執行個體。 EC2-Classic

  `Test` 選項會建立AMI在 EC2-Classic 中執行的 Amazon EC2 執行個體的 ，而不重新啟動。 EC2-Classic 由於 Amazon EC2 執行個體不會重新啟動，我們無法保證所建立映像的檔案系統完整性。當AMI狀態為 時`available`，新的 Amazon EC2 執行個體會在`DestinationSubnetId`您在 VPC 中指定的 AMI 中從此啟動。如果您在 Amazon EC2 EC2-Classic 執行個體已連接彈性 IP 地址，自動化會驗證`DestinationSubnetId`您指定的 是公有的。如果 VPC 中啟動的 Amazon EC2 執行個體因任何原因無法建立，則會終止並結束自動化。
+ SNSNotificationARNforApproval

  類型：字串

  描述：（選用） 您要傳送核准請求的 Amazon Simple Notification Service (Amazon SNS) 主題的 ARN。只有在您指定 參數`CutOver`的值時，才會套用此`MigrationType`參數。
+ TargetInstanceType

  類型：字串

  預設：t2.2xlarge

  描述：（選用） 您想要在 VPC 中啟動的 Amazon EC2 執行個體類型。僅支援以 Xen 為基礎的執行個體類型，例如 T2, M4 或 C4。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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` 參數中指定的 Amazon EC2 執行個體具有 Amazon EBS 根磁碟區。
+ `aws:executeScript` - 根據您為 `DestinationSecurityGroupId` 參數指定的值，視需要建立安全群組。
+ `aws:branch` - 根據您在 `DestinationSubnetId` 參數中指定的值進行分支。
+ `aws:executeAwsApi` - 在您執行此自動化的 AWS 區域 中識別預設 VPC。
+ `aws:executeAwsApi` - 隨機選擇位於預設 VPC 中的子網路 ID。
+ `aws:createImage` - 建立 AMI而不重新啟動 Amazon EC2 執行個體。
+ `aws:branch` - 根據您為 `MigrationType` 參數指定的值進行分支。
+ `aws:branch` - 根據您為 `DestinationSubnetId` 參數指定的值進行分支。
+ `aws:runInstances` - 從AMI建立的 啟動新的執行個體，而不重新啟動 Amazon EC2 EC2-Classic 執行個體。
+ `aws:changeInstanceState` - 如果上一個步驟因任何原因失敗，則終止新啟動的 Amazon EC2 執行個體。
+ `aws:runInstances` - 如果`DestinationSubnetId`提供 ，則從AMI建立的 啟動新的執行個體，而不在 EC2-Classic 中重新啟動 Amazon EC2 執行個體。 EC2-Classic 
+ `aws:changeInstanceState` - 如果上一個步驟因任何原因失敗，則終止新啟動的 Amazon EC2 執行個體。
+ `aws:assertAwsResourceProperty` - 確認在 Amazon EC2 EC2-Classic 執行個體的停止行為。
+ `aws:approve` - 等待核准以停止 Amazon EC2 執行個體。
+ `aws:changeInstanceState` - 停止在 Amazon EC2 EC2-Classic 執行個體。
+ `aws:changeInstanceState` - 如有需要，強制 會停止在 Amazon EC2 EC2-Classic 執行個體。
+ `aws:createImage` - 在 Amazon EC2 AMI 執行個體停止後建立 。
+ `aws:branch` - 根據 `DestinationSubnetId` 參數指定的值進行分支。
+ `aws:runInstances` - 從在 EC2-Classic 中AMI建立的已停止 Amazon EC2 執行個體啟動新執行個體。 Amazon EC2 EC2-Classic
+ `aws:approve` - 等待核准以終止新啟動的執行個體，並在上一個步驟因任何原因失敗時，在 EC2-Classic 中啟動 Amazon EC2 執行個體。 EC2-Classic 
+ `aws:changeInstanceState` - 終止新啟動的 Amazon EC2 執行個體。
+ `aws:runInstances` - 從 參數的 EC2-Classic 中AMI建立的已停止 Amazon EC2 執行個體啟動新執行個體`DestinationSubnetId`。 Amazon EC2 EC2-Classic 
+ `aws:approve` - 等待核准以終止新啟動的執行個體，並在上一個步驟因任何原因失敗時，在 EC2-Classic 中啟動 Amazon EC2 執行個體。 EC2-Classic 
+ `aws:changeInstanceState` - 終止新啟動的 Amazon EC2 執行個體。
+ `aws:changeInstanceState` - 啟動在 Amazon EC2 EC2-Classic 執行個體。
+ `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` - ECAmazon EC2 EC2-Classic 執行個體的虛擬化類型。

`getInstanceProperties.rootDeviceType` - ECAmazon EC2 EC2-Classic 執行個體的根裝置類型。

`createAMIWithoutReboot.ImageId` - 在不重新啟動在 Amazon EC2 EC2-Classic 執行個體的情況下AMI建立的 ID。

`getDefaultVPC.VpcId` - 若未提供 `DestinationSubnetId` 參數的值，則會啟動新 Amazon EC2 執行個體的預設 VPC ID。

`getSubnetIdinDefaultVPC.subnetIdFromDefaultVpc` - 預設 VPC 中的子網路 ID，如果未提供 `DestinationSubnetId` 參數的值，則會啟動新的 Amazon EC2 執行個體。



`launchTestInstanceDefaultVPC.InstanceIds` - 在`Test`遷移類型期間，在您預設 VPC 中新啟動的 Amazon EC2 執行個體 ID。

`launchTestInstanceProvidedSubnet.InstanceIds` - `DestinationSubnetId`您在`Test`遷移類型期間指定的 中新啟動的 Amazon EC2 執行個體 ID。

`createAMIAfterStoppingInstance.ImageId` - 停止在 Amazon EC2 EC2-Classic 執行個體後AMI建立的 ID。

`launchCutOverInstanceProvidedSubnet.InstanceIds` - `DestinationSubnetId`您在`CutOver`遷移類型期間指定的 中新啟動的 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>

 **Description** 

 `AWSSupport-MigrateXenToNitroLinux` Runbook 會將 Amazon Elastic Compute Cloud (Amazon EC2) Linux Xen 執行個體複製、準備和遷移至[Nitro執行個體類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)。此 Runbook 提供兩種操作類型的選項：
+ `Clone&Migrate` – 此選項的工作流程包含**初步檢查**、**測試**和**Clone&Migrate**階段。使用 `AWSSupport-CloneXenEC2InstanceAndMigrateToNitro` Runbook 執行工作流程。
+ `FullMigration` – 此選項會執行`Clone&Migrate`工作流程，然後執行**取代根 Amazon EBS 磁碟區**的額外步驟。

**重要**  
使用此 Runbook 會在 Amazon EC2 執行個體的執行時間、建立 Amazon Elastic Block Store (Amazon EBS) 磁碟區，以及 產生您的帳戶成本AMIs。如需詳細資訊，請參閱 [ Amazon EC2 定價](https://aws.amazon.com/ec2/pricing/)和 [Amazon EBS 定價](https://aws.amazon.com/ebs/pricing/)。

 **初步檢查** 

自動化會在繼續遷移之前執行下列初步檢查。如果任何檢查失敗，自動化就會結束。此階段只是`Clone&Migrate`工作流程的一部分。
+ 檢查目標執行個體是否已是Nitro執行個體類型。
+ 檢查 Spot 執行個體購買選項是否用於目標執行個體。
+ 檢查執行個體存放區磁碟區是否連接到目標執行個體。
+ 驗證目標執行個體作業系統 (OS) 是 Linux。
+  檢查目標執行個體是否為 Amazon EC2 Auto Scaling 群組的一部分。如果它是 Auto 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 驅動程式版本更新至最新版本。為了確保網路效能最大化，如果Nitro執行個體類型是第 6 代，則需要更新至最新的 ENA 驅動程式版本。
+  驗證 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執行個體類型。自動化會請求指定主體的核准，以複製的 Amazon EC2 執行個體根磁碟區取代目標 Amazon EC2 執行個體的根 Amazon EBS 磁碟區。遷移成功後，複製的 Amazon EC2 執行個體會終止。如果自動化失敗，原始 Amazon EBS 根磁碟區會連接至目標 Amazon EC2 執行個體。如果連接至目標 Amazon EC2 執行個體的根 Amazon EBS 磁碟區具有套用`aws:`字首的標籤，則不支援 `FullMigration`操作。

 **開始之前** 

目標執行個體必須具有傳出網際網路存取。這是為了存取驅動程式和相依性的儲存庫，例如 kernel-devel、gcc、patch、rpm-build、wget、dracut、 makelinux-headers和 unzip。視需要使用套件管理員。

需要 Amazon SNS 主題才能傳送核准和更新的通知。如需建立 Amazon SNS 主題的詳細資訊，請參閱《Amazon *Simple Notification Service *[開發人員指南》中的建立 Amazon SNS 主題](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)。

 此 Runbook 支援下列作業系統：
+ RHEL 7.x - 8.5
+ Amazon Linux (2018.03)、Amazon Linux 2
+ Debian Server
+ 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ 確認

  類型：字串

  描述：（必要） 讀取此自動化 Runbook 所執行動作的完整詳細資訊，然後輸入 **Yes, I understand and acknowledge** 以繼續使用 Runbook。
+ 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) 定義的根磁碟區。

  有效值：Clone&Migrate \$1 FullMigration
+ SNSTopicArn

  類型：字串

  描述：（必要） 用於核准通知的 Amazon SNS 主題 ARN。Amazon SNS 主題用於在自動化期間傳送必要的核准通知。
+ TargetInstanceId

  類型：字串

  描述：（必要） 要遷移的 Amazon EC2 執行個體 ID。

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

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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` - 檢查目標執行個體是否為 Auto Scaling 群組的一部分。
+  `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則會建立 以用作 Golden AMI。
+  `createImageAfterDriversInstallation` - 建立AMI要用作黃金 的 AMI。
+  `endOfCloneAndMigrateBranch` - Clone&Migrate分支結束。
+  `cleanupTestImage` - 取消註冊為測試AMI而建立的 。
+  `failureHandling` - 檢查您是否選擇在失敗時終止資源。
+  `onFailureTerminateClonedInstance` - 在自動化失敗時終止新建立的執行個體。
+  `onFailurecleanupTestImage` - 取消註冊為測試AMI而建立的 。
+  `onFailureApprovalToStartTargetInstance` - 如果自動化失敗， 會等待指定主體的核准，以啟動目標執行個體。
+  `onFailureStartTargetInstance` - 如果自動化失敗， 會啟動目標執行個體。

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

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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` - 驗證此 Runbook 只有一個自動化，目標為您指定的 Amazon EC2 執行個體。如果 Runbook 找到另一個以相同執行個體為目標的進行中自動化，則自動化會結束。
+  `getTargetInstanceProperties` - 從目標執行個體收集詳細資訊。
+  `checkRootVolumeTags` - 判斷目標 Amazon EC2 執行個體的根磁碟區是否包含任何 AWS 預留標籤。
+  `cloneTargetInstanceAndMigrateToNitro` - 使用 `AWS-CloneXenInstanceToNitro` Runbook 啟動子自動化。
+  `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 EC2 執行個體複寫根 Amazon EBS 磁碟區的標籤。
+  `startTargetInstance` - 在變更執行個體類型後啟動目標 Amazon EC2 執行個體。
+  `onFailureStopTargetEC2Instance` - 如果目標 Amazon EC2 執行個體無法啟動為執行個體類型，則停止該Nitro執行個體。
+  `onFailureForceStopTargetEC2Instance` - 如果上一個步驟失敗，強制 會停止目標 Amazon EC2 執行個體。
+  `OnFailureRevertOriginalInstanceType` - 如果目標執行個體無法啟動為執行個體類型，則將目標 Amazon EC2 執行個體還原為原始Nitro執行個體類型。
+  `onFailureRollbackRootVolumeReplacement` - 視需要還原`replaceRootEbsVolumes`步驟所做的所有變更。
+  `onFailureApprovalToStartTargetInstance` - 等待指定的委託人核准在復原先前的變更後啟動目標 Amazon EC2 執行個體。
+  `onFailureStartTargetInstance` - 啟動目標 Amazon EC2 執行個體。
+  `terminateClonedEC2Instance` - 在取代根 Amazon EBS 磁碟區後終止複製的 Amazon EC2 執行個體。

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

 **Description** 

此 Runbook 將在指定的 EC2 執行個體上使用 EC2Rescue 工具，使用 EC2 主控台 (Windows) 重新啟用密碼解密，或產生並新增新的 SSH 金鑰對 (Linux)。如果您遺失金鑰對，此自動化會建立啟用密碼的 AMI，可讓您藉由您擁有的金鑰對來啟動新的 EC2 執行個體 (Windows)。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ EC2RescueInstanceType

  類型：字串

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

  預設：t2.small

  描述：(必要) EC2Rescue 執行個體的 EC2 執行個體類型。建議大小：t2.small。
+ InstanceId

  類型：字串

  描述：(必要) 您想要重設存取權的 EC2 執行個體之 ID。
**重要**  
Systems Manager Automation 會停止此執行個體，並在嘗試任何操作之前建立 AMI。存放在執行個體存放磁碟區的資料會遺失。如果您不是使用彈性 IP，則公有 IP 位址會變更。
+ SubnetId

  類型：字串

  預設：CreateNewVPC

  描述：(選用) EC2Rescue 執行個體的子網路 ID。根據預設，Systems Manager Automation 會建立新的 VPC。或者藉由 SelectedInstanceSubnet 使用與執行個體相同的子網路，或指定自訂的子網路 ID。
**重要**  
子網路必須與 InstanceId 位於相同的可用區域，且必須允許存取 SSM 端點。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

您必須擁有至少 **ssm：StartAutomationExecution**、**ssm：GetParameter** （擷取 SSH 金鑰參數名稱） 和 **ssm：GetAutomationExecution**，才能讀取自動化輸出。如需所需許可的詳細資訊，請參閱[`AWSSupport-StartEC2RescueWorkflow`](automation-awssupport-startec2rescueworkflow.md)。

 **文件步驟** 

1. `aws:assertAwsResourceProperty` - 如果提供的執行個體是 Windows，則宣告 。

   1. (適用於 Windows 的 EC2Rescue) 如果提供的執行個體為 Windows：

      1. `aws:executeAutomation` - `AWSSupport-StartEC2RescueWorkflow`使用 EC2Rescue for Windows 離線密碼重設指令碼調用

      1. `aws:executeAwsApi` - 從巢狀自動化擷取備份 AMI ID

      1. `aws:executeAwsApi` - 從巢狀自動化擷取啟用密碼的 AMI ID

      1. `aws:executeAwsApi` - 從巢狀自動化擷取 EC2Rescue 摘要

   1. (適用於 Linux 的 EC2Rescue) 如果提供的執行個體為 Linux：

      1. `aws:executeAutomation` - `AWSSupport-StartEC2RescueWorkflow`使用 EC2Rescue for Linux 離線 SSH 金鑰注入指令碼調用

      1. `aws:executeAwsApi` - 從巢狀自動化擷取備份 AMI ID

      1. `aws:executeAwsApi` - 擷取注入 SSH 金鑰的 SSM 參數名稱

      1. `aws:executeAwsApi` - 從巢狀自動化擷取 EC2Rescue 摘要

 **輸出** 

getEC2RescueForWindowsResult.Output

getWindowsBackupAmi.ImageId

getWindowsPasswordEnabledAmi.ImageId

getEC2RescueForLinuxResult.Output

getLinuxBackupAmi.ImageId

getLinuxSSHKeyParameter.Name

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

**Description**

`AWSSupport-ResetLinuxUserPassword` Runbook 可協助您重設本機作業系統 (OS) 使用者的密碼。此 Runbook 特別適用於需要使用序列主控台存取其 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的使用者。Runbook AWS 帳戶 會使用自動產生的 AWS Identity and Access Management (IAM) 角色或您指定的自訂 IAM 執行個體描述檔，在 中建立暫時 Amazon EC2 執行個體。自訂 (IAM) 執行個體描述檔必須具有擷取包含密碼之 AWS Secrets Manager 秘密值的許可。

Runbook 會停止您的目標 Amazon EC2 執行個體、分離根 Amazon Elastic Block Store (Amazon EBS) 磁碟區，並將其連接至臨時 Amazon EC2 執行個體。使用 Run Command，指令碼會在暫時執行個體上執行，以設定您指定的作業系統使用者密碼。然後，根 Amazon EBS 磁碟區會重新連接至您的目標執行個體。Runbook 也提供在自動化開始時建立根磁碟區的快照的選項。

**開始之前**

使用您要指派給作業系統使用者的密碼值建立 Secrets Manager 秘密。值必須為純文字。如需詳細資訊，請參閱《AWS Secrets Manager 使用者指南》**中的[建立 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)。

 **考量** 
+ 建議您先備份執行個體，再使用此 Runbook。考慮將 `CreateSnapshot` 參數的值設定為 **Yes**。
+ 變更本機使用者密碼需要 Runbook 才能停止執行個體。當執行個體停止時，儲存在記憶體或執行個體儲存體磁碟區中的任何資料都會遺失。此外，也會釋出任何自動指派的公有 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 執行個體描述檔需要 `AutomationAssumeRole`具有驗證的 IAM `GetInstanceProfile`許可，而且自訂執行個體描述檔本身必須包含 Systems Manager 和 Secrets Manager 存取許可。Runbook 會預先驗證執行個體描述檔是否存在，但如果執行個體描述檔缺少必要的存取權，則在協助程式執行個體操作期間將會失敗。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ 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` 參數需要下列動作才能成功使用 Runbook。
+ `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 執行個體根磁碟區是 Amazon EBS 磁碟區。

1. `aws:assertAwsResourceProperty` – 確保 Amazon EC2 執行個體架構為 `arm64`或 `x86_64`。

1. `aws:assertAwsResourceProperty` – 確保 Amazon EC2 執行個體關閉行為為 `stop` ，而非 `terminate`。

1. `aws:branch` – 確保 Amazon EC2 執行個體不是 Spot 執行個體。否則，自動化會結束。

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` – 取得暫時 Amazon 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 執行個體根 Amazon EBS 磁碟區的快照。

1. `aws:waitForAwsResourceProperty` – 等待快照處於 `completed` 狀態。

1. `aws:executeAwsApi` – 分離 Amazon EBS 根磁碟區與目標 Amazon EC2 執行個體。

1. `aws:waitForAwsResourceProperty` – 等待 Amazon EBS 根磁碟區從目標 Amazon EC2 執行個體分離。

1. `aws:executeAwsApi` – 將根 Amazon EBS 磁碟區連接至暫時 Amazon EC2 執行個體。

1. `aws:waitForAwsResourceProperty` – 等待 Amazon EBS 根磁碟區連接到臨時 Amazon EC2 執行個體。

1. `aws:runCommand` – 在暫時 Amazon EC2 執行個體上使用 Run Command 執行 Shell 指令碼，以重設目標使用者密碼。

1. `aws:executeAwsApi` – 從暫時 Amazon EC2 執行個體分離 Amazon EBS 根磁碟區。

1. `aws:waitForAwsResourceProperty` – 等待 Amazon EBS 根磁碟區從暫時 Amazon EC2 執行個體分離。

1. `aws:executeAwsApi` – 發生錯誤後，從暫時 Amazon EC2 執行個體分離 Amazon EBS 根磁碟區。

1. `aws:waitForAwsResourceProperty` – 等待 Amazon EBS 根磁碟區在發生錯誤後從暫時 Amazon EC2 執行個體分離。

1. `aws:branch` – 根據是否請求根磁碟區的快照來判斷發生錯誤時的復原路徑，來配置自動化。

1. `aws:executeAwsApi` – 將根 Amazon EBS 磁碟區重新連接至目標 Amazon EC2 執行個體。

1. `aws:waitForAwsResourceProperty` – 等待 Amazon EBS 根磁碟區連接至 Amazon 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` – 說明 Runbook 無法建立或更新 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>

 **Description** 

**AWSSupport-RunEC2RescueForWindowsTool** Runbook 會在目標 Amazon EC2) Windows 受管執行個體上執行 Amazon EC2 Rescue for Windows Server 疑難排解工具，以協助疑難排解常見問題。此 Runbook 支援三個主要動作：
+ **ResetAccess**：重設本機管理員密碼。密碼會以 的形式隨機產生並安全地存放在 AWS Systems Manager 參數存放區中`/EC2Rescue/Password/<instance_id>`。如果您未提供參數，則會使用 default AWS Key Management Service (AWS KMS) 金鑰 加密密碼`alias/aws/ssm`。或者，您可以指定 AWS KMS 金鑰 ID，以使用您自己的金鑰來加密密碼。
+ **CollectLogs**：使用 `/collect:all`選項執行 Amazon EC2 Rescue，從作業系統收集日誌和組態檔案，並將其上傳至您帳戶中的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。
+ **FixAll**：透過使用 `/rescue:all`選項執行 Amazon EC2 Rescue，嘗試偵測和解決連接到目前執行個體的離線 Windows 根磁碟區上的問題。

**重要**  
此 Runbook 需要目標執行個體是已安裝 AWS Tools for Windows PowerShell 的 Windows 受管執行個體。Runbook 會使用 Systems Manager Distributor 套件 安裝 Amazon EC2 Rescue for Windows Server 工具`AWSSupport-EC2Rescue`。

 **如何運作？** 

Runbook 會執行下列步驟：
+ 使用 Systems Manager Distributor 套件安裝 Amazon EC2 Rescue for Windows Server 疑難排解工具。
+ 使用提供的參數執行指定的動作 `ResetAccess`(`CollectLogs`、 或 `FixAll`)。
+ 對於 `ResetAccess`：產生安全密碼並將其存放在 參數存放區中。
+ 對於 `CollectLogs`：收集系統日誌並將其上傳至指定的 Amazon S3 儲存貯體。
+ 對於 `FixAll`：嘗試修正指定離線磁碟區上的問題。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-RunEC2RescueForWindowsTool/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-RunEC2RescueForWindowsTool/description)中導覽至 。

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. 文件會執行下列步驟：
   + **installEC2Rescue**：

     使用 Systems Manager Distributor 套件 安裝 Amazon EC2 Rescue for Windows Server 疑難排解工具`AWSSupport-EC2Rescue`。
   + **runEC2RescueForWindows**：

     使用 Command 參數中指定的動作執行 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)
+ [支援自動化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)
+ [使用 Amazon EC2 Rescue for Windows Server 搭配 Systems Manager Run Command](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/ec2rw-ssm.html)

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

 **Description** 

`AWSPremiumSupport-ResizeNitroInstance` Runbook 提供自動化解決方案，以調整以 Nitro 系統建置的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體大小。

為了降低資料遺失和停機的潛在風險， Runbook 會驗證下列項目：
+ 執行個體停止行為。
+ 如果執行個體是 Amazon EC2 Auto Scaling 群組的一部分，且處於 `standby` 模式。
+ 執行個體狀態和租用。
+ 您想要變更的執行個體類型，可支援目前連接至執行個體的網路介面數量。
+ 目前和目標執行個體類型的處理器架構和虛擬化類型都相同。
+ 如果執行個體正在執行，表示它正在傳遞所有狀態檢查。
+ 您要變更為 的執行個體類型可在相同的可用區域中使用。

如果 Amazon EC2 在變更執行個體類型後未通過狀態檢查，則 Runbook 會自動轉返至先前的執行個體類型。

根據預設，如果執行個體正在執行且已連接執行個體存放區磁碟區，此 Runbook 不會變更執行個體類型。如果執行個體是 AWS CloudFormation 堆疊的一部分，則 Runbook 也不會變更執行個體類型。如果您想要變更其中一個行為，請`yes`為 `AllowInstanceStoreInstances`和 `AllowCloudFormationInstances` 參數指定 。

Runbook 提供兩種不同的方法來指定您要變更為的執行個體類型：
+ 對於以單一執行個體為目標的簡單自動化，請使用 `TargetInstanceTypeFromParameter` 參數指定您要變更為 的執行個體類型。
+ 若要大規模執行自動化以變更數個執行個體的執行個體類型，請使用 `TargetInstanceTypeFromTagValue` 參數指定執行個體類型。如需大規模執行自動化的資訊，請參閱[大規模執行自動化](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-working-targets-and-rate-controls.html)。

如果您未指定任一參數的值，則自動化會失敗。

**重要**  
存取 `AWSPremiumSupport-*` Runbook 需要 Business \$1 Support、Enterprise Support 或 Unified Operations Subscription。如需詳細資訊，請參閱[比較 AWS 支援 計劃](https://aws.amazon.com/premiumsupport/plans/)。

 **考量** 
+ 建議您先備份執行個體，再使用此 Runbook。
+ 如需變更執行個體類型的相容性資訊，請參閱[變更執行個體類型的相容性](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resize-limitations.html)。
+ 如果自動化失敗並回復為原始執行個體類型，請參閱[對變更執行個體類型進行故障診斷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshoot-change-instance-type.html)。
+ 變更執行個體類型需要 Runbook 來停止您的執行個體。當執行個體停止時，儲存在記憶體或執行個體儲存體磁碟區中的任何資料都會遺失。此外，也會釋出任何自動指派的公有 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ 確認

  類型：字串

  描述：（必要） 輸入 **yes** 以確認您的執行個體將在目前執行時停止。
+ AllowInstanceStoreInstances

  類型：字串

  有效值：否 \$1 是

  預設：否

  描述：（選用） 如果您指定 `yes`，您可以允許 Runbook 在已連接執行個體存放磁碟區的執行個體上執行。
+ AllowCloudFormationInstances

  類型：字串

  有效值：否 \$1 是

  預設：否

  描述：（選用） 如果您指定 `yes`，則 Runbook 會在屬於 CloudFormation 堆疊的執行個體上執行。
+ DryRun

  類型：字串

  有效值：否 \$1 是

  預設：否

  描述：（選用） 如果您指定 `yes`， Runbook 會驗證調整大小需求，而不會變更執行個體類型。
+ InstanceId

  類型：字串

  描述：（必要） 您要變更其類型的 Amazon EC2 執行個體 ID。
+ SkipInstancesWithTagKey

  類型：字串

  描述：（選用） 如果您指定的標籤金鑰套用至執行個體，自動化會略過目標執行個體。
+ SleepTime

  類型：字串

  預設：3

  描述：（選用） 此 Runbook 在完成之後應休眠的秒數。
+ TagInstance

  類型：字串

  描述：（選用） 使用下列格式，使用您選擇的索引鍵和值標記執行個體：*Key=ChangingType，Value=True*。此選項可讓您追蹤此 Runbook 鎖定目標的執行個體。標籤鍵與值皆區分大小寫。
+ TargetInstanceTypeFromParameter

  類型：字串

  描述：（選用） 您要變更執行個體的執行個體類型。如果您想要使用 參數中提供的標籤索引鍵值，請將此`TargetInstanceTypeFromTagValue`參數保留空白。
+ TargetInstanceTypeFromTagValue

  類型：字串

  描述：（選用） 套用至目標執行個體的標籤索引鍵，其值包含您要變更的執行個體類型。如果您指定 `TargetInstanceTypeFromParameter` 參數的值，則會覆寫您為此參數指定的任何值。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `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`、`stopped`、 `pending`或 `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 執行個體不是 Spot 執行個體。

1. `aws:branch`：確保 Amazon EC2 執行個體租用是預設的，而不是專用主機或專用執行個體。

1. `aws:executeScript`：確認只有一個以目前執行個體 ID 為目標的 Runbook 自動化。如果另一個自動化已在以相同執行個體為目標進行，自動化會傳回錯誤並結束。

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 執行個體不屬於 Auto Scaling 群組。如果執行個體是 Auto Scaling 群組的一部分， 會確保 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`：確認目前和目標執行個體類型相容。確保目標執行個體類型可在相同的子網路中使用。驗證啟動 Runbook 的主體是否具有變更執行個體類型的許可，並在執行個體正在執行時停止和啟動執行個體。

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`：在結束 Runbook 之前等待。

# `AWSSupport-ShareEncryptedAMIOrEBSSnapshot`
<a name="awssupport-share-encrypted-ami-or-ebs-snapshot"></a>

 **Description** 

此 Runbook 會自動將加密Amazon Machine Image的 或 Amazon Elastic Block Store 快照與其他 Amazon Web Services 帳戶共用的程序。此 Runbook 處理跨帳戶共用加密資源的複雜需求，包括 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/)。

**重要考量**  
**此 Runbook 將修改您的資源**：Runbook 會將跨帳戶許可新增至您的 AWS KMS 客戶受管金鑰 (CMK) 政策，並將AMI啟動許可或 Amazon EBS 快照建立磁碟區許可授予目的地帳戶。
**可能需支付額外費用**：複製資源 （不同區域或 AWS 受管金鑰加密） 時，新的 AMI或 Amazon EBS 快照和任何跨區域資料傳輸都會產生額外費用。
**請驗證目的地帳戶 ID**：仔細檢查目的地帳戶 ID，因為此 Runbook 無法驗證帳戶是否存在。
具有**手動驗證的自動轉返**：此 Runbook 會嘗試在失敗時自動轉返變更。不過，如果轉返本身失敗，請確認您的帳戶中沒有留下額外的 AMI/快照副本，資源 LaunchPermission/CreateVolumePermission 屬性不包含非預期的帳戶，且 AWS KMS 金鑰政策處於原始狀態。

 **如何運作？** 

Runbook 會執行下列高階步驟：
+ 驗證輸入資源是否存在、狀態和加密組態
+ 使用目的地帳戶檢查目前的資源共用許可
+ 分析 AWS KMS 金鑰政策並建立所有必要變更的全面預覽
+ 在進行任何變更之前，請求指定委託人的核准
+ 執行核准的變更，包括資源複製 （如有需要）、許可更新和 AWS KMS 金鑰政策修改
+ 視需要提供包含轉返資訊的全方位執行報告

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ShareEncryptedAMIOrEBSSnapshot) 

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

AutomationAssumeRole 參數需要下列動作：
+ ec2:DescribeImages
+ ec2:DescribeSnapshots
+ ec2:DescribeImageAttribute
+ ec2:DescribeSnapshotAttribute
+ ec2:ModifyImageAttribute
+ ec2:ModifySnapshotAttribute
+ ec2:CopyImage
+ ec2:CopySnapshot
+ ec2:DeregisterImage
+ ec2:DeleteSnapshot
+ kms:描述金鑰
+ kms:GetKeyPolicy
+ kms:PutKeyPolicy
+ kms:創建權限
+ kms:GenerateDataKey\$1
+ kms:ReEncrypt\$1
+ kms:解密
+ accessanalyzer：CheckAccessNotGranted

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ShareEncryptedAMIOrEBSSnapshot/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ShareEncryptedAMIOrEBSSnapshot/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     允許 Systems Manager Automation 代表您執行動作 AWS AWS Identity and Access Management 的角色的 Amazon Resource Name。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **核准者 （必要）：**

     能夠核准或拒絕動作的已 AWS 驗證主體清單。核准者的數量上限為 10。您可以使用下列任何格式來指定委託人：使用者名稱、使用者 ARN、IAM 角色 ARN 或 IAM 擔任角色 ARN。
   + **ResourceId （必要）：**

     AMI 或要共用的 Amazon 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`**:

     等待指定 IAM AWS 委託人的核准，以繼續必要的變更。
   + **`ExecuteChanges`**:

     執行核准的變更，並在失敗時轉返。
   + **`Results`**:

     產生完整的執行報告，摘要說明在加密AMI或快照共用程序期間採取的所有動作。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果。

 **目的地帳戶的必要 AWS AWS Identity and Access Management 政策** 

目的地帳戶中的 IAM 角色或使用者必須設定下列 IAM 許可，從共用加密的 啟動加密的 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)
+ [支援自動化工作流程](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>

 **Description** 

`AWSSupport-RestoreEC2InstanceFromSnapshot` Runbook 可協助您從根磁碟區的正常運作 Amazon Elastic Block Store (Amazon EC2) 執行個體。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-RestoreEC2InstanceFromSnapshot)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ EndDate

  類型：字串

  描述：（選用） 您希望自動化尋找快照的最後一個日期。
+ InplaceSwap

  類型：布林值

  有效值：true \$1 false

  描述：（選用） 如果此參數的值設定為 `true`，則快照中新建立的磁碟區會取代連接至執行個體的現有根磁碟區。
+ InstanceId

  類型：字串

  描述：（必要） 您要從快照還原的執行個體 ID。
+ LookForInstanceStatusCheck

  類型：布林值

  有效值：true \$1 false

  預設：true

  描述：（選用） 如果此參數的值設定為 `true`，自動化會檢查從快照啟動的測試執行個體上的執行個體狀態檢查是否失敗。
+ SkipSnapshotsBy

  類型：字串

  描述：（選用） 搜尋快照以還原執行個體時略過快照的間隔。例如，如果有 100 個可用的快照，而您為此參數指定了 2 的值，則每第三個快照都會檢閱一次。

  預設：0
+ SnapshotId

  類型：字串

  描述：（選用） 您要從中還原執行個體的快照 ID。
+ StartDate

  類型：字串

  描述：（選用） 您希望自動化尋找快照的第一個日期。
+ TotalSnapshotsToLook

  類型：字串

  描述：（選用） 自動化檢閱的快照數量。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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.finalSnapshots

ListSnapshotByDate.remainingSnapshotToBeCheckedInSameDateRange

findWorkingSnapshot.workingSnapshot

InstanceRecovery.result

# `AWSSupport-SendLogBundleToS3Bucket`
<a name="automation-awssupport-sendlogbundletos3bucket"></a>

 **Description** 

`AWSSupport-SendLogBundleToS3Bucket` Runbook 會將 EC2Rescue 工具產生的日誌套件從目標執行個體上傳至指定的 S3 儲存貯體。Runbook 會根據目標執行個體的平台安裝平台特定的 EC2Rescue 版本。EC2Rescue 接著會用於收集所有可用的作業系統 (OS) 日誌。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-SendLogBundleToS3Bucket)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：(必要) 您想要收集其日誌的 Windows 或 Linux 受管執行個體之 ID。
+ S3BucketName

  類型：字串

  描述：(必要) 供上傳日誌的 S3 儲存貯體。
+ S3Path

  類型：字串

  預設：`AWSSupport-SendLogBundleToS3Bucket`/

  描述：(選用) 收集日誌的 S3 路徑。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

建議接收命令的 EC2 執行個體具備連接 **AmazonSSMManagedInstanceCore** Amazon 受管政策的 IAM 角色。使用者必須至少有 **ssm：StartAutomationExecution** 和 **ssm：SendCommand** 來執行自動化並將命令傳送至執行個體，加上 **ssm：GetAutomationExecution**，才能讀取自動化輸出。

 **文件步驟** 

1. `aws:runCommand` - 透過 安裝 EC2Rescue`AWS-ConfigureAWSPackage`。

1. `aws:runCommand` - 執行 PowerShell 指令碼，使用 EC2Rescue 收集 Windows 故障診斷日誌。

1. `aws:runCommand` - 執行 bash 指令碼，使用 EC2Rescue 收集 Linux 故障診斷日誌。

 **輸出** 

collectAndUploadWindowsLogBundle.Output

collectAndUploadLinuxLogBundle.Output

# `AWSSupport-StartEC2RescueWorkflow`
<a name="automation-awssupport-startec2rescueworkflow"></a>

 **Description** 

`AWSSupport-StartEC2RescueWorkflow` Runbook 會在為救援執行個體而建立的協助程式執行個體上執行提供的 base64 編碼指令碼 (Bash 或 Powershell)。執行個體的根磁碟區會連接並掛載至協助程式執行個體，也稱為 EC2Rescue 執行個體。如果您的執行個體是 Windows，請提供 Powershell 指令碼。否則，請使用 Bash。Runbook 會設定一些可在指令碼中使用的環境變數。環境變數包含您提供之輸入的資訊，以及離線根磁碟區的資訊。離線磁碟區已掛載並可使用。例如，您可以將 Desired State Configuration 檔案儲存至離線的 Windows 根磁碟區，或者 chroot 至離線的 Linux 根磁碟區並執行離線修復。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-StartEC2RescueWorkflow)

**重要**  
此自動化不支援從 Marketplace Amazon Machine Image (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：


****  

| 變數 | Description | 範例值 | 
| --- | --- | --- | 
|  \$1env:EC2RESCUE\$1ACCOUNT\$1ID  |  \$1\$1 global:ACCOUNT\$1ID \$1\$1  |  123456789012  | 
|  \$1env:EC2RESCUE\$1DATE  |  \$1\$1 global:DATE \$1\$1  |  2018-09-07  | 
|  \$1env:EC2RESCUE\$1DATE\$1TIME  |  \$1\$1 global:DATE\$1TIME \$1\$1  |  2018-09-07\$118.09.59  | 
|  \$1env:EC2RESCUE\$1EC2RW\$1DIR  |  適用於 Windows 安裝路徑的 EC2Rescue  |  C:\$1Program Files\$1Amazon\$1EC2Rescue  | 
|  \$1env:EC2RESCUE\$1EC2RW\$1DIR  |  適用於 Windows 安裝路徑的 EC2Rescue  |  C:\$1Program Files\$1Amazon\$1EC2Rescue  | 
|  \$1env:EC2RESCUE\$1EXECUTION\$1ID  |  \$1\$1 automation:EXECUTION\$1ID \$1\$1  |  7ef8008e-219b-4aca-8bb5-65e2e898e20b  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1CURRENT\$1CONTROL\$1SET  |  離線 Windows 目前控制集路徑  |  `HKLM:\AWSTempSystem\ControlSet001`  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1DRIVE  |  離線 Windows 磁碟機字母  |  D:\$1  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1EBS\$1DEVICE  |  離線根磁碟區 EBS 裝置  |  xvdf  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1KERNEL\$1VER  |  離線 Windows 核心版本  |  6.1.7601.24214  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1OS\$1ARCHITECTURE  |  離線 Windows 架構  |  AMD64  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1OS\$1CAPTION  |  離線 Windows 字幕  |  Windows Server 2008 R2 Datacenter  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1OS\$1TYPE  |  離線 Windows 作業系統類型  |  Server  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1PROGRAM\$1FILES\$1DIR  |  離線 Windows 程式檔案目錄路徑  |  D:\$1Program Files  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1PROGRAM\$1FILES\$1X86\$1DIR  |  離線 Windows 程式檔案 x86 目錄路徑  |  D:\$1Program Files (x86)  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1REGISTRY\$1DIR  |  離線 Windows 登錄檔目錄路徑  |  D:\$1Windows\$1System32\$1config  | 
|  \$1env:EC2RESCUE\$1OFFLINE\$1SYSTEM\$1ROOT  |  離線 Windows 系統根目錄路徑  |  D:\$1Windows  | 
|  \$1env:EC2RESCUE\$1REGION  |  \$1\$1 global:REGION \$1\$1  |  us-west-1  | 
|  \$1env:EC2RESCUE\$1S3\$1BUCKET  |  \$1\$1 S3BucketName \$1\$1  |  amzn-s3-demo-bucket  | 
|  \$1env:EC2RESCUE\$1S3\$1PREFIX  |  \$1\$1 S3Prefix \$1\$1  |  myprefix/  | 
|  \$1env:EC2RESCUE\$1SOURCE\$1INSTANCE  |  \$1\$1 InstanceId \$1\$1  |  i-abcdefgh123456789  | 
|  \$1script:EC2RESCUE\$1OFFLINE\$1WINDOWS\$1INSTALL  |  離線 Windows 安裝中繼資料  |  客戶 Powershell 物件  | 

Linux︰


****  

| 變數 | Description | 範例值 | 
| --- | --- | --- | 
|  EC2RESCUE\$1ACCOUNT\$1ID  |  \$1\$1 global:ACCOUNT\$1ID \$1\$1  |  123456789012  | 
|  EC2RESCUE\$1DATE  |  \$1\$1 global:DATE \$1\$1  |  2018-09-07  | 
|  EC2RESCUE\$1DATE\$1TIME  |  \$1\$1 global:DATE\$1TIME \$1\$1  |  2018-09-07\$118.09.59  | 
|  EC2RESCUE\$1EC2RL\$1DIR  |  適用於 Linux 安裝路徑的 EC2Rescue  |  /usr/local/ec2rl-1.1.3  | 
|  EC2RESCUE\$1EXECUTION\$1ID  |  \$1\$1 automation:EXECUTION\$1ID \$1\$1  |  7ef8008e-219b-4aca-8bb5-65e2e898e20b  | 
|  EC2RESCUE\$1OFFLINE\$1DEVICE  |  離線裝置名稱  |  /dev/xvdf1  | 
|  EC2RESCUE\$1OFFLINE\$1EBS\$1DEVICE  |  離線根磁碟區 EBS 裝置  |  /dev/sdf  | 
|  EC2RESCUE\$1OFFLINE\$1SYSTEM\$1ROOT  |  離線根磁碟區掛載點  |  /mnt/mount  | 
|  EC2RESCUE\$1PYTHON  |  Python 版本  |  python2.7  | 
|  EC2RESCUE\$1REGION  |  \$1\$1 global:REGION \$1\$1  |  us-west-1  | 
|  EC2RESCUE\$1S3\$1BUCKET  |  \$1\$1 S3BucketName \$1\$1  |  amzn-s3-demo-bucket  | 
|  EC2RESCUE\$1S3\$1PREFIX  |  \$1\$1 S3Prefix \$1\$1  |  myprefix/  | 
|  EC2RESCUE\$1SOURCE\$1INSTANCE  |  \$1\$1 InstanceId \$1\$1  |  i-abcdefgh123456789  | 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AMIPrefix

  類型：字串

  預設：`AWSSupport-EC2Rescue`

  描述：(選用) 備份 AMI 名稱的字首。
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ CreatePostEC2RescueBackup

  類型：字串

  有效值：true \$1 false

  預設：false

  描述：（選用） 將其設定為 `true`以在執行指令碼後建立 InstanceId 的 AMI，然後再啟動指令碼。自動化完成之後，AMI 會持續存在。您有責任保護對 AMI 的存取，或是將其刪除。
+ CreatePreEC2RescueBackup

  類型：字串

  有效值：true \$1 false

  預設：false

  描述：（選用） 將其設定為 `true`以在執行指令碼之前建立 InstanceId 的 AMI。自動化完成之後，AMI 會持續存在。您有責任保護對 AMI 的存取，或是將其刪除。
+ EC2RescueInstanceType

  類型：字串

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

  預設：t3.medium

  描述：(選用) EC2Rescue 執行個體的 EC2 執行個體類型。
+ InstanceId

  類型：字串

  描述：(必要) EC2 執行個體的 ID。重要： AWS Systems Manager 自動化會停止此執行個體。存放在執行個體存放磁碟區的資料會遺失。如果您不是使用彈性 IP，則公有 IP 位址會變更。
+ OfflineScript

  類型：字串

  描述：(必要) 對協助程式執行個體執行的 Base64 編碼指令碼。如果您的來源執行個體是 Linux 則使用 Bash，如果是 Windows 則使用 PowerShell。
+ S3BucketName

  類型：字串

  描述：(選用) 您想要上傳疑難排解日誌之帳戶中的 S3 儲存貯體名稱。請確認儲存貯體政策不會授予不必要的讀取/寫入許可給不需要存取所收集日誌的單位。
+ S3Prefix

  類型：字串

  預設：`AWSSupport-EC2Rescue`

  描述：(選用) S3 日誌的字首。
+ SubnetId

  類型：字串

  預設：SelectedInstanceSubnet

  描述：(選用) EC2Rescue 執行個體的子網路 ID。根據預設，會使用與提供的執行個體所在相同的子網路。重要：如果您提供自訂子網路，則子網路必須與 InstanceId 位於相同的可用區域，且必須允許存取 SSM 端點。
+ UniqueId

  類型：字串

  預設：\$1\$1 automation:EXECUTION\$1ID \$1\$1

  描述：（選用） 自動化的唯一識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

建議執行自動化的使用者連接 **AmazonSSMAutomationRole (AmazonSSMAutomationRole)** IAM 受管政策。除了該政策，使用者必須擁有：

------
#### [ 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. （使用目前的執行個體子網路） - 如果 \$1SubnetId = SelectedInstanceSubnet\$1，則執行 `aws:createStack`以部署 EC2Rescue CloudFormation 堆疊

   1. （建立新的 VPC) - 如果 \$1SubnetId = CreateNewVPC\$1，則執行 `aws:createStack`以部署 EC2Rescue CloudFormation 堆疊

   1. (使用自訂子網路) - 所有其他情況：

      `aws:assertAwsResourceProperty` - 檢查提供的子網路與提供的執行個體位於相同的可用區域

      `aws:createStack` - 部署 EC2Rescue CloudFormation 堆疊

1. `aws:invokeLambdaFunction` - 執行額外的輸入驗證

1. `aws:executeAwsApi` - 更新 EC2Rescue CloudFormation 堆疊以建立 EC2Rescue 協助程式執行個體

1. `aws:waitForAwsResourceProperty` - 等待 EC2Rescue CloudFormation 堆疊更新完成

1. `aws:executeAwsApi` - 描述 EC2Rescue CloudFormation 堆疊輸出以取得 EC2Rescue 協助程式執行個體 ID

1. `aws:waitForAwsResourceProperty` - 等待 EC2Rescue 協助程式執行個體成為受管執行個體

1. `aws:changeInstanceState` - 停止提供的執行個體

1. `aws:changeInstanceState` - 停止提供的執行個體

1. `aws:changeInstanceState` - 強制停止提供的執行個體

1. `aws:assertAwsResourceProperty` - 檢查 CreatePreEC2RescueBackup 輸入值

   1. （建立 pre-EC2Rescue 備份） - 如果 \$1CreatePreEC2RescueBackup = true\$1

   1. `aws:executeAwsApi` - 建立所提供執行個體的 AMI 備份

   1. `aws:createTags` - 標記 AMI 備份

1. `aws:runCommand` - 在 EC2Rescue 協助程式執行個體上安裝 EC2Rescue 

1. `aws:executeAwsApi` - 從提供的執行個體分離根磁碟區

1. `aws:assertAwsResourceProperty` - 檢查提供的執行個體平台

   1. (執行個體為 Windows)：

      `aws:executeAwsApi` - 將根磁碟區連接至 EC2Rescue 協助程式執行個體，做為 \$1xvdf\$1

      `aws:sleep` - 休眠 10 秒

      `aws:runCommand` - 在 Powershell 中執行提供的離線指令碼

   1. (執行個體為 Linux)：

      `aws:executeAwsApi` - 將根磁碟區以 \$1/dev/sdf\$1 的形式連接至 EC2Rescue 協助程式執行個體

      `aws:sleep` - 休眠 10 秒

      `aws:runCommand` - 在 Bash 中執行提供的離線指令碼

1. `aws:changeInstanceState` - 停止 EC2Rescue 協助程式執行個體

1. `aws:changeInstanceState` - 強制停止 EC2Rescue 協助程式執行個體

1. `aws:executeAwsApi` - 從 EC2Rescue 協助程式執行個體分離根磁碟區

1. `aws:executeAwsApi` - 將根磁碟區連接至提供的執行個體

1. `aws:assertAwsResourceProperty` - 檢查 CreatePostEC2RescueBackup 輸入值

   1. （建立 post-EC2Rescue 備份） - 如果 \$1CreatePostEC2RescueBackup = true\$1

   1. `aws:executeAwsApi` - 建立所提供執行個體的 AMI 備份

   1. `aws:createTags` - 標記 AMI 備份

1. `aws:executeAwsApi` - 還原所提供執行個體根磁碟區的終止時初始刪除狀態

1. `aws:changeInstanceState` - 還原所提供執行個體的初始狀態 （執行中/已停止）

1. `aws:deleteStack` - 刪除 EC2Rescue CloudFormation 堆疊

 **輸出** 

runScriptForLinux.Output

runScriptForWindows.Output

preScriptBackup.ImageId

postScriptBackup.ImageId

# `AWSSupport-TroubleshootActiveDirectoryReplication`
<a name="automation-aws-troubleshootactivedirectoryreplication"></a>

 **Description** 

**AWSSupport-TroubleshootActiveDirectoryReplication** Runbook 透過檢查目標網域控制站執行個體上的常見設定，協助疑難排解 Microsoft Active Directory (AD) 網域控制站複寫失敗。此 Runbook 會對提供的網域控制器執行個體執行一系列 PowerShell 命令，以檢查目前的複寫狀態並報告可能導致網域複寫問題的錯誤。Runbook 可以選擇性地啟動複寫關鍵服務 (`Netlogon`、`W32Time`、 和 `KDC`)`RPCSS`，如果它們停止，並透過在目標執行個體`w32tm /resync /force`上執行來同步系統時間。

**重要**  
AWS Managed Microsoft AD 不在此 Runbook 的範圍內。

**重要**  
當自動化在目標執行個體上執行命令時，會變更目標執行個體檔案系統。這些變更包括建立日誌目錄 (`$env:ProgramData\TroubleshootActiveDirectoryReplication`) 和報告檔案。

 **如何運作？** 

Runbook 會執行下列檢查和動作：
+ 驗證目標執行個體是否正在執行 Windows，並由 Systems Manager 管理。
+ 執行 PowerShell 指令碼來檢查 Active Directory 複寫組態和狀態。
+ 檢查安全群組和網路 ACL 設定是否有複寫合作夥伴連線。
+ 對時間同步和關鍵服務狀態進行故障診斷。
+ 將日誌檔案上傳至指定的 Amazon S3 儲存貯體進行分析。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootActiveDirectoryReplication) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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 秘密。請確定使用者名稱和密碼是使用格式為 的金鑰/值對來存放`{"username":"EXAMPLE-USER","password":"EXAMPLE-PASSWORD"}`。建立 AWS Secrets Manager 秘密之後，請務必將秘密 ARN 的`secretsmanager:GetSecretValue`許可授予目標網域控制站 IAM 執行個體描述檔角色。

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootActiveDirectoryReplication/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootActiveDirectoryReplication/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） Identity AWS and Access Management (IAM) 角色的 Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **InstanceId （必要）：**
     + 描述：（必要） 您要疑難排解 Active Directory 複寫問題的 Amazon EC2 網域控制站執行個體 ID。請注意，提供的執行個體必須是網域控制站。
     + 類型：`AWS::EC2::Instance::Id`
   + **SecretsManagerArn （必要）：**
     + 描述：（必要） AWS Secrets Manager 秘密的 ARN，其中包含具有企業管理員的 Active Directory 使用者名稱和密碼，或存取 Active Directory 網域和樹系組態的同等許可。請確定使用者名稱和密碼是使用格式為 的金鑰/值對來存放`{"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`， Runbook 會列印出目前的系統時間同步狀態。`Sync` 如果選取 ，則 Runbook 會透過在目標執行個體`w32tm /resync /force`上執行 來嘗試強制時間重新同步。
     + 類型：`String`
     + 允許的值： `[Check, Sync]`
     + 預設：`Check`
   + **ServiceAction （選用）：**
     + 描述：（選用） 選取 `Check`或 `Fix`。如果您選擇 `Check`， Runbook 會列印 `Netlogon`、`Remote Procedure Call (RPC) Service`、 `Windows Time service (W32Time)`和 `Key Distribution Center (KDC)`服務的目前狀態。如果已選取 `Fix` ，則 Runbook 會在有任何 停止時嘗試啟動這些服務。
     + 類型：`String`
     + 允許的值： `[Check, Fix]`
     + 預設：`Check`
   + **LogDestination （必要）：**
     + 描述：（必要） AWS 帳戶中用來上傳命令輸出的 Amazon Amazon S3 儲存貯體。
     + 類型：`String`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **assertIfOperatingSystemIsWindows**：

     檢查所提供目標 Amazon EC2 執行個體的作業系統是否為 Windows。
   + **assertifInstanceIsSsmManaged**：

     確保 Amazon EC2 執行個體是由 Systems Manager 管理，否則自動化會結束。
   + **checkReplication**：

     在指定的網域控制站執行個體上執行 PowerShell 指令碼，以取得 Active Directory 網域複寫組態和狀態。
   + **checkInstanceSgAndNacl**：

     檢查與目標網域控制站執行個體相關聯的安全群組和網路 ACL 是否允許通往複寫合作夥伴的流量。
   + **troubleshootReplication**：

     執行 PowerShell 指令碼來疑難排解時間同步和關鍵服務狀態。
   + **verifyS3BucketPublicStatus**：

     檢查 中指定的 Amazon S3 儲存貯體是否`LogDestination`允許匿名或公有讀取或寫入存取許可。
   + **`runUploadScript`**:

     執行 PowerShell 指令碼，將日誌封存上傳至 `LogDestination` 參數中指定的 AAmazon S3 儲存貯體，並從作業系統刪除封存的日誌檔案。日誌檔案可用於故障診斷，或在故障診斷複寫問題時與 AWS Support 共用。

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)
+ [支援自動化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWSPremiumSupport-TroubleshootEC2DiskUsage`
<a name="automation-awspremiumsupport-troubleshootEC2diskusage"></a>

 **Description** 

`AWSPremiumSupport-TroubleshootEC2DiskUsage` Runbook 可協助您調查並可能修復 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體根和非根磁碟用量的問題。如果可能， Runbook 會嘗試透過擴展磁碟區及其檔案系統來修復問題。為了執行這些任務，此 Runbook 會根據受影響執行個體的作業系統協調執行數個 Runbook。

第一個 Runbook `AWSPremiumSupport-DiagnoseDiskUsageOnWindows`或 會`AWSPremiumSupport-DiagnoseDiskUsageOnLinux`決定磁碟問題是否可以透過擴展磁碟區來緩解。

第二個 Runbook `AWSPremiumSupport-ExtendVolumesOnWindows`或 `AWSPremiumSupport-ExtendVolumesOnLinux`會使用第一個 Runbook 的輸出來執行修改磁碟區的 Python 程式碼。修改磁碟區後，執行手冊會擴展受影響磁碟區的分割區和檔案系統。

**重要**  
存取 `AWSPremiumSupport-*` Runbook 需要 Business \$1 Support、Enterprise Support 或 Unified Operations Subscription。如需詳細資訊，請參閱[比較 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

  類型：字串

  描述：（選用） 增加磁碟區的 GiB。將使用 VolumeExpansionGibIncrease 和 VolumeExpansionPercentageIncrease 之間的最大淨增。

  允許的值：^【0-9】\$11，4\$1\$1

  預設：20
+ VolumeExpansionPercentageIncrease

  類型：字串

  描述：（選用） 增加磁碟區的百分比。將使用 VolumeExpansionGibIncrease 和 VolumeExpansionPercentageIncrease 之間的最大淨增。

  允許的值：^【0-9】\$11，2\$1\$1

  預設：20
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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` Runbook 以診斷執行個體上的磁碟用量問題。

      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` Runbook 以執行磁碟區修改，以及在作業系統 (OS) 中所需的步驟，讓新空間可用。

   1. （平台不是視窗） 如果輸入執行個體不是 Windows：

      1. `aws:executeAutomation` - 執行 `AWSPremiumSupport-DiagnoseDiskUsageOnLinux` Runbook 以診斷執行個體上的磁碟用量問題。

      1. `aws:executeAwsApi` - 取得先前自動化的輸出。

      1. `aws:branch` - 分支是根據診斷的輸出，以及是否有可以擴展的磁碟區來緩解提醒。

         1. 沒有需要擴展的磁碟區：結束自動化。

         1. 有些磁碟區需要擴展：

            1. `aws:executeAwsApi` - 建立執行個體AMI的 。

            1. `aws:waitForAwsResourceProperty` - 等待AMI狀態為 `available`。

            1. `aws:executeAutomation` - 執行 `AWSPremiumSupport-ExtendVolumesOnLinux` Runbook 以執行磁碟區修改，以及作業系統中讓新空間可用的必要步驟。

 **輸出** 

diagnoseDiskUsageAlertOnWindows.Output

extendVolumesOnWindows.Output

diagnoseDiskUsageAlertOnLinux.Output

extendVolumesOnLinux.Output

BackupAMILinux.ImageId

BackupAMIWindows.ImageId 

# `AWSSupport-TroubleshootEC2InstanceConnect`
<a name="automation-troubleshoot-ec2-instance-connect"></a>

 **Description** 

 `AWSSupport-TroubleshootEC2InstanceConnect` 自動化有助於分析和偵測無法使用 Amazon EC2 Instance Connect 連線至 Amazon Elastic Compute Cloud (Amazon [Amazon EC2) 執行個體的](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/connect-linux-inst-eic.html)錯誤。它可識別由不支援的 Amazon Machine Image (AMI)、缺少作業系統層級套件安裝或組態、缺少 AWS Identity and Access Management (IAM) 許可或網路組態問題引起的問題。

 **如何運作？** 

 Runbook 會為 IAM 角色或遇到 Amazon EC2 Instance Connect 問題的使用者取得 Amazon EC2 執行個體 ID、使用者名稱、連線模式、來源 IP CIDR、SSH 連接埠和 Amazon Resource Name (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)
網路檢查只會偵測提供 SourceIpCIDR 做為輸入參數時，安全群組和網路 ACL 規則是否封鎖流量。否則，它只會顯示 SSH 相關規則。
此 Runbook 不會驗證使用 [Amazon EC2 Instance Connect Endpoint](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/connect-using-eice.html) 的連線。
對於私有連線，自動化不會檢查 SSH 用戶端是否安裝在來源機器上，以及是否可以到達執行個體的私有 IP 地址。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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 會使用啟動此 Runbook 之使用者的許可。
   + **使用者名稱 （必要）：**

     用於使用 Amazon EC2 Instance Connect 連線至 Amazon EC2 執行個體的使用者名稱。它用於評估是否授予此特定使用者的 IAM 存取權。
   + **EC2InstanceConnectRoleOrUser （必要）：**

     利用 Amazon EC2 Instance Connect 將金鑰推送至執行個體的 IAM 角色或使用者的 ARN。
   + **SSHPort （選用）：**

     在 Amazon EC2 執行個體上設定的 SSH 連接埠。預設值為 `22`。連接埠號碼必須介於 之間`1-65535`。
   + **SourceNetworkType （選用）：**

     Amazon EC2 執行個體的網路存取方法：
     + **瀏覽器：**您可以從 AWS 管理主控台連線。
     + **公有：**您可以透過網際網路 （例如，本機電腦） 連線到位於公有子網路中的執行個體。
     + **私有：**您可以透過執行個體的私有 IP 地址進行連線。
   + **SourceIpCIDR （選用）：**

     來源 CIDR，其中包含您將使用 Amazon EC2 Instance Connect 記錄之裝置的 IP 地址 （例如您的本機電腦）。範例：172.31.48.6/32。如果公有或私有存取模式未提供任何值，則 Runbook 將不會評估 Amazon EC2 執行個體安全群組和網路 ACL 規則是否允許 SSH 流量。它會改為顯示 SSH 相關規則。  
![\[Input parameters form for EC2 Instance Connect troubleshooting with various fields.\]](http://docs.aws.amazon.com/zh_tw/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 狀態和作業系統詳細資訊。
   + **CheckIfAWSRegionSupported：**

     檢查 Amazon EC2 執行個體是否位於 Amazon EC2 Instance Connect 支援 AWS 的區域。
   + **BranchOnIfAWSRegionSupported：**

     如果 Amazon EC2 Instance Connect 支援該 AWS 區域，則繼續執行。否則，它會建立輸出並結束自動化。
   + **CheckIfInstanceAMIIsSupported：**

     檢查 Amazon EC2 Instance Connect 是否支援與執行個體相關聯的 AMI。
   + **BranchOnIfInstanceAMIIsSupported：**

     如果支援執行個體 AMI，它會執行作業系統層級檢查，例如中繼資料連線能力和 Amazon EC2 Instance Connect 套件安裝和組態。否則，它會檢查是否使用 AWS API 啟用 HTTP 中繼資料，然後進入網路檢查步驟。
   + **CheckIMDSReachabilityFromOs**

     在目標 Amazon EC2 Linux 執行個體上執行 Bash 指令碼，以檢查它是否可以到達 IMDSv2。
   + **CheckEICPackageInstallation：**

     在目標 Amazon EC2 Linux 執行個體上執行 Bash 指令碼，以檢查 Amazon EC2 Instance Connect 套件是否已正確安裝和設定。
   + **CheckSSHConfigFromOs**

     在目標 Amazon EC2 Linux 執行個體上執行 Bash 指令碼，以檢查設定的 SSH 連接埠是否符合輸入參數 `SSHPort.`
   + **CheckMetadataHTTPEndpointIsEnabled：**

     檢查執行個體中繼資料服務 HTTP 端點是否已啟用。
   + **CheckEICNetworkAccess：**

     檢查網路組態 （安全群組、網路 ACL 和路由表規則） 是否允許透過 Amazon EC2 Instance Connect 連線至執行個體。
   + **CheckIAMRoleOrUserPermissions：**

     檢查用於利用 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_tw/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_tw/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>

 **Description** 

 `AWSSupport-TroubleshootLinuxMGNDRSAgentLogs` 自動化 Runbook 用於偵測在 Linux 伺服器上安裝 AWS Application Migration Service (AWS MGN) 和 AWS Elastic Disaster Recovery (AWS DRS) 複寫代理程式時常見的錯誤，以將來源伺服器遷移至 AWS 雲端。

 **如何運作？** 

 Runbook `AWSSupport-TroubleshootLinuxMGNDRSAgentLogs`採用 `aws_replication_agent_installer.log` MGN 或 AWS DRS 安裝日誌上傳為 參數的 AWS Amazon Simple Storage Service (Amazon S3) 路徑。然後，它會執行下列任務：
+ **驗證：**檢查提供的日誌檔案是否有效，以及是否包含至少一個代理程式安裝。
+ **剖析：**徹底剖析日誌檔案中的最新代理程式安裝是否有已知的 AWS MGN 或 AWS DRS 錯誤。
+ **錯誤偵測和解決：**根據剖析，它會偵測並列出代理程式安裝程序期間的任何錯誤或問題。針對每個偵測到的錯誤， Runbook 會提供詳細的步驟，以協助解決或緩解問題。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootLinuxMGNDRSAgentLogs) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `s3:GetObject`
+ `s3:ListBucket`

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootLinuxMGNDRSAgentLogs/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootLinuxMGNDRSAgentLogs/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **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_tw/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_tw/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>

 **Description** 

`AWSSupport-TroubleshootRDP` Runbook 允許使用者檢查或修改目標執行個體上的常見設定，這可能會影響遠端桌面通訊協定 (RDP) 連線，例如 RDP 連接埠、網路層身分驗證 (NLA) 和 Windows 防火牆設定檔。或者，如果使用者明確允許離線修復，則可藉由停用和啟動執行個體以離線套用變更。根據預設，執行手冊會讀取和輸出設定的值。

**重要**  
使用此 Runbook 之前，應仔細檢閱 RDP 設定、RDP 服務和 Windows 防火牆設定檔的變更。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**
+ 動作

  類型：字串

  有效值：CheckAll \$1 FixAll \$1 Custom

  預設：Custom

  描述：（選用） 【自訂】 使用 Firewall、RDPServiceStartupType、RDPServiceAction、RDPPortAction、NLASettingAction 和 RemoteConnections 的值來管理設定。【CheckAll】 讀取設定的值而不變更。【FixAll】 還原 RDP 預設設定，並停用 Windows 防火牆。
+ AllowOffline

  類型：字串

  有效值：true \$1 false

  預設：false

  描述：(選用) Fix only - 若您想在線上疑難排解失敗或所提供的執行個體非受管執行個體時允許離線 RDP 修復，請將其設定為 true。備註：對於離線修復，SSM 自動化會停止執行個體，並在嘗試任何操作前建立 AMI。
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ 防火牆

  類型：字串

  有效值：檢查 \$1 停用

  預設：Check

  描述：(選用) 檢查或停用 Windows 防火牆 (所有描述檔)。
+ InstanceId

  類型：字串

  描述：(必要) 疑難排解 RDP 設定的受管執行個體之 ID。
+ NLASettingAction

  類型：字串

  有效值：檢查 \$1 停用

  預設：Check

  描述：(選用) 檢查或停用網路層身分驗證 (NLA)。
+ RDPPortAction

  類型：字串

  有效值：檢查 \$1 修改

  預設：Check

  描述：(選用) 檢查目前用於 RDP 連線的連接埠，或將 RDP 連接埠修改回 3389 並重新啟動服務。
+ RDPServiceAction

  類型：字串

  有效值：檢查 \$1 開始 \$1 重新啟動 \$1 Force-Restart

  預設：Check

  描述：(選用) 檢查、啟動、重新啟動或強制重新啟動 RDP 服務 (TermService)。
+ RDPServiceStartupType

  類型：字串

  有效值：檢查 \$1 Auto

  預設：Check

  描述：(選用) 檢查或設定 RDP 服務以在 Windows 開機時自動啟動。
+ RemoteConnections

  類型：字串

  有效值：檢查 \$1 啟用

  預設：Check

  描述：(選用) 在 fDenyTSConnections 設定上執行的動作：Check，Enable。
+ S3BucketName

  類型：字串

  描述：(選用) 僅限離線 - 您想要上傳疑難排解日誌之帳戶中的 S3 儲存貯體名稱。請確認儲存貯體政策不會授予不必要的讀取/寫入許可給不需要存取所收集日誌的單位。
+ SubnetId

  類型：字串

  預設：SelectedInstanceSubnet

  描述：(選用) 僅限離線 - 用於執行離線疑難排解的 EC2Rescue 執行個體之子網路 ID。如果未指定子網路 ID， AWS Systems Manager Automation 將建立新的 VPC。重要：子網路必須與 InstanceId 位於相同的可用區域，且必須允許存取 SSM 端點。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

建議接收命令的 EC2 執行個體具備連接 **AmazonSSMManagedInstanceCore** Amazon 受管政策的 IAM 角色。對於線上修復，使用者必須至少有 **ssm：DescribeInstanceInformation**、**ssm：StartAutomationExecution** 和 **ssm：SendCommand** 來執行自動化並將命令傳送至執行個體，加上 **ssm：GetAutomationExecution**，才能讀取自動化輸出。對於離線修復，使用者必須至少有 **ssm：DescribeInstanceInformation**、**ssm：StartAutomationExecution**、**ec2：DescribeInstances** 以及 **ssm：GetAutomationExecution**，才能讀取自動化輸出。 `AWSSupport-TroubleshootRDP` 呼叫 `AWSSupport-ExecuteEC2Rescue` 以執行離線修復 - 請檢閱 的許可`AWSSupport-ExecuteEC2Rescue`，以確保您可以成功執行自動化。

 **文件步驟** 

1. `aws:assertAwsResourceProperty` - 檢查執行個體是否為Windows Server執行個體

1. `aws:assertAwsResourceProperty` - 檢查執行個體是否為受管執行個體

1. (線上疑難排解) 若執行個體為受管執行個體，則：

   1. `aws:assertAwsResourceProperty` - 檢查提供的動作值

   1. (線上檢查) 若 **Action = CheckAll**，則：

      `aws:runPowerShellScript` - 執行 PowerShell 指令碼以取得 Windows Firewall 設定檔狀態。

      `aws:executeAutomation` - 呼叫 `AWSSupport-ManageWindowsService` 以取得 RDP 服務狀態。

      `aws:executeAutomation` - 呼叫 `AWSSupport-ManageRDPSettings` 以取得 RDP 設定。

   1. (線上修復) 若 **Action = 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` - Assert **AllowOffline = true**

   1. `aws:assertAwsResourceProperty` - 宣告**動作 = FixAll**

   1. `aws:assertAwsResourceProperty` - 宣告 SubnetId 的值

      (使用所提供執行個體的子網路) 若 SubnetId 為 SELECTED\$1INSTANCE\$1SUBNET

      `aws:executeAwsApi` - 擷取目前執行個體的子網路。

      `aws:executeAutomation` - `AWSSupport-ExecuteEC2Rescue`使用提供的執行個體子網路執行 。

   1. (使用提供的自訂子網路) 若 SubnetId 不是 SELECTED\$1INSTANCE\$1SUBNET

      `aws:executeAutomation` - `AWSSupport-ExecuteEC2Rescue`使用提供的 SubnetId 值執行 。

 **輸出** 

manageFirewallProfiles.Output

manageRDPServiceSettings.Output

manageRDPSettings.Output

checkFirewallProfiles.Output

checkRDPServiceSettings.Output

checkRDPSettings.Output

disableFirewallProfiles.Output

restoreDefaultRDPServiceSettings.Output

restoreDefaultRDPSettings.Output

troubleshootRDPOffline.Output

troubleshootRDPOfflineWithSubnetId.Output

# `AWSSupport-TroubleshootSSH`
<a name="automation-awssupport-troubleshootssh"></a>

 **Description** 

`AWSSupport-TroubleshootSSH` Runbook 安裝適用於 Linux 的 Amazon EC2Rescue 工具，然後使用 EC2Rescue 工具來檢查或嘗試修正常見問題，以防止透過 SSH 遠端連線至 Linux 機器。或者，如果使用者明確允許離線修復，則可藉由停用和啟動執行個體以離線套用變更。根據預設，執行手冊會以唯讀模式運作。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootSSH)

如需有關使用 `AWSSupport-TroubleshootSSH` Runbook 的資訊，請參閱 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

  描述：(選用) Fix only - 若您想在線上疑難排解失敗或所提供的執行個體非受管執行個體時允許離線 SSH 修復，請將其設定為 true。備註：對於離線修復，SSM 自動化會停止執行個體，並在嘗試任何操作前建立 AMI。
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：(必要) Linux 之 EC2 執行個體的 ID。
+ S3BucketName

  類型：字串

  描述：(選用) 僅限離線 - 您想要上傳疑難排解日誌之帳戶中的 S3 儲存貯體名稱。請確認儲存貯體政策不會授予不必要的讀取/寫入許可給不需要存取所收集日誌的單位。
+ SubnetId

  類型：字串

  預設：SelectedInstanceSubnet

  描述：(選用) 僅限離線 - 用於執行離線疑難排解的 EC2Rescue 執行個體之子網路 ID。如果未指定子網路 ID， AWS Systems Manager Automation 將建立新的 VPC。
**重要**  
子網路必須與 InstanceId 位於相同的可用區域，且必須允許存取 SSM 端點。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

建議接收命令的 EC2 執行個體具備連接 **AmazonSSMManagedInstanceCore** Amazon 受管政策的 IAM 角色。對於線上修復，使用者必須至少有 **ssm：DescribeInstanceInformation**、**ssm：StartAutomationExecution** 和 **ssm：SendCommand**，才能執行自動化並將命令傳送至執行個體，加上 **ssm：GetAutomationExecution**，才能讀取自動化輸出。對於離線修補，使用者必須至少有 **ssm：DescribeInstanceInformation**、**ssm：StartAutomationExecution**、**ec2：DescribeInstances** 加上 **ssm：GetAutomationExecution**，才能讀取自動化輸出。 `AWSSupport-TroubleshootSSH` 呼叫 `AWSSupport-ExecuteEC2Rescue` 以執行離線修補 - 請檢閱 的許可`AWSSupport-ExecuteEC2Rescue`，以確保您可以成功執行自動化。

 **文件步驟** 

1. `aws:assertAwsResourceProperty` - 檢查執行個體是否為受管執行個體 

   1. (線上修復) 如果執行個體是受管執行個體，則：

      1. `aws:configurePackage` - 透過 安裝適用於 Linux 的 EC2Rescue`AWS-ConfigureAWSPackage`。

      1. `aws:runCommand` - 執行 bash 指令碼以執行適用於 Linux 的 EC2Rescue。

   1. (離線修復) 如果執行個體不是受管執行個體，則：

      1. `aws:assertAwsResourceProperty` - 宣告 **AllowOffline = true**

      1. `aws:assertAwsResourceProperty` - 宣告**動作 = FixAll**

      1. `aws:assertAwsResourceProperty` - 宣告 SubnetId 的值

      1. （使用提供的執行個體子網路） 如果 SubnetId 是 SelectedInstanceSubnet，`aws:executeAutomation`我們會`AWSSupport-ExecuteEC2Rescue`使用提供的執行個體子網路執行 。

      1. （使用提供的自訂子網路） 如果 SubnetId 不是 SelectedInstanceSubnet，則使用 `AWSSupport-ExecuteEC2Rescue` `aws:executeAutomation`搭配提供的 SubnetId 值執行。

 **輸出** 

troubleshootSSH.Output

troubleshootSSHOffline.Output

troubleshootSSHOfflineWithSubnetId.Output

# `AWSSupport-TroubleshootSUSERegistration`
<a name="automation-awssupport-troubleshoot-suse-registration"></a>

**Description**

`AWSSupport-TroubleshootSUSERegistration` Runbook 可協助您找出向 SUSE Update Infrastructure 註冊 Amazon Elastic Compute Cloud (Amazon EC2) SUSE Linux Enterprise Server執行個體失敗的原因。自動化輸出提供解決問題的步驟，或協助您疑難排解問題。如果執行個體在自動化期間通過所有檢查，執行個體會向 SUSE 更新基礎設施註冊。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootSUSERegistration)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：（必要） 您要故障診斷的 Amazon EC2 執行個體 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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` - 檢查 Amazon EC2 執行個體是否可以存取執行個體中繼資料服務 (IMDS) 地址 169.254.169.254。
+ `aws:runCommand` - 檢查 Amazon EC2 執行個體是否有帳單代碼或 AWS Marketplace 產品代碼。
+ `aws:runCommand` - 檢查 Amazon EC2 執行個體是否可以透過 HTTPS 到達至少 1 個區域伺服器。
+ `aws:runCommand` - 檢查 Amazon EC2 執行個體是否可以透過 HTTP 連線至 Subscription Management Tool (SMT) 伺服器。
+ `aws:runCommand` - 檢查 Amazon EC2 執行個體是否可以透過 HTTPS 連線至 Subscription Management Tool (SMT) 伺服器。
+ `aws:runCommand` - 檢查 Amazon EC2 執行個體是否可以透過 HTTPS 到達`smt-ec2.susecloud.net`地址。
+ `aws:runCommand` - 向 SUSE Update Infrastructure 註冊 Amazon EC2 執行個體。
+ `aws:executeScript` - 收集並輸出所有先前步驟的輸出。

# `AWSSupport-TroubleshootWindowsPerformance`
<a name="awssupport-troubleshoot-windows-performance"></a>

 **Description** 

 Runbook `AWSSupport-TroubleshootWindowsPerformance`有助於疑難排解 Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體上持續發生的效能問題。Runbook 會從目標執行個體擷取日誌，並分析 CPU、記憶體、磁碟和網路效能指標。或者，自動化可以擷取程序傾印，以協助您判斷效能降低的潛在原因。如果您允許此 Runbook 安裝事件和系統日誌，自動化也會使用最新的[https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/Windows-Server-EC2Rescue.html](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/Windows-Server-EC2Rescue.html)工具來擷取事件和系統日誌。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 檢查 Amazon EC2 執行個體的先決條件。
+ 在 Amazon EC2 Windows 執行個體的根磁碟中產生效能日誌
+ 將擷取的日誌儲存在資料夾中 `C:\ProgramData\Amazon\SSM\TroubleshootWindowsPerformance`
+ 如果提供 Amazon Simple Storage Service (Amazon S3) 儲存貯體，且自動化擔任角色具有必要的許可，則擷取的日誌會上傳至 Amazon S3 儲存貯體。
+ 將最新的`EC2Rescue`工具安裝到 Amazon EC2 Windows 執行個體，以擷取您選擇安裝的事件和系統日誌，但不會分析程序傾印和 擷取的日誌`EC2Rescue`。

**重要**  
若要執行此 Runbook，Amazon EC2 Windows 執行個體必須由 管理 AWS Systems Manager。如需詳細資訊，請參閱[為什麼我的 Amazon EC2 執行個體未顯示為受管節點](https://repost.aws/knowledge-center/systems-manager-ec2-instance-not-appear)。
若要執行此 Runbook，Amazon EC2 Windows 執行個體必須使用 PowerShell 4.0 或更新版本在 Windows 8.1 / Windows Server 2012 R2 (6.3) 或更新版本上執行。如需詳細資訊，請參閱 [Windows 作業系統版本](https://learn.microsoft.com/en-us/windows/win32/sysinfo/operating-system-version)。
對於產生效能日誌，根裝置上需要至少 10 GB 的可用空間。如果根磁碟大於 100 GB，則可用空間必須大於磁碟大小的 10%。如果您在執行期間傾印程序，可用空間必須大於 10 GB，加上程序耗用超過 10 GB 記憶體時程序耗用的總記憶體大小。
在根裝置上產生的日誌不會自動刪除。
Runbook 不會解除安裝`EC2Rescue`工具。如需詳細資訊，請參閱[`EC2Rescue`使用 Windows Server](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/Windows-Server-EC2Rescue.html)。
最佳實務是在效能影響期間執行此自動化。您也可以使用 AWS Systems Manager State Manager 關聯或排程 AWS Systems Manager 維護 Windows 定期執行。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootWindowsPerformance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `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. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootWindowsPerformance/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootWindowsPerformance/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **InstanceId （必要）：**

     您要執行自動化的目標 Amazon EC2 Windows 執行個體 ID。執行個體必須由 Systems Manager 管理，才能執行自動化。
   + **CaptureProcessDump （選用）：**

     要擷取的程序傾印類型。自動化可以為可能造成自動化開始時效能影響的程序擷取一個程序傾印。執行個體根磁碟區需要至少 10 GB 的可用空間 （根磁碟區大小大於 100 GB 時大於磁碟大小的 10%，以及 10 GB，加上程序耗用超過 10 GB 記憶體時程序耗用的總記憶體大小）。
   + **LogCaptureDuration （選用）：**

     此自動化會在問題存在時擷取日誌的分鐘數`15`，介於 `1`和 之間。預設值為 `5`。
   + **LogUploadBucketName （選用）：**

     帳戶中您要上傳日誌的 Amazon S3 儲存貯體。儲存貯體必須使用伺服器端加密 (SSE) 設定，且儲存貯體政策不得將不必要的讀取/寫入許可授予不需要存取擷取日誌的各方。Amazon EC2 Windows 執行個體必須能夠存取 Amazon S3 儲存貯體。
   + **InstallEC2RescueTool （選用）：**

     將 設定為 `Yes` 允許 Runbook 安裝最新版本`EC2Rescue`的工具，以擷取 Windows 事件和系統日誌。預設值為 `No`。
   + **確認 （必要）：**

     閱讀此自動化 Runbook 所執行動作的完整詳細資訊，如果您同意，請輸入 `Yes, I understand and acknowledge`。  
![\[Input parameters form for troubleshooting Amazon EC2 Windows instance performance issues.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-windows-performance_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **`CheckConcurrency:`**

     確保只有一個以執行個體為目標的 Runbook 執行。如果 Runbook 找到另一個以相同執行個體為目標的執行，則會傳回錯誤並結束。
   + **`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 Tools for PowerShell 模組是否可用。如果沒有，自動化會結束。
   + **`BranchOnProcessDump:`**

     如果您設定分支以擷取影響效能的程序傾印，則根據分支。
   + **`CaptureProcessDump:`**

     檢查執行個體是否有足夠的空間來執行此自動化 （當您選擇最高 CPU/記憶體時）。
   + **`CapturePerformanceLogs:`**

     再次檢查磁碟空間，並在執行個體上執行 PowerShell 指令碼，以建立 perfmon 計數器並啟動效能監控和 Windows 效能記錄器記錄。符合定義的 後，指令碼`LogCaptureDuration`會停止。
   + **`SummarizePerformanceLogs:`**

     摘要上一個步驟產生的 XML 報告 `CapturePerformanceLogs`，以尋找耗用最多 WorkingSet64 （記憶體） 和 % 處理器時間 (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 Agent 無法正常運作，或 Windows 系統沒有回應，則`CleanUpLogsOnFailure`步驟可能會失敗或逾時。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：

   目標執行個體具有所有必要先決條件的執行。  
![\[Output logs showing performance capture process, EC2Rescue completion, and top CPU/memory usage processes.\]](http://docs.aws.amazon.com/zh_tw/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_tw/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_tw/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>

 **Description** 

 `AWSSupport-TroubleshootWindowsUpdate` Runbook 用於識別可能導致 Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體 Windows 更新失敗的問題。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 檢查目標 Amazon EC2 執行個體是否由 管理 AWS Systems Manager。
+ 檢查 Systems Manager 修補操作是否支援 AWS Systems Manager Agent (SSM Agent) 和 Windows Server 版本。
+ 檢查建議用於 Windows 更新的可用磁碟空間，以及重新啟動是否待定。待重新啟動通常表示更新處於待定狀態，在執行其他更新之前需要重新啟動。
+ 在作業系統層級設定代理設定，有助於疑難排解連線問題。
+ 執行 Amazon Simple Storage Service (Amazon S3) 端點連線能力測試，並呼叫 [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` Runbook 的選項，以分析執行個體與 Amazon S3 端點的連線。
+ 驗證 Windows 更新組態並測試 Windows Server Update Services (WSUS) （如適用）。

**重要**  
不支援 Active Directory 網域控制站。
不支援 Windows Server 2008 R2 版或舊版。
不支援 SSM Agent 1.2.371 或舊版。
`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2` Runbook 使用 [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` Runbook。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootWindowsUpdate) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ssm:DescribeInstanceInformation`
+ `ssm:SendCommand`
+ `ssm:ListCommandInvocations`
+ `ssm:ListCommands`

**注意**  
若要執行子系 Runbook `AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`，請新增[本文件](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-awssupport-analyzeawsendpointreachabilityfromec2.html)中列出的許可。

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootWindowsUpdate/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootWindowsUpdate/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **InstanceId （必要）：**

     輸入 Windows 更新失敗的 Amazon EC2 執行個體 ID。
   + **RunVpcReachabilityAnalyzer （選用）：**

     如果網路問題是由延伸檢查決定，或指定的執行個體 ID 不是受管執行個體，請指定 `true`來執行`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`自動化。如需此子自動化的詳細資訊，請參閱 [文件](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-awssupport-analyzeawsendpointreachabilityfromec2.html)。預設值為 `false`。
   + **RetainVpcReachabilityAnalysis （選用）：**

     只有在 `RunVpcReachabilityAnalyzer`為 時才相關`true`。指定 `true`以保留 建立的網路洞見路徑和相關分析`Reachability Analyzer`。根據預設，這些資源會在成功分析後刪除。如果您選擇保留分析，子 Runbook 不會刪除分析，您可以在 Amazon VPC 主控台中將其視覺化。主控台連結將在子自動化輸出中提供。預設值 `false`。  
![\[Input parameters form for an AWS EC2 instance with fields for InstanceId and automation options.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-windows-update_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **`getWindowsServerAndSSMAgentVersion:`**

     驗證目標執行個體是由 管理， AWS Systems Manager 並取得 SSM Agent 版本和 Windows 版本的詳細資訊。
   + **`assertifInstanceIsSsmManaged:`**

     確保 Amazon EC2 執行個體由 AWS Systems Manager (SSM) 管理，否則自動化會結束。
   + **`CheckProxy:`**

     檢查 Windows 執行個體的所有代理類型。
   + **`CheckPrerequisites:`**

     取得 SSM Agent 版本和 Windows 版本，並判斷其是否為 Active Directory 網域控制站 (DC)。如果執行個體是 DC 或不支援 SSM Agent 或 Windows 版本，則 Runbook 會停止。
   + **`CheckDiskSpace:`**

     如果足以執行 Windows 更新，可透過 Windows 執行個體取得並驗證可用的磁碟空間。
   + **`CheckPendingReboot:`**

     檢查 Windows 執行個體上是否有任何待處理的重新啟動。
   + **`CheckS3Connectivity:`**

     檢查執行個體是否可以到達 的 Amazon S3 端點`Patchbaseline`。
   + **`branchOnRunVpcReachabilityAnalyzer:`**

     如果 `RunVpcReachabilityAnalyzer` 為 true，則它會分支自動化，以針對偵錯 Amazon S3 連線執行更深入的分析。
   + **`GenerateEndpoints:`**

     產生端點以對 Amazon S3 端點進行延伸連線檢查。
   + **`analyzeAwsEndpointReachabilityFromEC2:`**

     呼叫自動化 Runbook `AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`。 以檢查所選執行個體與所需端點的連線能力。
   + **`CheckWindowsUpdateServices:`**

     檢查 Windows Update 服務狀態和啟動類型。
   + **`CheckWindowsUpdateSettings:`**

     檢查透過 Windows 執行個體設定的 Windows Update 政策。
   + **`CheckWSUSSettings:`**

     檢查 Windows 更新是否使用 WSUS 或 Microsoft Update Catalog 設定，並驗證連線。
   + **`CheckWUGlobalSettings:`**

     檢查透過 Windows 執行個體設定的 Windows Update 全域設定。
   + **`GenerateLogs:`**

     將 Windows Update 日誌和 CBS 日誌下載到執行個體桌面，並檢查 Windows 事件日誌是否失敗。
   + **`FinalReport:`**

     產生所有步驟的完整報告。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：  
![\[Final report results showing various system checks and statuses, all marked as PASSED.\]](http://docs.aws.amazon.com/zh_tw/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 與服務相關的文件
+ 如需詳細資訊，請參閱 [TroubleShoot Windows Update](https://repost.aws/knowledge-center/ec2-windows-update-troubleshoot) 一文。

# `AWSSupport-UpgradeWindowsAWSDrivers`
<a name="automation-awssupport-upgradewindowsawsdrivers"></a>

 **Description** 

`AWSSupport-UpgradeWindowsAWSDrivers` Runbook 會升級或修復指定 EC2 執行個體上的儲存和網路 AWS 驅動程式。Runbook 會呼叫 SSM Agent，嘗試線上安裝最新版本的 AWS 驅動程式。如果 SSM Agent 無法聯絡，如果明確請求， Runbook 可以執行 AWS 驅動程式的離線安裝。

 此 Runbook 支援下列作業系統：
+ Windows Server 2016
+ Windows Server 2019
+ Windows Server 2022
+ Windows Server 2025

**注意**  
線上和離線升級都會在嘗試任何操作之前建立 AMI，這會在自動化完成後保留。您有責任保護對 AMI 的存取，或是將其刪除。線上方法會重新啟動執行個體做為升級程序的一部分，而離線方法需要提供的 EC2 執行個體先停止再啟動。

**重要**  
如果您的執行個體 AWS Systems Manager 使用 VPC 端點連線至 ，除非在 us-east-1 區域中使用，否則此 Runbook 將會失敗。此 Runbook 也會在網域控制器上失敗。若要更新網域控制器上的 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ForceUpgrade

  類型：字串

  有效值：true \$1 false

  預設：false

  描述：(選用) 僅限離線 - 如果您允許在執行個體已安裝最新驅動程式時繼續執行離線驅動程式升級，則將其設為 true。
+ InstanceId

  類型：字串

  描述：(必要) Windows Server 之 EC2 執行個體的 ID。
+ SubnetId

  類型：字串

  預設：SelectedInstanceSubnet

  描述：(選用) 僅限離線 - 用於執行離線驅動程式升級的 EC2Rescue 執行個體之子網路 ID。如果未指定子網路 ID，Systems Manager Automation 會建立新的 VPC。
**重要**  
子網路必須與 InstanceId 位於相同的可用區域，且必須允許存取 SSM 端點。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

接收命令的 EC2 執行個體必須至少具備包含 **ssm:StartAutomationExecution** 和 **ssm:SendCommand** 許可的 IAM 角色，才能執行自動化和傳送命令至執行個體，以及 **ssm:GetAutomationExecution**，才能讀取自動化輸出。您可以將 `AmazonSSMManagedInstanceCore` Amazon 受管政策附加到 IAM 角色以提供這些許可。不過，建議您針對此目的使用自動化 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 PV 驅動程式。

   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.Output

forceUpgradeDriversOffline.Output

# Amazon ECS
<a name="automation-ref-ecs"></a>

 AWS Systems Manager 自動化為 Amazon Elastic Container Service 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-CollectECSInstanceLogs`](automation-awssupport-collectecsinstancelogs.md)
+ [`AWS-InstallAmazonECSAgent`](automation-aws-install-ecs-agent.md)
+ [`AWS-ECSRunTask`](aws-run-ecs-task.md)
+ [`AWSSupport-TroubleshootECSContainerInstance`](automation-aws-troubleshoot-ecs-container-instance.md)
+ [`AWSSupport-TroubleshootECSTaskFailedToStart`](automation-aws-troubleshootecstaskfailedtostart.md)
+ [`AWS-UpdateAmazonECSAgent`](automation-aws-update-ecs-agent.md)

# `AWSSupport-CollectECSInstanceLogs`
<a name="automation-awssupport-collectecsinstancelogs"></a>

 **Description** 

 `AWSSupport-CollectECSInstanceLogs` Runbook 會從 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體收集作業系統和 Amazon Elastic Container Service (Amazon ECS) 相關日誌檔案，以協助您疑難排解常見的 Amazon ECS 問題。當自動化收集相關聯的日誌檔案時，會變更檔案系統。這些變更包括建立暫時目錄和日誌目錄、將日誌檔案複製到這些目錄，以及將日誌檔案壓縮為封存。

 如果您指定 `LogDestination` 參數的值，目標執行個體必須安裝 Linux 執行個體的 AWS Command Line Interface (AWS CLI) 或 Windows PowerShell for Windows 執行個體 AWS 的工具。自動化會評估您指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體的政策狀態。為了協助從 Amazon EC2 執行個體收集之日誌的安全性，如果政策狀態`isPublic`設定為 `true` ，或存取控制清單 (ACL) 將`READ|WRITE`許可授予 `All Users` Amazon S3 預先定義的群組，則不會上傳日誌。此外，如果您帳戶中無法使用提供的儲存貯體，則不會上傳日誌。如需 Amazon S3 預先定義 g 陣營的詳細資訊，請參閱[《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 預先定義群組](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#specifying-grantee-predefined-groups)。 **

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CollectECSInstanceLogs) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ECSInstanceId

  類型：字串

  描述：（必要） 您要從中收集日誌的執行個體 ID。您指定的執行個體必須由 Systems Manager 管理。
+ LogDestination

  類型：字串

  描述：（選用） AWS 帳戶 要上傳封存日誌的 Amazon S3 儲存貯體。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:ListCommandInvocations` 
+  `ssm:ListCommands` 
+  `ssm:SendCommand` 
+  `ssm:DescribeInstanceInformation` 

 建議您在 `ECSInstanceId` 參數中指定的 Amazon EC2 執行個體具有連接 Amazon 受管政策的 IAM `AmazonSSMManagedInstanceCore` 角色。若要將日誌封存上傳至您在 `LogDestination` 參數中指定的 Amazon S3 儲存貯體，您必須新增下列許可：
+  `s3:PutObject` 
+  `s3:ListBucket` 
+  `s3:GetBucketPolicyStatus` 
+  `s3:GetBucketAcl` 

 **文件步驟** 
+  `assertInstanceIsManaged` - 驗證您在 `ECSInstanceId` 參數中指定的執行個體是否由 Systems Manager 管理。
+  `getInstancePlatform` - 取得 `ECSInstanceId` 參數中指定之執行個體的作業系統 (OS) 平台的相關資訊。
+  `verifyInstancePlatform` - 根據作業系統平台分支自動化。
+  `runLogCollectionScriptOnLinux` - 在 Linux 執行個體上收集作業系統和 Amazon ECS 相關日誌檔案，並在 `/var/log/collectECSlogs`目錄中建立封存檔案。
+  `runLogCollectionScriptOnWindows` - 在 Windows 執行個體上收集作業系統和 Amazon ECS 相關日誌檔案，並在 `C:\ProgramData\collectECSlogs`目錄中建立封存檔案。
+  `verifyIfS3BucketProvided` - 驗證是否已為 `LogDestination` 參數指定值。
+  `runUploadScript` - 根據作業系統平台分支自動化步驟。
+  `runUploadScriptOnLinux` - 將日誌封存上傳至 `LogDestination` 參數中指定的 Amazon S3 儲存貯體，並從作業系統刪除封存的日誌檔案。
+  `runUploadScriptOnWindows` - 將日誌封存上傳至 `LogDestination` 參數中指定的 Amazon S3 儲存貯體，並從作業系統刪除封存的日誌檔案。

# `AWS-InstallAmazonECSAgent`
<a name="automation-aws-install-ecs-agent"></a>

 **Description** 

 `AWS-InstallAmazonECSAgent` Runbook 會在您指定的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上安裝 Amazon Elastic Container Service (Amazon ECS) 代理程式。此 Runbook 僅支援 Amazon Linux 和 Amazon Linux 2 執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-InstallAmazonECSAgent) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ InstanceIds

  類型：StringList

  描述：（必要） 您要安裝 Amazon ECS 代理程式的 Amazon EC2 執行個體 IDs。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ssm:GetCommandInvocation` 
+  `ec2:DescribeImages` 
+  `ec2:DescribeInstanceAttribute` 
+  `ec2:DescribeInstances` 

 **文件步驟** 

 `aws:executeScript` - 在您於 `InstanceIds` 參數中指定的 Amazon EC2 執行個體上安裝 Amazon ECS 代理程式。

 **輸出** 

InstallAmazonECSAgent.SuccessfulInstances - 安裝 Amazon ECS 代理程式成功所在的執行個體 ID。

InstallAmazonECSAgent.FailedInstances - 安裝 Amazon ECS 代理程式失敗的執行個體 ID。

InstallAmazonECSAgent.InProgressInstances - 正在安裝 Amazon ECS 代理程式的執行個體 ID。

# `AWS-ECSRunTask`
<a name="aws-run-ecs-task"></a>

 **Description** 

 `AWS-ECSRunTask` Runbook 會執行您指定的 Amazon Elastic Container Service (Amazon ECS) 任務。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ECSRunTask) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ capacityProviderStrategy

  類型：字串

  描述：（選用） 用於任務的容量提供者策略。
+ 叢集

  類型：字串

  描述：（選用） 執行任務的叢集的簡短名稱或 ARN。如果您未指定叢集，則會使用預設叢集。
+ count

  類型：字串

  描述：（選用） 要放置在叢集上之指定任務的執行個體數量。您可以為每個請求指定最多 10 個任務。
+ enableECSManagedTags

  類型：布林值

  描述：（選用） 指定是否對任務使用 Amazon ECS 受管標籤。如需詳細資訊，請參閱《Amazon Elastic Container Service 開發人員指南》中的[標記您的 Amazon ECS 資源](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)。
+ enableExecuteCommand

  類型：布林值

  描述：（選用） 決定是否為此任務中的容器啟用執行命令功能。如果為 true，這會啟用任務中所有容器的執行命令功能。
+ 群組

  類型：字串

  描述：（選用） 要與任務建立關聯的任務群組名稱。預設值是任務定義的系列名稱。例如 `family:my-family-name`。
+ launchType

  類型：字串

  有效值：EC2 \$1 FARGATE \$1 EXTERNAL

  描述：（選用） 執行獨立任務的基礎設施。
+ networkConfiguration

  類型：字串

  描述：（選用） 任務的網路組態。使用 `awsvpc` 網路模式接收自己的彈性網路介面的任務定義需要此參數，其他網路模式不支援此參數。
+ 覆寫

  類型：字串

  描述：（選用） JSON 格式的容器覆寫清單，指定指定指定任務定義中的容器名稱，以及應接收的覆寫。您可以使用命令覆寫來覆寫任務定義或 Docker 映像中指定的容器的預設命令。您也可以覆寫任務定義或容器上的 Docker 映像中指定的現有環境變數。此外，您可以使用環境覆寫來新增環境變數。
+ placementConstraints

  類型：字串

  描述：（選用） 用於任務的置放限制物件陣列。您可以為每個任務指定最多 10 個限制，包括任務定義中的限制，以及在執行時間指定的限制。
+ placementStrategy

  類型：字串

  描述：（選用） 用於任務的置放策略物件。您可以為每個任務指定最多 5 個策略規則。
+ platformVersion

  類型：字串

  描述：（選用） 任務使用的平台版本。平台版本僅針對 Fargate 上託管的任務指定。如果未指定平台版本，將使用 `LATEST` 平台版本。
+ propagateTags

  類型：字串

  描述：（選用） 決定標籤是否從任務定義傳播到任務。如果沒有指定值，則不會傳播標籤。標籤只能在任務建立期間傳播至任務。
+ referenceId

  類型：字串

  描述：（選用） 用於任務的參考 ID。參考 ID 的長度上限為 1024 個字元。
+ startedBy

  類型：字串

  描述：（選用） 任務啟動時指定的選用標籤。這可協助您篩選 `ListTasks` API 操作的結果，以識別哪些任務屬於特定任務。最多允許 36 個字母 （大寫和小寫）、數字、連字號 (-) 和底線 (\$1)。
+ 標籤

  類型：字串

  描述：（選用） 您要套用至任務的中繼資料，以協助您分類和組織任務。每個標籤都包含使用者定義的索引鍵和值。
+ taskDefinition

  類型：字串

  描述：（選用） 要執行之任務定義的 `family`和 `revision`(`family`：`revision`) 或完整 ARN。如果未指定修訂版，則會使用最新的`ACTIVE`修訂版。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ecs:RunTask` 

 **文件步驟** 

 `aws:executeScript` - 根據您為 Runbook 輸入參數指定的值執行 Amazon ECS 任務。

# `AWSSupport-TroubleshootECSContainerInstance`
<a name="automation-aws-troubleshoot-ecs-container-instance"></a>

 **Description** 

 `AWSSupport-TroubleshootECSContainerInstance` Runbook 可協助您疑難排解無法向 Amazon ECS 叢集註冊的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。此自動化會檢閱執行個體的使用者資料是否包含正確的叢集資訊、執行個體描述檔是否包含必要的許可，以及網路組態問題。

**重要**  
 若要成功執行此自動化，Amazon EC2 執行個體的狀態必須為 `running` ，Amazon ECS 叢集狀態必須為 `ACTIVE` 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootECSContainerInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） 執行個體無法註冊的 Amazon ECS 叢集名稱。
+ InstanceId

  類型：字串

  描述：（必要） 您要疑難排解的 Amazon EC2 執行個體 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:DescribeIamInstanceProfileAssociations` 
+  `ec2:DescribeInstanceAttribute` 
+  `ec2:DescribeInstances` 
+  `ec2:DescribeNetworkAcls` 
+  `ec2:DescribeRouteTables` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeSubnets` 
+  `ec2:DescribeVpcEndpoints` 
+  `ec2:DescribeVpcs` 
+  `iam:GetInstanceProfile` 
+  `iam:GetRole` 
+  `iam:SimulateCustomPolicy` 
+  `iam:SimulatePrincipalPolicy` 

 **文件步驟** 

aws：executeScript：檢閱 Amazon EC2 執行個體是否符合向 Amazon ECS 叢集註冊所需的先決條件。

# `AWSSupport-TroubleshootECSTaskFailedToStart`
<a name="automation-aws-troubleshootecstaskfailedtostart"></a>

 **Description** 

 `AWSSupport-TroubleshootECSTaskFailedToStart` Runbook 可協助您針對 Amazon ECS 叢集中的 Amazon Elastic Container Service (Amazon ECS) 任務無法啟動的原因進行故障診斷。您必須在與 AWS 區域 任務無法啟動的相同 中執行此 Runbook。Runbook 會分析下列可能阻止任務啟動的常見問題：
+ 與已設定容器登錄檔的網路連線
+ 缺少任務執行角色所需的 IAM 許可
+ VPC 端點連線
+ 安全群組規則組態
+ AWS Secrets Manager 秘密參考
+ 記錄組態

**注意**  
如果分析判斷需要測試網路連線，則會在您的帳戶中建立 Lambda 函數和必要的 IAM 角色。這些資源用於模擬失敗任務的網路連線。自動化會在不再需要這些資源時將其刪除。不過，如果自動化無法刪除資源，您必須手動執行此操作。  
提供 Lambda IAM 角色時，自動化將使用它，而不是建立新的角色。提供的 Lambda IAM 角色必須包含 AWS 受管政策，`AWSLambdaVPCAccessExecutionRole`並具有允許 Lambda 服務主體 擔任的信任政策`lambda.amazonaws.com`。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootECSTaskFailedToStart) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ LambdaRoleArn

  類型：字串

  描述：（選用） 允許函數 AWS Lambda 存取所需 AWS 服務和資源的 IAM 角色 ARN。如果未指定角色，則此 Systems Manager Automation 會在您的帳戶中為 Lambda 建立一個 `NetworkToolSSMRunbookExecution<ExecutionId>` IAM 角色，其名稱包含 受管政策：`AWSLambdaVPCAccessExecutionRole`。
+ ClusterName

  類型：字串

  描述：（必要） 任務無法啟動的 Amazon ECS 叢集名稱。
+ CloudwatchRetentionPeriod

  類型：整數

  描述：（選用） 將 Lambda 函數日誌儲存在 Amazon CloudWatch Logs 中的保留期間，以天為單位。只有在分析判斷需要測試網路連線時，才需要這樣做。

  有效值：1 \$1 3 \$1 5 \$1 7 \$1 14 \$1 30 \$1 60 \$1 90

  預設：30
+ TaskId

  類型：字串

  描述：（必要） 失敗任務的 ID。使用最近失敗的任務。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudtrail:LookupEvents`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeDhcpOptions`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceAttribute`
+ `ec2:DescribeIamInstanceProfileAssociations`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcEndpoints`
+ `ec2:DescribeVpcs`
+ `ec2:DescribeVpcAttribute`
+ `elasticfilesystem:DescribeFileSystems`
+ `elasticfilesystem:DescribeMountTargets`
+ `elasticfilesystem:DescribeMountTargetSecurityGroups`
+ `elasticfilesystem:DescribeFileSystemPolicy`
+ `ecr:DescribeImages`
+ `ecr:GetRepositoryPolicy`
+ `ecs:DescribeContainerInstances`
+ `ecs:DescribeServices`
+ `ecs:DescribeTaskDefinition`
+ `ecs:DescribeTasks`
+ `iam:AttachRolePolicy`
+ `iam:CreateRole`
+ `iam:DeleteRole`
+ `iam:DetachRolePolicy`
+ `iam:GetInstanceProfile`
+ `iam:GetRole`
+ `iam:ListRoles`
+ `iam:ListUsers`
+ `iam:PassRole`
+ `iam:SimulateCustomPolicy`
+ `iam:SimulatePrincipalPolicy`
+ `kms:DescribeKey`
+ `lambda:CreateFunction`
+ `lambda:DeleteFunction`
+ `lambda:GetFunctionConfiguration`
+ `lambda:InvokeFunction`
+ `lambda:TagResource`
+ `logs:DescribeLogGroups`
+ `logs:PutRetentionPolicy`
+ `secretsmanager:DescribeSecret`
+ `ssm:DescribeParameters`
+ `sts:GetCallerIdentity`

`LambdaRoleArn` 提供 時，自動化不需要建立角色，而且可以排除下列許可：
+  `iam:CreateRole` 
+  `iam:DeleteRole` 
+  `iam:AttachRolePolicy` 
+  `iam:DetachRolePolicy` 

 **文件步驟** 
+  `aws:executeScript` - 驗證啟動自動化的使用者或角色是否具有必要的 IAM 許可。如果您沒有足夠的許可來使用此 Runbook，則缺少的必要許可會包含在自動化的輸出中。
+ `aws:branch` - 根據您是否具有 Runbook 所有必要動作的許可進行分支。
+ `aws:executeScript` - 如果分析判斷需要測試網路連線，請在 VPC 中建立 Lambda 函數。
+ `aws:branch` - 根據上一個步驟的結果進行分支。
+ `aws:executeScript` - 分析啟動任務失敗的可能原因。
+ `aws:executeScript` - 刪除此自動化建立的資源。
+ `aws:executeScript` - 格式化自動化的輸出，將分析結果傳回至主控台。在自動化完成之前，您可以在此步驟之後檢閱分析。
+ `aws:branch` - 根據 Lambda 函數和相關資源是否已建立且需要刪除進行分支。
+ `aws:sleep` - 休眠 30 分鐘，以便刪除 Lambda 函數的彈性網路界面。
+ `aws:executeScript` - 刪除 Lambda 函數網路界面。
+ `aws:executeScript` - 格式化 Lambda 函數網路界面刪除步驟的輸出。

# `AWS-UpdateAmazonECSAgent`
<a name="automation-aws-update-ecs-agent"></a>

 **Description** 

 `AWS-UpdateAmazonECSAgent` Runbook 會在您指定的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上更新 Amazon Elastic Container Service (Amazon ECS) 代理程式。此 Runbook 僅支援 Amazon Linux 和 Amazon Linux 2 執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-UpdateAmazonECSAgent) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterARN

  類型：StringList

  描述：（必要） 容器執行個體註冊的 Amazon ECS 叢集的 Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ssm:GetCommandInvocation` 
+  `ec2:DescribeImages` 
+  `ec2:DescribeInstanceAttribute` 
+  `ec2:DescribeImage` 
+  `ec2:DescribeInstance` 
+  `ec2:DescribeInstanceAttribute` 
+  `ecs:DescribeContainerInstances` 
+  `ecs:DescribeClusters` 
+  `ecs:ListContainerInstances` 
+  `ecs:UpdateContainerAgent` 

 **文件步驟** 

 `aws:executeScript` - 更新您在`ClusterARN`參數中指定的 Amazon ECS 叢集上的 Amazon ECS 代理程式。

 **輸出** 

UpdateAmazonECSAgent.UpdatedContainers - 成功更新 Amazon ECS 代理程式的執行個體 ID。

UpdateAmazonECSAgent.FailedContainers - 更新 Amazon ECS 代理程式失敗的執行個體 ID。

UpdateAmazonECSAgent.InProgressContainers - 正在更新 Amazon ECS 代理程式的執行個體 ID。

# Amazon EFS
<a name="automation-ref-efs"></a>

 AWS Systems Manager 自動化為 Amazon Elastic File System 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-CheckAndMountEFS`](automation-awssupport-check-and-mount-efs.md)

# `AWSSupport-CheckAndMountEFS`
<a name="automation-awssupport-check-and-mount-efs"></a>

 **Description** 

 `AWSSupport-CheckAndMountEFS` Runbook 會驗證掛載 Amazon Elastic File System (Amazon EFS) 檔案系統的先決條件，並在您指定的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上掛載檔案系統。此 Runbook 支援使用 DNS 名稱掛載 Amazon EFS 檔案系統，或使用掛載目標的 IP 地址。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CheckAndMountEFS) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ Action

  類型：字串

  有效值：Check \$1 CheckAndMount

  描述：（必要） 判斷 Runbook 是否驗證先決條件，或驗證先決條件並掛載檔案系統。
+ EfsId

  類型：字串

  描述：（必要） 您要掛載的檔案系統 ID。
+ InstanceId

  類型：字串

  描述：（必要） 您要掛載檔案系統的 Amazon EC2 執行個體 ID。
+ MountOptions

  類型：字串

   描述：（選用） 您希望在掛載檔案系統時使用的 Amazon EFS 掛載協助程式支援的選項。如果您指定 `tls`選項，請確認已在目標執行個體上升級 stunnel。
+ MountPoint

  類型：字串

   描述：（選用） 您要掛載檔案系統的目錄。如果您指定 `Action` 參數`Check`的值，則不應指定此參數。
+ MountTargetIP

  類型：字串

  描述：（選用） 掛載目標的 IP 地址。依 IP 地址掛載適用於停用 DNS 的環境中，例如停用 DNS 主機名稱的虛擬私有雲端 (VPCs)。此外，如果您的環境使用 Amazon Route 53 (Route 53) 以外的 DNS 供應商，您可以使用此選項。
+ 區域

  類型：字串

  描述：（必要） Amazon EC2 AWS 區域 執行個體和檔案系統所在的 。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:DescribeAutomationExecutions` 
+  `ssm:DescribeAutomationStepExecutions` 
+  `ssm:DescribeAutomationStepExecutions` 
+  `ssm:DescribeInstanceInformation` 
+  `ssm:DescribeInstanceProperties` 
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ssm:GetDocument` 
+  `ssm:ListCommands` 
+  `ssm:ListCommandInvocations` 
+  `ssm:ListDocuments` 
+  `ssm:StartAutomationExecution` 
+  `iam:ListRoles` 
+  `ec2:DescribeInstances` 
+  `ec2:DescribeSecurityGroups` 
+  `elasticfilesystem:DescribeFileSystemPolicy` 
+  `elasticfilesystem:DescribeMountTargets` 
+  `elasticfilesystem:DescribeMountTargetSecurityGroups` 
+  `resource-groups:*` 

 **文件步驟** 
+  `aws:executeScript` - 收集您在 `InstanceId` 參數中指定的 Amazon EC2 執行個體詳細資訊。
+  `aws:executeScript` - 收集您在 `EfsId` 參數中指定之檔案系統的詳細資訊。
+  `aws:executeScript` - 驗證與檔案系統相關聯的安全群組，允許來自您在 `InstanceId` 參數中指定之 Amazon EC2 執行個體的連接埠 2049 流量。
+  `aws:assertAwsResourceProperty` - 驗證您在 `InstanceId` 參數中指定的 Amazon EC2 執行個體是由 Systems Manager 管理，且狀態為 `Online` 。
+  `aws:branch` - 根據您為 `Action` 參數指定的值進行分支。
+  `aws:runCommand` - 驗證掛載您在 `EfsId` 參數中指定之檔案系統的先決條件。
+  `aws:runCommand` - 驗證掛載您在 `EfsId` 參數中指定的檔案系統的先決條件，並將檔案系統掛載到您在 `InstanceId` 參數中指定的 Amazon EC2 執行個體。

# Amazon EKS
<a name="automation-ref-eks"></a>

 AWS Systems Manager 自動化為 Amazon Elastic Kubernetes Service 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-CreateEKSClusterWithFargateProfile`](aws-createeksclusterwithfargateprofile.md)
+ [`AWS-CreateEKSClusterWithNodegroup`](aws-createeksclusterwithnodegroup.md)
+ [`AWS-DeleteEKSCluster`](automation-aws-deleteekscluster.md)
+ [`AWS-MigrateToNewEKSSelfManagedNodeGroup`](aws-migratetoneweksselfmanagedlinuxnodegroup.md)
+ [`AWSPremiumSupport-TroubleshootEKSCluster`](automation-awspremiumsupport-troubleshootekscluster.md)
+ [`AWSSupport-TroubleshootEKSWorkerNode`](automation-awssupport-troubleshooteksworkernode.md)
+ [`AWS-UpdateEKSCluster`](automation-updateekscluster.md)
+ [`AWS-UpdateEKSManagedNodeGroup`](aws-updateeksmanagednodegroup.md)
+ [`AWS-UpdateEKSSelfManagedLinuxNodeGroups`](aws-updateeksselfmanagedlinuxnodegroup.md)
+ [`AWSSupport-CollectEKSLinuxNodeStatistics`](automation-awssupport-collectekslinuxnodestatistics.md)
+ [`AWSSupport-CollectEKSInstanceLogs`](automation-awssupport-collecteksinstancelogs.md)
+ [`AWSSupport-SetupK8sApiProxyForEKS`](automation-awssupport-setupk8sapiproxyforeks.md)
+ [`AWSSupport-TroubleshootEbsCsiDriversForEks`](automation-awssupport-troubleshoot-ebs-csi-drivers-for-eks.md)
+ [`AWSSupport-TroubleshootEKSALBControllerIssues`](automation-awssupport-troubleshoot-eks-alb-controller-issues.md)

# `AWS-CreateEKSClusterWithFargateProfile`
<a name="aws-createeksclusterwithfargateprofile"></a>

 **Description** 

 `AWS-CreateEKSClusterWithFargateProfile` Runbook 會使用 建立 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集 AWS Fargate。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateEKSClusterWithFargateProfile) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） 叢集的唯一名稱。
+ ClusterRoleArn

  類型：字串

  描述：（必要） IAM 角色的 ARN，提供 Kubernetes 控制平面代表您呼叫 AWS API 操作的許可。
+ FargateProfileName

  類型：字串

  描述：（必要） Fargate 設定檔的名稱。
+ FargateProfileRoleArn

  類型：字串

  描述：（必要） Amazon EKS Pod 執行 IAM 角色的 ARN。
+ FargateProfileSelectors

  類型：字串

  描述：（必要） 將 Pod 與 Fargate 設定檔比對的選取器。
+ SubnetIds

  類型：StringList

  描述：（必要） 您要用於 Amazon EKS 叢集IDs。Amazon EKS 會在這些子網路中建立彈性網路介面，以便在節點與 Kubernetes 控制平面之間進行通訊。您必須指定至少兩個子網路 ID。
+ EKSEndpointPrivateAccess

  類型：布林值

  預設：True

  描述：（選用） 將此值設為 `True`，以允許叢集 Kubernetes API 伺服器端點的私有存取。如果您啟用私有存取，叢集 VPC 中的 Kubernetes API 請求將使用私有 VPC 端點。如果您停用私有存取，且叢集中有節點或 Pod，則請確保 `publicAccessCidrs`包含與節點或 Fargate AWS Fargate Pod 通訊所需的 CIDR 區塊。
+ EKSEndpointPublicAccess

  類型：布林值

  預設：False

  描述：（選用） 將此值設定為 `False`，以停用對叢集 Kubernetes API 伺服器端點的公開存取。如果您停用公有存取，叢集的 Kubernetes API 伺服器只能從啟動它的 VPC 內接收請求。
+ PublicAccessCIDRs

  類型：StringList

  描述：（選用） 允許存取叢集公有 Kubernetes API 伺服器端點的 CIDR 區塊。從您指定的 CIDR 區塊之外的地址與端點的通訊遭拒。如果您已停用私有端點存取，且叢集中有節點或 Fargate Pod，則請確定您指定必要的 CIDR 區塊。
+ SecurityGroupIds

  類型：StringList

  描述：（選用） 指定一或多個安全群組，以與 Amazon EKS 在您帳戶中建立的彈性網路介面建立關聯。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcs`
+ `eks:CreateCluster`
+ `eks:CreateFargateProfile`
+ `eks:DescribeCluster`
+ `eks:DescribeFargateProfile`
+ `iam:CreateServiceLinkedRole`
+ `iam:GetRole`
+ `iam:ListAttachedRolePolicies`
+ `iam:PassRole`

 **文件步驟** 
+ CreateEKSCluster (aws：executeAwsApi) - 建立 Amazon EKS 叢集。
+ VerifyEKSClusterIsActive (aws：waitForAwsResourceProperty) - 驗證叢集狀態為 `ACTIVE`。
+ CreateFargateProfile (aws：executeAwsApi) - 為叢集建立 Fargate。
+ VerifyFargateProfileIsActive (aws：waitForAwsResourceProperty) - 驗證 Fargate 設定檔狀態為 `ACTIVE`。

 **輸出** 

 `CreateEKSCluster.CreateClusterResponse`   
描述：從 `CreateCluster` API 呼叫收到的回應。

 `CreateFargateProfile.CreateFargateProfileResponse`   
描述：從 `CreateFargateProfile` API 呼叫收到的回應。

# `AWS-CreateEKSClusterWithNodegroup`
<a name="aws-createeksclusterwithnodegroup"></a>

 **Description** 

 `AWS-CreateEKSClusterWithNodegroup` Runbook 會使用節點群組建立容量的 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateEKSClusterWithNodegroup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） 叢集的唯一名稱。
+ ClusterRoleArn

  類型：字串

  描述：（必要） IAM 角色的 ARN，提供 Kubernetes 控制平面代表您呼叫 AWS API 操作的許可。
+ NodegroupName

  類型：字串

  描述：（必要） 節點群組的唯一名稱。
+ NodegroupRoleArn

  類型：字串

  描述：（必要） 要與您的節點群組建立關聯的 IAM 角色 ARN。Amazon EKS 工作者節點 kubelet 協助程式會代表您呼叫 AWS APIs。節點透過 IAM 執行個體描述檔和關聯的政策，取得這些 API 呼叫的許可。啟動節點並在叢集中註冊之前，您必須先為那些節點建立啟動時要使用的 IAM 角色。
+ SubnetIds

  類型：StringList

  描述：（必要） 您要用於 Amazon EKS 叢集IDs。Amazon EKS 會在這些子網路中建立彈性網路介面，以便在節點與 Kubernetes 控制平面之間進行通訊。您必須指定至少兩個子網路 ID。
+ EKSEndpointPrivateAccess

  類型：布林值

  預設：True

  描述：（選用） 將此值設為 `True`，以允許叢集 Kubernetes API 伺服器端點的私有存取。如果您啟用私有存取，叢集 VPC 中的 Kubernetes API 請求將使用私有 VPC 端點。如果您停用私有存取，且叢集中有節點或 AWS Fargate Pod，則請確保 `publicAccessCidrs`包含與節點或 Fargate Pod 通訊所需的 CIDR 區塊。
+ EKSEndpointPublicAccess

  類型：布林值

  預設：False

  描述：（選用） 將此值設定為 `False`，以停用對叢集 Kubernetes API 伺服器端點的公開存取。如果您停用公有存取，叢集的 Kubernetes API 伺服器只能從啟動它的 VPC 內接收請求。
+ PublicAccessCIDRs

  類型：StringList

  描述：（選用） 允許存取叢集公有 Kubernetes API 伺服器端點的 CIDR 區塊。從您指定的 CIDR 區塊之外的地址與端點的通訊遭拒。如果您已停用私有端點存取，且叢集中有節點或 Fargate Pod，則請確定您指定必要的 CIDR 區塊。
+ SecurityGroupIds

  類型：StringList

  描述：（選用） 指定一或多個安全群組，以與 Amazon EKS 在您帳戶中建立的彈性網路介面建立關聯。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ec2:DescribeSubnets`
+ `eks:CreateCluster`
+ `eks:CreateNodegroup`
+ `eks:DescribeCluster`
+ `eks:DescribeNodegroup`
+ `iam:CreateServiceLinkedRole`
+ `iam:GetRole`
+ `iam:ListAttachedRolePolicies`
+ `iam:PassRole`

 **文件步驟** 
+ CreateEKSCluster (aws：executeAwsApi) - 建立 Amazon EKS 叢集。
+ VerifyEKSClusterIsActive (aws：waitForAwsResourceProperty) - 驗證叢集狀態為 `ACTIVE`。
+ CreateNodegroup (aws：executeAwsApi) - 建立叢集的節點群組。
+ VerifyNodegroupIsActive (aws：waitForAwsResourceProperty) - 驗證節點群組狀態為 `ACTIVE`。

 **輸出** 
+ `CreateEKSCluster.CreateClusterResponse`：從 `CreateCluster` API 呼叫收到的回應。
+ `CreateNodegroup.CreateNodegroupResponse`：從 `CreateNodegroup` API 呼叫收到的回應。

# `AWS-DeleteEKSCluster`
<a name="automation-aws-deleteekscluster"></a>

 **Description** 

 此 Runbook 會刪除與 Amazon EKS 叢集相關聯的資源，包括節點群組和 Fargate 設定檔。或者，您可以選擇刪除所有自我管理節點、用於建立節點的 CloudFormation 堆疊，以及叢集的 VPC CloudFormation 堆疊。如需刪除叢集的詳細資訊，請參閱《*Amazon EKS 使用者指南*》中的[刪除叢集](https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html)。

**注意**  
 如果您的叢集中有與負載平衡器相關聯的作用中服務，您必須先刪除這些服務，才能刪除叢集。如果沒有，系統就無法刪除負載平衡器。執行 `AWS-DeleteEKSCluster` Runbook 之前，請使用下列程序來尋找和刪除 服務。

**在叢集中尋找和刪除服務**

1.  安裝 Kubernetes 命令列公用程式 `kubectl` 。如需詳細資訊，請參閱《*Amazon EKS 使用者指南*》中的[安裝 kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)。

1. 執行下列命令，列出叢集中執行的所有 服務。

   ```
   kubectl get svc --all-namespaces
   ```

1. 執行下列命令來刪除任何具有相關聯 EXTERNAL-IP 值的服務。這些服務由負載平衡器提供，您必須在 Kubernetes 中刪除它們，以便正確釋放負載平衡器和相關聯的資源。

   ```
                           kubectl delete svc
                           service-name
   ```

 您現在可以執行 `AWS-DeleteEKSCluster` Runbook。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DeleteEKSCluster) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ EKSClusterName

  類型：字串

  描述：（必要） 要刪除的 Amazon EKS 叢集名稱。
+ VPCCloudFormationStack

  類型：字串

  描述：（選用）要刪除之 EKS 叢集的 VPC CloudFormation 堆疊名稱。這會刪除 VPC 的 CloudFormation 堆疊和堆疊建立的任何資源。
+ VPCCloudFormationStackRole

  類型：字串

  描述：（選用） CloudFormation 擔任刪除 VPC CloudFormation 堆疊之 IAM 角色的 ARN。 CloudFormation 會使用角色的登入資料代表您進行呼叫。
+ SelfManagedNodeStacks

  類型：字串

  描述：（選用） 自我管理節點的 CloudFormation 堆疊名稱逗號分隔清單，這會刪除自我管理節點的 CloudFormation 堆疊。
+ SelfManagedNodeStacksRole

  類型：字串

  描述：（選用） CloudFormation 擔任刪除自我管理節點 Stacks 之 IAM 角色的 ARN。 CloudFormation 會使用角色的登入資料代表您進行呼叫。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `sts:AssumeRole` 
+  `eks:ListNodegroups` 
+  `eks:DeleteNodegroup` 
+  `eks:ListFargateProfiles` 
+  `eks:DeleteFargateProfile` 
+  `eks:DeleteCluster` 
+  `cfn:DescribeStacks` 
+  `cfn:DeleteStack` 

 **文件步驟** 
+  `aws:executeScript` - DeleteNodeGroups：尋找和刪除 EKS 叢集中的所有節點群組。
+  `aws:executeScript` - DeleteFargateProfiles：尋找和刪除 EKS 叢集中的所有 Fargate 設定檔。
+  `aws:executeScript` - DeleteSelfManagedNodes：刪除所有自我管理節點和用於建立節點的 CloudFormation 堆疊。
+  `aws:executeScript` - DeleteEKSCluster：刪除 EKS 叢集。
+  `aws:executeScript` - DeleteVPCCloudFormationStack：刪除 VPC CloudFormation 堆疊。

# `AWS-MigrateToNewEKSSelfManagedNodeGroup`
<a name="aws-migratetoneweksselfmanagedlinuxnodegroup"></a>

 **Description** 

 `AWS-MigrateToNewEKSSelfManagedNodeGroup` Runbook 可協助您建立新的 Amazon Elastic Kubernetes Service (Amazon EKS) Linux 節點群組，以將現有應用程式遷移至其中。如需詳細資訊，請參閱《**Amazon EKS 使用者指南**》中的[遷移至新的節點群組](https://docs.aws.amazon.com/eks/latest/userguide/migrate-stack.html)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-MigrateToNewEKSSelfManagedLinuxNodeGroup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ OldStackName

  類型：字串

  描述：（必要） 現有 CloudFormation 堆疊的名稱或堆疊 ID。
+ NewStackName

  類型：字串

  描述：（選用） 為新節點群組建立的新 CloudFormation 堆疊名稱。如果您未指定此參數的值，則會使用 格式建立堆疊名稱：`NewNodeGroup-ClusterName-AutomationExecutionID`。
+ ClusterControlPlaneSecurityGroup

  類型：字串

  描述：（選用） 您希望節點用來與 Amazon EKS 控制平面通訊的安全群組 ID。如果您未指定此參數的值，則會使用現有 CloudFormation 堆疊中指定的安全群組。
+ NodeInstanceType

  類型：字串

  描述：（選用） 您要用於新節點群組的執行個體類型。如果您未指定此參數的值，則會使用現有 CloudFormation 堆疊中指定的執行個體類型。
+ NodeGroupName

  類型：字串

  描述：（選用） 新節點群組的名稱。如果您未指定此參數的值，則會使用現有 CloudFormation 堆疊中指定的節點群組名稱。
+ NodeAutoScalingGroupDesiredCapacity

  類型：字串

  描述：（選用） 建立新堆疊時要擴展到的所需節點數量。此數字必須大於或等於 `NodeAutoScalingGroupMinSize`值，且小於或等於 `NodeAutoScalingGroupMaxSize`。如果您未指定此參數的值，則會使用現有 CloudFormation 堆疊中指定的節點群組所需容量。
+ NodeAutoScalingGroupMaxSize

  類型：字串

  描述：（選用） 節點群組可向外擴展的節點數量上限。如果您未指定此參數的值，則會使用現有 CloudFormation 堆疊中指定的節點群組大小上限。
+ NodeAutoScalingGroupMinSize

  類型：字串

  描述：（選用） 節點群組可以擴展到的節點數量下限。如果您未指定此參數的值，則會使用現有 CloudFormation 堆疊中指定的節點群組大小下限。
+ NodeImageId

  類型：字串

  描述：（選用） 您希望節點群組使用的 Amazon Machine Image(AMI) ID。
+ NodeImageIdSSMParam

  類型：字串

  描述：（選用） 您希望節點群組使用的 AMI的公有 Systems Manager 參數。
+ NodeVolumeSize

  類型：字串

  描述：（選用） GiB 中節點的根磁碟區大小。如果您未指定此參數的值，則會使用現有 CloudFormation 堆疊中指定的節點磁碟區大小。
+ NodeVolumeType

  類型：字串

  描述：（選用） 您要用於節點根磁碟區的 Amazon EBS 磁碟區類型。如果您未指定此參數的值，則會使用現有 CloudFormation 堆疊中指定的磁碟區類型。
+ KeyName

  類型：字串

  描述：（選用） 您要指派給節點的金鑰對。如果您未指定此參數的值，則會使用現有 CloudFormation 堆疊中指定的金鑰對。
+ 子網路

  類型：StringList

  描述：（選用） 您希望用於新節點群組的子網路 IDs 逗號分隔清單。如果您未指定此參數的值，則會使用現有 CloudFormation 堆疊中指定的子網路。
+ DisableIMDSv1

  類型：布林值

  描述：（選用） 指定 `true`以停用執行個體中繼資料服務第 1 版 (IMDSv1)。根據預設，節點支援 IMDSv1 和 IMDSv2。
+ BootstrapArguments

  類型：字串

  描述：（選用） 您要傳遞至節點引導指令碼的其他引數。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ssm:GetParameters`
+ `autoscaling:CreateAutoScalingGroup`
+ `autoscaling:CreateOrUpdateTags`
+ `autoscaling:DeleteTags`
+ `autoscaling:DescribeAutoScalingGroups`
+ `autoscaling:DescribeScalingActivities`
+ `autoscaling:DescribeScheduledActions`
+ `autoscaling:SetDesiredCapacity`
+ `autoscaling:TerminateInstanceInAutoScalingGroup`
+ `autoscaling:UpdateAutoScalingGroup`
+ `cloudformation:CreateStack`
+ `cloudformation:DescribeStackResource`
+ `cloudformation:DescribeStacks`
+ `cloudformation:UpdateStack`
+ `ec2:AuthorizeSecurityGroupEgress`
+ `ec2:AuthorizeSecurityGroupIngress`
+ `ec2:CreateLaunchTemplateVersion`
+ `ec2:CreateLaunchTemplate`
+ `ec2:CreateSecurityGroup`
+ `ec2:CreateTags`
+ `ec2:DeleteLaunchTemplate`
+ `ec2:DeleteSecurityGroup`
+ `ec2:DescribeAvailabilityZones`
+ `ec2:DescribeImages`
+ `ec2:DescribeInstanceAttribute`
+ `ec2:DescribeInstanceStatus`
+ `ec2:DescribeInstances`
+ `ec2:DescribeKeyPairs`
+ `ec2:DescribeLaunchTemplateVersions`
+ `ec2:DescribeLaunchTemplates`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcs`
+ `ec2:RevokeSecurityGroupEgress`
+ `ec2:RevokeSecurityGroupIngress`
+ `ec2:RunInstances`
+ `ec2:TerminateInstances`
+ `iam:AddRoleToInstanceProfile`
+ `iam:AttachRolePolicy`
+ `iam:CreateInstanceProfile`
+ `iam:CreateRole`
+ `iam:GetInstanceProfile`
+ `iam:GetRole`
+ `iam:PassRole`

 **文件步驟** 
+ DetermineParameterValuesForNewNodeGroup (aws：executeScript) - 收集用於新節點群組的參數值。
+ CreateStack (aws：createStack) - 為新節點群組建立 CloudFormation 堆疊。
+ GetNewStackNodeInstanceRole (aws：executeAwsApi) - 取得節點執行個體角色。
+ GetNewStackSecurityGroup (aws：executeAwsApi) - 步驟取得節點安全群組。
+ AddIngressRulesToNewNodeSecurityGroup (aws：executeAwsApi) - 將輸入規則新增至新建立的安全群組，以便接受從指派給您先前節點群組的流量。
+ AddIngressRulesToOldNodeSecurityGroup (aws：executeAwsApi) - 將輸入規則新增至先前的安全群組，使其可以接受來自指派給新建立節點群組的流量。
+ VerifyStackComplete (aws：assertAwsResourceProperty) - 驗證新堆疊狀態為 `CREATE_COMPLETE`。

 **輸出** 

DetermineParameterValuesForNewNodeGroup.NewStackParameters - 用來建立新堆疊的參數。

GetNewStackNodeInstanceRole.NewNodeInstanceRole - 新節點群組的節點執行個體角色。

GetNewStackSecurityGroup.NewNodeSecurityGroup - 新節點群組的安全群組 ID。

DetermineParameterValuesForNewNodeGroup.NewStackName - 新節點群組的 CloudFormation 堆疊名稱。

CreateStack.StackId - 新節點群組的 CloudFormation 堆疊 ID。

# `AWSPremiumSupport-TroubleshootEKSCluster`
<a name="automation-awspremiumsupport-troubleshootekscluster"></a>

 **Description** 

 `AWSPremiumSupport-TroubleshootEKSCluster` Runbook 會診斷 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集、基礎基礎設施的常見問題，並提供建議的修補步驟。

**重要**  
存取 `AWSPremiumSupport-*` Runbook 需要 Business \$1 Support、Enterprise Support 或 Unified Operations Subscription。如需詳細資訊，請參閱[比較 AWS 支援 計劃](https://aws.amazon.com/premiumsupport/plans/)。

 如果您指定 `S3BucketName` 參數的值，自動化會評估您指定之 Amazon Simple Storage Service (Amazon S3) 儲存貯體的政策狀態。為了協助保護從 EC2 執行個體收集之日誌的安全性，如果政策狀態`isPublic`設定為 `true` ，或存取控制清單 (ACL) 將`READ|WRITE`許可授予 `All Users` Amazon S3 預先定義的群組，則不會上傳日誌。如需 Amazon S3 預先定義群組的詳細資訊，請參閱[《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 預先定義群組](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#specifying-grantee-predefined-groups)。 **

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-TroubleshootEKSCluster) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） 您要疑難排解的 Amazon EKS 叢集名稱。
+ S3BucketName

  類型：字串

  描述：（必要） 應上傳 Runbook 產生報告之私有 Amazon S3 儲存貯體的名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DescribeInstances` 
+  `ec2:DescribeInstanceTypes` 
+  `ec2:DescribeSubnets` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeRouteTables` 
+  `ec2:DescribeNatGateways` 
+  `ec2:DescribeVpcs` 
+  `ec2:DescribeNetworkAcls` 
+  `iam:GetInstanceProfile` 
+  `iam:ListInstanceProfiles` 
+  `iam:ListAttachedRolePolicies` 
+  `eks:DescribeCluster` 
+  `eks:ListNodegroups` 
+  `eks:DescribeNodegroup` 
+  `autoscaling:DescribeAutoScalingGroups` 

 此外，連接至啟動自動化之使用者或角色的 AWS Identity and Access Management (IAM) 政策必須允許對下列公有 AWS Systems Manager 參數執行 `ssm:GetParameter`操作，以取得工作者節點的最新建議 Amazon EKS Amazon Machine Image(AMI)。
+  `arn:aws:ssm:::parameter/aws/service/eks/optimized-ami/*/amazon-linux-2/recommended/image_id` 
+  `arn:aws:ssm:::parameter/aws/service/ami-windows-latest/Windows_Server-2019-English-Core-EKS_Optimized-*/image_id` 
+  `arn:aws:ssm:::parameter/aws/service/ami-windows-latest/Windows_Server-2019-English-Full-EKS_Optimized-*/image_id` 
+  `arn:aws:ssm:::parameter/aws/service/ami-windows-latest/Windows_Server-1909-English-Core-EKS_Optimized-*/image_id` 
+  `arn:aws:ssm:::parameter/aws/service/eks/optimized-ami/*/amazon-linux-2-gpu/recommended/image_id` 

若要將 Runbook 產生的報告上傳至 Amazon S3 儲存貯體，您指定的 Amazon S3 儲存貯體需要下列許可。
+  `s3:GetBucketPolicyStatus` 
+  `s3:GetBucketAcl` 
+  `s3:PutObject` 

 **文件步驟** 
+  `aws:executeAwsApi` - 收集指定 Amazon EKS 叢集的詳細資訊。
+  `aws:executeScript` - 收集 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體、Auto Scaling 群組、 AMI和 Amazon EC2 GPU 圖形執行個體類型的詳細資訊。
+  `aws:executeScript` - 收集 Amazon EKS 叢集的虛擬私有雲端 (VPC)、子網路、網路位址轉譯 (NAT) 閘道、子網路路由、安全群組和網路存取控制清單 (ACLs) 的詳細資訊。
+  `aws:executeScript` - 收集已連接 IAM 執行個體描述檔和角色政策的詳細資訊。
+  `aws:executeScript` - 收集您在 `S3BucketName` 參數中指定的 Amazon S3 儲存貯體詳細資訊。
+  `aws:executeScript` - 將 Amazon VPC 子網路分類為公有或私有。
+  `aws:executeScript` - 檢查 Amazon VPC 子網路是否有 Amazon EKS 叢集所需的標籤。
+  `aws:executeScript` - 檢查 Amazon VPC 子網路是否有 Elastic Load Balancing 子網路所需的標籤。
+  `aws:executeScript` - 檢查工作者節點 Amazon EC2 執行個體是否使用最新的 Amazon EKS 最佳化 AMI 
+  `aws:executeScript` - 檢查連接至工作者節點的 Amazon VPC 安全群組是否需要標籤。
+  `aws:executeScript` - 檢查 Amazon EKS 叢集和工作者節點 Amazon VPC 安全群組規則是否有建議傳入 Amazon EKS 叢集的規則。
+  `aws:executeScript` - 檢查 Amazon EKS 叢集和工作者節點 Amazon VPC 安全群組規則是否有從 Amazon EKS 叢集的建議輸出規則。
+  `aws:executeScript` - 檢查 Amazon VPC 子網路的網路 ACL 組態。
+  `aws:executeScript` - 檢查工作者節點 Amazon EC2 執行個體是否有所需的受管政策。
+  `aws:executeScript` - 檢查 Auto Scaling 群組是否具有叢集自動擴展所需的標籤。
+  `aws:executeScript` - 檢查工作者節點 Amazon EC2 執行個體是否已連線至網際網路。
+  `aws:executeScript` - 根據先前步驟的輸出產生報告。如果為 `S3BucketName` 參數指定值，產生的報告會上傳到 Amazon S3 儲存貯體。

# `AWSSupport-TroubleshootEKSWorkerNode`
<a name="automation-awssupport-troubleshooteksworkernode"></a>

 **Description** 

 `AWSSupport-TroubleshootEKSWorkerNode` Runbook 會分析 Amazon Elastic Compute Cloud (Amazon EC2) 工作者節點和 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集，以協助您識別和疑難排解防止工作者節點加入叢集的常見原因。Runbook 會輸出指引，協助您解決任何已識別的問題。

**重要**  
 若要成功執行此自動化，Amazon EC2 工作者節點的狀態必須為 `running` ，Amazon EKS 叢集狀態必須為 `ACTIVE` 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootEKSWorkerNode) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） Amazon EKS 叢集的名稱。
+ WorkerID

  類型：字串

  描述：（必要） 無法加入叢集的 Amazon EC2 工作者節點 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:DescribeDhcpOptions` 
+  `ec2:DescribeImages` 
+  `ec2:DescribeInstanceAttribute` 
+  `ec2:DescribeInstances` 
+  `ec2:DescribeInstanceStatus` 
+  `ec2:DescribeNatGateways` 
+  `ec2:DescribeNetworkAcls` 
+  `ec2:DescribeNetworkInterfaces` 
+  `ec2:DescribeRouteTables` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeSubnets` 
+  `ec2:DescribeVpcAttribute` 
+  `ec2:DescribeVpcEndpoints` 
+  `ec2:DescribeVpcs` 
+  `eks:DescribeCluster` 
+  `iam:GetInstanceProfile` 
+  `iam:GetRole` 
+  `iam:ListAttachedRolePolicies` 
+  `ssm:DescribeInstanceInformation` 
+  `ssm:ListCommandInvocations` 
+  `ssm:ListCommands` 
+  `ssm:SendCommand` 

 **文件步驟** 
+  `aws:assertAwsResourceProperty` - 確認您在 `ClusterName` 參數中指定的 Amazon EKS 叢集存在且處於 `ACTIVE` 狀態。
+  `aws:assertAwsResourceProperty` - 確認您在 `WorkerID` 參數中指定的 Amazon EC2 工作者節點存在且處於 `running` 狀態。
+  `aws:executeScript` - 執行 Python 指令碼，以協助識別工作者節點無法加入叢集的可能原因。

# `AWS-UpdateEKSCluster`
<a name="automation-updateekscluster"></a>

 **Description** 

 `AWS-UpdateEKSCluster` Runbook 可協助您將 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集更新為您想要使用的 Kubernetes 版本。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-UpdateEKSCluster) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） Amazon EKS 叢集的名稱。
+ 版本

  類型：字串

  描述：（必要） 您要更新叢集的 Kubernetes 版本。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `eks:DescribeUpdate` 
+  `eks:UpdateClusterVersion` 

 **文件步驟** 
+  `aws:executeAwsApi` - 更新 Amazon EKS 叢集所使用的 Kubernetes 版本。
+  `aws:waitForAwsResourceProperty` - 等待更新狀態為 `Successful`。

# `AWS-UpdateEKSManagedNodeGroup`
<a name="aws-updateeksmanagednodegroup"></a>

 **Description** 

`AWS-UpdateEKSManagedNodeGroup` Runbook 可協助您更新 Amazon Elastic Kubernetes Service (Amazon EKS) 受管節點群組。您可以選擇 `Version`或 `Configuration`更新。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-UpdateEKSManagedNodeGroup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） 您要更新其節點群組的叢集名稱。
+ NodeGroupName

  類型：字串

  描述：（必要） 要更新的節點群組名稱。
+ UpdateType

  類型：字串

  有效值：更新節點群組版本 \$1 更新節點群組組態

  預設：更新節點群組版本

  描述：（必要） 您要在節點群組上執行的更新類型。

下列參數僅適用於`Version`更新類型：
+ AMIReleaseVersion

  類型：字串

  描述：（選用） 您要使用的 Amazon EKS AMI 最佳化版本。根據預設會使用最新版本。
+ ForceUpgrade

  類型：布林值

  描述：（選用） 如果為 true，則更新不會失敗，以回應 Pod 中斷預算違規。
+ KubernetesVersion

  類型：字串

  描述：（選用） 要更新節點群組的 Kubernetes 版本。
+ LaunchTemplateId

  類型：字串

  描述：（選用） 啟動範本的 ID。
+ LaunchTemplateName

  類型：字串

  描述：（選用） 啟動範本的名稱。
+ LaunchTemplateVersion

  類型：字串

  描述：（選用） Amazon Elastic Compute Cloud (Amazon EC2) 啟動範本版本。此參數只有在節點群組是從啟動範本建立時才有效。

下列參數僅適用於`Configuration`更新類型：
+ AddOrUpdateNodeGroupLabels

  類型：StringMap

  描述：（選用） 您要新增或更新的 Kubernetes 標籤。
+ AddOrUpdateKubernetesTaintsEffect

  類型：StringList

  描述：（選用） 您要新增或更新的 Kubernetes 污點。
+ MaxUnavailableNodeGroups

  類型：整數

  預設：0

  描述：（選用） 在版本更新期間一次無法使用的節點數量上限。
+ MaxUnavailablePercentageNodeGroup

  類型：整數

  預設：0

  描述：（選用） 版本更新期間無法使用的節點百分比。
+ NodeGroupDesiredSize

  類型：整數

  預設：0

  描述：（選用） 受管節點群組應維護的節點數量。
+ NodeGroupMaxSize

  類型：整數

  預設：0

  描述：（選用） 受管節點群組可向外擴展的節點數量上限。
+ NodeGroupMinSize

  類型：整數

  預設：0

  描述：（選用） 受管節點群組可縮減的節點數量下限。
+ RemoveKubernetesTaintsEffect

  類型：StringList

  描述：（選用） 您要移除的 Kubernetes 污點。
+ RemoveNodeGroupLabels

  類型：StringList

  描述：（選用） 您想要移除的以逗號分隔的標籤清單。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `eks:UpdateNodegroupConfig` 
+  `eks:UpdateNodegroupVersion` 

 **文件步驟** 
+  `aws:executeScript` - 根據您為 Runbook 輸入參數指定的值更新 Amazon EKS 叢集節點群組。
+  `aws:waitForAwsResourceProperty` - 等待叢集更新狀態為 `Successful`。

# `AWS-UpdateEKSSelfManagedLinuxNodeGroups`
<a name="aws-updateeksselfmanagedlinuxnodegroup"></a>

 **Description** 

`AWS-UpdateEKSSelfManagedLinuxNodeGroups` Runbook 會使用 AWS CloudFormation 堆疊更新 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集中的自我管理受管節點群組。

如果您的叢集使用自動擴展，建議您先將部署縮減至兩個複本，再使用此 Runbook。

**將部署擴展至兩個複本**

1.  安裝 Kubernetes 命令列公用程式 `kubectl`。如需詳細資訊，請參閱*《Amazon EKS 使用者指南》*中的[安裝 kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)。

1. 執行下列命令。

   ```
   kubectl scale deployments/cluster-autoscaler --replicas=2 -n kube-system
   ```

1. 執行 `AWS-UpdateEKSSelfManagedLinuxNodeGroups` Runbook。

1. 執行下列命令，將部署擴展回所需的複本數量。

   ```
   kubectl scale deployments/cluster-autoscaler --replicas=number -n kube-system
   ```

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-UpdateEKSSelfManagedLinuxNodeGroups) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） Amazon EKS 叢集的名稱。
+ NodeGroupName

  類型：字串

  描述：（必要） 受管節點群組的名稱。
+ ClusterControlPlaneSecurityGroup

  類型：字串

  描述：（必要） 控制平面安全群組的 ID。
+ DisableIMDSv1

  類型：布林值

  描述：（選用） 決定您是否要允許執行個體中繼資料服務第 1 版 (IMDSv1) 和 IMDSv2。
+ KeyName

  類型：字串

  描述：（選用） 執行個體的金鑰名稱。
+ NodeAutoScalingGroupDesiredCapacity

  類型：字串

  描述：（選用） 節點群組應維護的節點數量。
+ NodeAutoScalingGroupMaxSize

  類型：字串

  描述：（選用） 節點群組可向外擴展的節點數量上限。
+ NodeAutoScalingGroupMinSize

  類型：字串

  描述：（選用） 節點群組可以擴展到的節點數量下限。
+ NodeInstanceType

  類型：字串

  預設：t3.large

  描述：（選用） 您要用於節點群組的執行個體類型。
+ NodeImageId

  類型：字串

  描述：（選用） 您希望節點群組使用的 Amazon Machine Image(AMI) ID。
+ NodeImageIdSSMParam

  類型：字串

  預設：/aws/service/eks/optimized-ami/1.21/amazon-linux-2/recommended/image\$1id

  描述：（選用） 您希望節點群組使用的 AMI的公有 Systems Manager 參數。
+ StackName

  類型：字串

  描述：（必要） 用於更新節點群組的 CloudFormation 堆疊名稱。
+ 子網路

  類型：字串

  描述：（必要） 您希望叢集使用的子網路 IDs 的逗號分隔清單。
+ VpcId

  類型：字串

  預設：Default

  描述：（必要） 部署叢集的虛擬私有雲端 (VPC)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `eks:CreateCluster` 
+  `eks:CreateNodegroup` 
+  `eks:DeleteNodegroup` 
+  `eks:DeleteCluster` 
+  `eks:DescribeCluster` 
+  `eks:DescribeNodegroup` 
+  `eks:ListClusters` 
+  `eks:ListNodegroups` 
+  `eks:UpdateClusterConfig` 
+  `eks:UpdateNodegroupConfig` 

 **文件步驟** 
+  `aws:executeScript` - 根據您為 Runbook 輸入參數指定的值更新 Amazon EKS 叢集節點群組。
+  `aws:waitForAwsResourceProperty` - 等待堆疊 CloudFormation 更新狀態傳回。

# `AWSSupport-CollectEKSLinuxNodeStatistics`
<a name="automation-awssupport-collectekslinuxnodestatistics"></a>

 **Description** 

`AWSSupport-CollectEKSLinuxNodeStatistics` Runbook 會從屬於 Amazon EKS 叢集的 Amazon EC2 執行個體，以及指定容器 ID 時，從執行個體上執行的`containerd`容器收集 Linux 統計資料。Amazon EC2 執行個體必須由 管理 AWS Systems Manager。

收集的主機層級 Linux 統計資料包括：
+ 作業系統資訊。
+ 網路介面統計資料 - 來自 `ethtool`和 `/sys/class/net/interface/statistics`目錄。
+ 檔案描述項計數。
+ 暫時性連接埠計數。
+ `iptables` 規則傾印。
+ 檢查完整的連線資料表。

容器層級 Linux 統計資料包括：
+ 識別符資訊 - 映像 URI 和標籤。
+ 網路介面統計資料 - 來自 `ethtool`和 `/sys/class/net/interface/statistics`目錄。
+ 如果已填入 `NetworkTargets` 參數，則追蹤路由和 DNS 結果。
+ 封包擷取分析計數 - TCP 重新傳輸、無序封包等。

Runbook 會從各種 Linux 發行版本收集資料，包括 Amazon Linux 2、Amazon Linux 2023 和 Debian/Ubuntu。它使用來自 Amazon ECR 公有圖庫的下列映像的最新版本：
+ `amazon-ecs-network-sidecar` 映像，以取得疑難排解工具的存取權。
+ `aws-cli` 影像，將統計資料報告 JSON 檔案和封包擷取檔案上傳至指定的 Amazon S3 儲存貯體。

**重要**  
此 Runbook 不支援 Fargate 執行個體。如果執行個體在執行期間關閉或中斷連線，此 Runbook 可能會失敗。

 **如何運作？** 

Runbook 會執行下列動作：
+ 驗證目標 Amazon S3 儲存貯體未授予公有讀取或寫入存取權。
+ 確保目標 Amazon EC2 執行個體由 Systems Manager 管理，且處於執行中狀態。
+ 驗證執行個體是否正在執行 Linux 作業系統。
+ 從 Amazon EC2 執行個體收集完整的 Linux 統計資料，也可以選擇從指定的容器收集。
+ 將收集到的統計資料上傳至指定的 Amazon S3 儲存貯體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CollectEKSLinuxNodeStatistics) 

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

`AutomationAssumeRole` 參數需要下列動作：
+ `s3:GetAccountPublicAccessBlock`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:GetBucketAcl`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetBucketLocation`
+ `s3:GetEncryptionConfiguration`
+ `s3:PutObject`
+ `ssm:DescribeInstanceInformation`
+ `ssm:SendCommand`
+ `ssm:GetCommandInvocation`
+ `ec2:DescribeInstances`

IAM 政策範例：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetAccountPublicAccessBlock"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketLocation",
                "s3:GetEncryptionConfiguration"
            ],
            "Resource": "arn:aws:s3:::S3_BUCKET_NAME"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::S3_BUCKET_NAME/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeInstanceInformation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:document/AWS-RunShellScript",
                "arn:aws:ec2:*:111122223333:instance/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetCommandInvocation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        }
    ]
}
```

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectEKSLinuxNodeStatistics/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectEKSLinuxNodeStatistics/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     IAM 角色的 Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **InstanceId （必要）：**

     要收集統計資料的 Amazon EC2 執行個體 ID。
   + **S3BucketName （必要）：**

     Amazon S3 儲存貯體的名稱，可將 Amazon EC2 執行個體的 JSON 輸出匯出為 檔案。
   + **S3KeyPrefix （選用）：**

     從 Amazon EC2 執行個體將 JSON 輸出匯出為 檔案的 Amazon S3 金鑰字首 （子資料夾）。 Amazon EC2 預設：`AWSSupport-CollectEKSLinuxNodeStatistics`。
   + **S3BucketOwnerRoleArn （選用）：**

     IAM 角色的 ARN，具有取得 Amazon S3 儲存貯體和帳戶區塊公開存取設定、儲存貯體加密組態、儲存貯體 ACLs、儲存貯體政策狀態，以及將物件上傳至儲存貯體的許可。如果未指定此參數，則 Runbook 會使用 `AutomationAssumeRole`（如果指定） 或啟動此 Runbook 的使用者 （如果`AutomationAssumeRole`未指定）。
   + **S3BucketOwnerAccount （選用）：**

     擁有 Amazon S3 儲存貯體 AWS 的帳戶。如果您未指定此參數，則 Runbook 會假設儲存貯體位於此帳戶中。
   + **ContainerId （選用）：**

     在指定 Amazon EC2 執行個體上執行的容器 ID。
   + **NetworkTargets （選用）：**

     以逗號分隔的 IPv4 地址和/或 DNS 名稱清單，用於測試 DNS 解析，以及使用 traceroute 的連線。

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **`CheckBucketAccess`**:

     檢查目標 Amazon S3 儲存貯體是否可能授予其物件的讀取和/或寫入公開存取權。
   + **`AssertInstanceIsSSMManaged`**:

     確保目標 Amazon EC2 執行個體由 Systems Manager 管理，否則自動化會結束。
   + **`VerifyInstanceState`**:

     在嘗試收集統計資料之前，驗證 Amazon EC2 執行個體是否處於執行中狀態。
   + **`BranchOnVerifyLinuxInstance`**:

     在繼續之前，驗證執行個體是否為 Linux 執行個體。
   + **`BranchOnVerifyInstanceRunning`**:

     在繼續之前，確認執行個體處於執行中狀態。
   + **`CollectEKSLinuxNodeStatistics`**:

     從 Amazon EC2 執行個體收集完整的 Linux 統計資料，包括作業系統資訊、網路介面統計資料、檔案描述項、暫時性連接埠、防火牆規則，以及選用的容器層級統計資料。
   + **`GenerateStatisticsOutputS3Uri`**:

     將完整的 Amazon S3 URI 產生到 Linux 統計資料檔案，以做為自動化文件的輸出。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectEKSLinuxNodeStatistics/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-CollectEKSInstanceLogs`
<a name="automation-awssupport-collecteksinstancelogs"></a>

 **Description** 

 `AWSSupport-CollectEKSInstanceLogs` Runbook 會從 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體收集作業系統和 Amazon Elastic Kubernetes Service (Amazon EKS) 相關日誌檔案，以協助您疑難排解常見問題。當自動化收集相關的日誌檔案時，會變更檔案系統結構，包括建立暫時目錄、將日誌檔案複製到暫時目錄，以及將日誌檔案壓縮至封存。此活動可能會導致 Amazon EC2 執行個體`CPUUtilization`增加。如需 `CPUUtilization` 的詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的[執行個體指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html#ec2-cloudwatch-metrics)。

 如果您指定 `LogDestination` 參數的值，自動化會評估您指定之 Amazon Simple Storage Service (Amazon S3) 儲存貯體的政策狀態。為了協助保護從 Amazon EC2 執行個體收集之日誌的安全性，如果政策狀態`isPublic`設定為 `true` ，或存取控制清單 (ACL) 將`READ|WRITE`許可授予 `All Users` Amazon S3 預先定義的群組，則不會上傳日誌。如需 Amazon S3 預先定義群組的詳細資訊，請參閱[《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 預先定義群組](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#specifying-grantee-predefined-groups)。 **

**注意**  
此自動化需要在連接至 Amazon EC2 執行個體的根 Amazon Elastic Block Store (Amazon EBS) 磁碟區上至少 10% 的可用磁碟空間。如果根磁碟區上的可用磁碟空間不足，自動化會停止。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CollectEKSInstanceLogs) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ EKSInstanceId

  類型：字串

  描述：（必要） 您要從中收集日誌的 Amazon EKS Amazon EC2 執行個體 ID。
+ LogDestination

  類型：字串

  描述：（選用） 帳戶中要上傳封存日誌的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ssm:SendCommand`

 **Amazon EC2 執行個體描述檔所需的 IAM 許可** 

所使用的執行個體描述檔`EKSInstanceId`必須連接 **AmazonSSMManagedInstanceCore** Amazon 受管政策。

 它也必須能夠存取 `LogDestination` Amazon S3 儲存貯體，才能上傳收集的日誌。以下是可以連接到該執行個體描述檔的 IAM 政策範例：

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetBucketPolicyStatus",
        "s3:GetBucketAcl"
      ],
      "Resource": [
        "arn:aws:s3:::LogDestination/*",
        "arn:aws:s3:::LogDestination"
      ]
    }
  ]
}
```

如果 `LogDestination`使用 AWS KMS 加密，則必須將額外的陳述式新增至 IAM 政策，以授予加密所用 AWS KMS 金鑰的存取權：

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetBucketPolicyStatus",
        "s3:GetBucketAcl"
      ],
      "Resource": [
        "arn:aws:s3:::LogDestination/*",
        "arn:aws:s3:::LogDestination"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": "arn:aws:kms:REGION:ACCOUNT:key/KMS-KEY-ID"
    }
  ]
}
```

 **文件步驟** 
+  `aws:assertAwsResourceProperty` - 確認`EKSInstanceId`參數中指定值的作業系統為 Linux。
+  `aws:runCommand` - 收集作業系統和 Amazon EKS 相關日誌檔案，將其壓縮為 `/var/log`目錄中的封存。
+  `aws:branch` - 確認是否已為 `LogDestination` 參數指定值。
+  `aws:runCommand` - 將日誌封存上傳至您在 `LogDestination` 參數中指定的 Amazon S3 儲存貯體。

# `AWSSupport-SetupK8sApiProxyForEKS`
<a name="automation-awssupport-setupk8sapiproxyforeks"></a>

 **Description** 

**AWSSupport-SetupK8sApiProxyForEKS** 自動化 Runbook 提供建立 函數的方法，該 AWS Lambda 函數可做為對 Amazon Elastic Kubernetes Service 叢集端點進行控制平面 API 呼叫的代理。它可作為 Runbook 的建置區塊，需要進行控制平面 API 呼叫，以自動化任務並疑難排解 Amazon EKS 叢集的問題。

**重要**  
此自動化建立的所有資源都會加上標籤，以便輕鬆找到。使用的標籤為：  
 `AWSSupport-SetupK8sApiProxyForEKS`：true 

**注意**  
自動化是協助程式 Runbook，無法做為獨立 Runbook 執行。它被調用為 Runbook 的子自動化，需要控制平面 API 呼叫 Amazon EKS 叢集。
請務必在使用後執行`Cleanup`操作，以避免產生不必要的成本。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） Amazon Elastic Kubernetes Service 叢集的名稱。
+ 作業

  類型：字串

  描述：（必要） 要執行的操作： 在帳戶中`Setup`佈建 Lambda 函數， `Cleanup`會取消佈建在設定階段中建立的資源。

  允許的值： `Setup` \$1 `Cleanup`

  預設：設定
+ LambdaRoleArn

  類型：字串

  描述：（選用） 允許函數 AWS Lambda 存取所需 AWS 服務和資源的 IAM 角色 ARN。如果未指定角色，此 Systems Manager Automation 會在您的帳戶中為 Lambda 建立一個 `Automation-K8sProxy-Role-<ExecutionId>` IAM 角色，其名稱包含 受管政策： `AWSLambdaBasicExecutionRole`和 `AWSLambdaVPCAccessExecutionRole`。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 驗證自動化是否以子執行的形式執行。做為獨立 Runbook 調用時， Runbook 將無法運作，因為它不會自行執行任何有意義的工作。
+ 檢查指定叢集之代理 Lambda 函數的現有 CloudFormation 堆疊。
  + 如果堆疊存在，則會重複使用現有的基礎設施，而不是重新建立它。
  + 使用標籤來維護參考計數器，以確保如果相同叢集的另一個 Runbook 重複使用基礎設施，則 Runbook 不會將其刪除。
+ 執行為調用指定的操作類型 (`Setup`/`Cleanup`)：
  + **設定：**建立或描述現有的資源。

    **清除：**如果任何其他 Runbook 未使用基礎設施，則移除佈建的資源。

 **所需的 IAM 許可** 

`AutomationAssumeRole` 參數需要下列` LambdaRoleArn`未傳遞的許可：
+  `cloudformation:CreateStack` 
+  `cloudformation:DescribeStacks` 
+  `cloudformation:DeleteStack` 
+  `cloudformation:UpdateStack` 
+  `ec2:CreateNetworkInterface` 
+  `ec2:DescribeNetworkInterfaces` 
+  `ec2:DescribeRouteTables` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeSubnets` 
+  `ec2:DescribeVpcs` 
+  `ec2:DeleteNetworkInterface` 
+  `eks:DescribeCluster` 
+  `lambda:CreateFunction` 
+  `lambda:DeleteFunction` 
+  `lambda:ListTags` 
+  `lambda:GetFunction` 
+  `lambda:ListTags` 
+  `lambda:TagResource` 
+  `lambda:UntagResource` 
+  `lambda:UpdateFunctionCode` 
+  `logs:CreateLogGroup` 
+  `logs:PutRetentionPolicy` 
+  `logs:TagResource` 
+  `logs:UntagResource` 
+  `logs:DescribeLogGroups` 
+  `logs:DescribeLogStreams` 
+  `logs:ListTagsForResource` 
+  `iam:CreateRole` 
+  `iam:AttachRolePolicy` 
+  `iam:DetachRolePolicy` 
+  `iam:PassRole` 
+  `iam:GetRole` 
+  `iam:DeleteRole` 
+  `iam:TagRole` 
+  `iam:UntagRole` 
+  `tag:GetResources` 
+  `tag:TagResources` 

提供 `LambdaRoleArn` 時，自動化不需要建立角色，而且可以排除下列許可：
+  `iam:CreateRole` 
+  `iam:DeleteRole` 
+  `iam:TagRole` 
+  `iam:UntagRole` 
+  `iam:AttachRolePolicy` 
+  `iam:DetachRolePolicy` 

以下是範例政策，示範`LambdaRoleArn`未傳遞 ` AutomationAssumeRole` 時所需的許可：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "tag:GetResources",
                "tag:TagResources",
                "ec2:CreateNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DeleteNetworkInterface",
                "eks:DescribeCluster",
                "iam:GetRole",
                "cloudformation:DescribeStacks",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "lambda:GetFunction",
                "lambda:ListTags",
                "logs:ListTagsForResource"
            ],
            "Resource": "*",
            "Effect": "Allow",
            "Sid": "AllowActionsWithoutConditions"
        },
        {
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/AWSSupport-SetupK8sApiProxyForEKS": "true"
                }
            },
            "Action": "iam:CreateRole",
            "Resource": [
                "arn:aws:iam::111122223333:role/Automation-K8sProxy*"
            ],
            "Effect": "Allow",
            "Sid": "AllowCreateRoleWithRequiredTag"
        },
        {
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/AWSSupport-SetupK8sApiProxyForEKS": "true"
                }
            },
            "Action": [
                "iam:DeleteRole",
                "iam:TagRole",
                "iam:UntagRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/Automation-K8sProxy*"
            ],
            "Effect": "Allow",
            "Sid": "IAMActions"
        },
        {
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/AWSSupport-SetupK8sApiProxyForEKS": "true"
                },
                "StringLike": {
                    "iam:PolicyARN": [
                        "arn:aws:iam::111122223333:policy/service-role/AWSLambdaBasicExecutionRole",
                        "arn:aws:iam::111122223333:policy/service-role/AWSLambdaVPCAccessExecutionRole"
                    ]
                }
            },
            "Action": [
                "iam:AttachRolePolicy",
                "iam:DetachRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/Automation-K8sProxy*"
            ],
            "Effect": "Allow",
            "Sid": "AttachRolePolicy"
        },
        {
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/AWSSupport-SetupK8sApiProxyForEKS": "true"
                }
            },
            "Action": [
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:TagResource",
                "lambda:UntagResource",
                "lambda:UpdateFunctionCode"
            ],
            "Resource": "arn:aws:lambda:us-east-1:111122223333:function:Automation-K8sProxy*",
            "Effect": "Allow",
            "Sid": "LambdaActions"
        },
        {
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/AWSSupport-SetupK8sApiProxyForEKS": "true"
                }
            },
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "cloudformation:UpdateStack"
            ],
            "Resource": "arn:aws:cloudformation:us-east-1:111122223333:stack/AWSSupport-SetupK8sApiProxyForEKS*",
            "Effect": "Allow",
            "Sid": "CloudFormationActions"
        },
        {
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/AWSSupport-SetupK8sApiProxyForEKS": "true"
                }
            },
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:PutRetentionPolicy",
                "logs:TagResource",
                "logs:UntagResource"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/aws/lambda/Automation-K8sProxy*",
                "arn:aws:logs:us-east-1:111122223333:log-group:/aws/lambda/Automation-K8sProxy*:*"
            ],
            "Effect": "Allow",
            "Sid": "LogsActions"
        },
        {
            "Condition": {
                "StringLikeIfExists": {
                    "iam:PassedToService": "lambda.amazonaws.com"
                }
            },
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/Automation-K8sProxy-Role*"
            ],
            "Effect": "Allow",
            "Sid": "PassRoleToLambda"
        }
    ]
}
```

------

 如果傳遞 `LambdaRoleArn` ，請確保其已為公有叢集連接 [ AWSLambdaBasicExecutionRole ](https://console.aws.amazon.com/iam/home?region=us-east-1#/policies/details/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2Fservice-role%2FAWSLambdaBasicExecutionRole) 政策，並為私有叢集連接 [ AWSLambdaVPCAccessExecutionRole](https://console.aws.amazon.com/iam/home?region=us-east-1#/policies/details/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2Fservice-role%2FAWSLambdaVPCAccessExecutionRole)。

 **建立的資源** 

`Setup` 操作期間會建立下列資源：

1. AWS Lambda 函數

1. IAM 角色：如果未提供，則為 Lambda 執行角色。

1. CloudWatch Log Group (Lambda Logs)

 *Lambda 函數和執行角色會保留，直到執行`Cleanup`操作為止。Lambda 日誌群組將保留 30 天或直到手動刪除為止。*

 **指示** 

Runbook 是一種協助程式公用程式，旨在從其他 Runbook 中作為子自動化執行。它有助於建立基礎設施，讓父系 Runbook 進行 Amazon EKS K8s 控制平面 API 呼叫。若要使用 Runbook，您可以從父系自動化的內容中遵循下列步驟。

1. **設定階段**：從 Runbook 使用` aws:executeAutomation`動作操作調用自動化，該操作想要在操作設為 的情況下進行 Amazon EKS K8s 控制平面 API 呼叫`Setup`。

   輸入參數的範例：

   ```
      {
        "AutomationAssumeRole": "<role-arn>",
        "ClusterName": "<eks-cluster-name>",
        "Operation": "Setup"
      }
   ```

   `aws:executeAutomation` 步驟的輸出將包含代理 Lambda 函數的 ARN。

1. **使用 Lambda Proxy**：使用 `boto3`` Lambda.Client.invoke(...)`與 API 呼叫路徑和承載字符的清單，在`aws:executeScript`動作內叫用 Lambda 函數。Lambda 函數將傳遞承載字符作為授權標頭的一部分，以對指定的路徑執行 HTTP `GET`呼叫。

   Lambda 調用事件的範例：

   ```
      {
          "ApiCalls": ["/api/v1/pods/", ...],
          "BearerToken": "..."
      }
   ```
**注意**  
承載字符必須產生為父系自動化指令碼的一部分。您需要確保執行父系 Runbook 的委託人具有指定 Amazon EKS 叢集的唯讀許可。

1. **清除階段**：從 Runbook 使用` aws:executeAutomation`動作操作調用自動化，該操作想要在操作設為 的情況下進行 Amazon EKS K8s 控制平面 API 呼叫`Cleanup`。

   輸入參數的範例：

   ```
      {
        "AutomationAssumeRole": "<role-arn>",
        "ClusterName": "<eks-cluster-name>",
        "Operation": "Cleanup"
      }
   ```

 **自動化步驟** 

1.  **ValidateExecution** 
   + 確認自動化不是以獨立執行的方式執行。

1.  **CheckForExistingStack** 
   + 檢查 CloudFormation 堆疊是否已為指定的叢集名稱佈建。
   + 傳回堆疊存在狀態，以及刪除是否安全。

1.  **BranchOnIsStackExists** 
   + 根據堆疊存在進行分支的決策步驟。
   + 更新現有堆疊名稱或繼續操作分支的路由。

1.  **UpdateStackName** 
   + 使用現有堆疊的名稱更新`StackName`變數。
   + 只有在堆疊已存在時才執行。

1.  **BranchOnOperation** 
   + 根據 `Operation` 參數 (`Setup` /) 路由自動化`Cleanup`。
   + 對於 `Setup`：建立新堆疊或描述現有資源的路由。
   + 對於 `Cleanup`：如果可安全刪除，則繼續刪除堆疊。

1.  **GetClusterNetworkConfig** 
   + 描述 Amazon EKS 叢集以取得 VPC 組態。
   + 擷取端點、VPC ID、子網路 IDs、安全群組 ID 和 CA 資料。

1.  **ProvisionResources** 
   + 建立具有必要資源的 CloudFormation 堆疊。
   + 使用必要的聯網組態佈建 Lambda 函數。
   + 標記所有資源以進行追蹤和管理。

1.  **DescribeStackResources** 
   + 擷取已建立/現有堆疊的相關資訊。
   + 取得佈建 Lambda 函數的 ARN。

1.  **BranchOnIsLambdaDeploymentRequired** 
   + 判斷是否需要 Lambda 程式碼部署。
   + 僅繼續部署新建立的堆疊。

1.  **DeployLambdaFunctionCode** 
   + 使用部署套件部署 Lambda 函數程式碼。
   + 使用代理實作更新函數。

1.  **AssertLambdaAvailable** 
   + 驗證 Lambda 函數程式碼更新是否成功。
   + 等待函數處於 `Successful` 狀態。

1.  **PerformStackCleanup** 
   + 刪除 CloudFormation 堆疊和相關聯的資源。
   + 在`Cleanup`操作期間或` Setup`操作失敗時執行。

 **輸出** 

*LambdaFunctionArn*：代理 Lambda 函數的 ARN

**參考**

Systems Manager Automation
+ [執行自動化](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-TroubleshootEbsCsiDriversForEks`
<a name="automation-awssupport-troubleshoot-ebs-csi-drivers-for-eks"></a>

 **Description** 

 `AWSSupport-TroubleshootEbsCsiDriversForEks` Runbook 可協助疑難排解 Amazon Elastic Kubernetes Service (Amazon EKS) 和 Amazon EBS 容器儲存介面 (CSI) 驅動程式問題中 Amazon Elastic Block Store 磁碟區掛載的問題 

**重要**  
目前 AWS Fargate 不支援在 上執行的 Amazon EBS CSI 驅動程式。

 **如何運作？** 

 Runbook 會`AWSSupport-TroubleshootEbsCsiDriversForEks`執行下列高階步驟：
+ 驗證目標 Amazon EKS 叢集是否存在且處於作用中狀態。
+ 根據附加元件是 Amazon EKS 受管或自我管理，部署進行 Kubernetes API 呼叫所需的身分驗證資源。
+ 執行 Amazon EBS CSI 控制器運作狀態檢查和診斷。
+ 對節點角色和服務帳戶角色執行 IAM 許可檢查。
+ 診斷指定應用程式 Pod 的持久性磁碟區建立問題。
+ 檢查node-to-pod排程，並檢查 Pod 事件。
+ 收集相關的 Kubernetes 和應用程式日誌，將它們上傳到指定的 Amazon S3 儲存貯體。
+ 執行節點運作狀態檢查，並驗證與 Amazon EC2 端點的連線。
+ 檢閱持久性磁碟區區塊型設備附件和掛載狀態。
+ 清除在疑難排解期間建立的身分驗證基礎設施。
+ 產生結合所有診斷結果的全方位故障診斷報告。

**注意**  
Amazon EKS 叢集的身分驗證模式必須設定為 `API`或 `API_AND_CONFIG_MAP`。建議使用 Amazon EKS Access 項目。Runbook 需要 Kubernetes 角色型存取控制 (RBAC) 許可才能執行必要的 API 呼叫。
如果您未指定 Lambda 函數 (`LambdaRoleArn` 參數） 的 IAM 角色，自動化會在您的帳戶`Automation-K8sProxy-Role-<ExecutionId>`中建立名為 的角色。此角色包含 受管政策和 `AWSLambdaBasicExecutionRole` `AWSLambdaVPCAccessExecutionRole`。
某些診斷步驟需要 Amazon EKS 工作者節點為 Systems Manager 受管執行個體。如果節點不是 Systems Manager 受管執行個體，則會略過需要 Systems Manager 存取的步驟，但其他檢查會繼續進行。
自動化包含移除身分驗證基礎設施資源的清除步驟。即使先前的步驟失敗，此清除步驟仍會執行，這有助於防止 AWS 帳戶中的孤立資源。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootEbsCsiDriversForEks) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:DescribeIamInstanceProfileAssociations`
+ `ec2:DescribeInstanceStatus`
+ `ec2:GetEbsEncryptionByDefault`
+ `eks:DescribeAddon`
+ `eks:DescribeAddonVersions`
+ `eks:DescribeCluster`
+ `iam:GetInstanceProfile`
+ `iam:GetOpenIDConnectProvider`
+ `iam:GetRole`
+ `iam:ListOpenIDConnectProviders`
+ `iam:SimulatePrincipalPolicy`
+ `s3:GetBucketLocation`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:GetBucketVersioning`
+ `s3:ListBucket`
+ `s3:ListBucketVersions`
+ `ssm:DescribeInstanceInformation`
+ `ssm:GetAutomationExecution`
+ `ssm:GetDocument`
+ `ssm:ListCommandInvocations`
+ `ssm:ListCommands`
+ `ssm:SendCommand`
+ `ssm:StartAutomationExecution`

 **指示** 

請依照下列步驟設定自動化：

1. 在`TroubleshootEbsCsiDriversForEks-SSM-Role`帳戶中建立 SSM 自動化角色。確認信任關係包含下列政策。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. 將下列政策連接至 IAM 角色，以授予對指定資源執行指定動作所需的許可。
   + 如果您預期將執行和資源日誌上傳到相同區域中的 Amazon S3 儲存貯 AWS 體，請將 取代`arn:{partition}:s3:::BUCKET_NAME/*`為 中的 `OptionalRestrictPutObjects`。
     + 如果您要在 SSM Amazon S3 儲存貯體應指向正確的 Amazon S3 儲存貯體。 `S3BucketName`
     + 如果您未指定 ，則此許可為選用 `S3BucketName`
     + Amazon S3 儲存貯體必須是私有的，且位於執行 SSM 自動化的相同 AWS 區域中。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "OptionalRestrictPutObjects",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeIamInstanceProfileAssociations",
                   "ec2:DescribeInstanceStatus",
                   "ec2:GetEbsEncryptionByDefault",
                   "eks:DescribeAddon",
                   "eks:DescribeAddonVersions",
                   "eks:DescribeCluster",
                   "iam:GetInstanceProfile",
                   "iam:GetOpenIDConnectProvider",
                   "iam:GetRole",
                   "iam:ListOpenIDConnectProviders",
                   "iam:SimulatePrincipalPolicy",
                   "s3:GetBucketLocation",
                   "s3:GetBucketPolicyStatus",
                   "s3:GetBucketPublicAccessBlock",
                   "s3:GetBucketVersioning",
                   "s3:ListBucket",
                   "s3:ListBucketVersions",
                   "ssm:DescribeInstanceInformation",
                   "ssm:GetAutomationExecution",
                   "ssm:GetDocument",
                   "ssm:ListCommandInvocations",
                   "ssm:ListCommands",
                   "ssm:SendCommand",
                   "ssm:StartAutomationExecution"
               ],
               "Resource": "*"
           },
           {
               "Sid": "SetupK8sApiProxyForEKSActions",
               "Effect": "Allow",
               "Action": [
                   "cloudformation:CreateStack",
                   "cloudformation:DeleteStack",
                   "cloudformation:DescribeStacks",
                   "cloudformation:UpdateStack",
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:DescribeNetworkInterfaces",
                   "ec2:DescribeRouteTables",
                   "ec2:DescribeSecurityGroups",
                   "ec2:DescribeSubnets",
                   "ec2:DescribeVpcs",
                   "eks:DescribeCluster",
                   "iam:CreateRole",
                   "iam:DeleteRole",
                   "iam:GetRole",
                   "iam:TagRole",
                   "iam:UntagRole",
                   "lambda:CreateFunction",
                   "lambda:DeleteFunction",
                   "lambda:GetFunction",
                   "lambda:InvokeFunction",
                   "lambda:ListTags",
                   "lambda:TagResource",
                   "lambda:UntagResource",
                   "lambda:UpdateFunctionCode",
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams",
                   "logs:ListTagsForResource",
                   "logs:PutLogEvents",
                   "logs:PutRetentionPolicy",
                   "logs:TagResource",
                   "logs:UntagResource",
                   "ssm:DescribeAutomationExecutions",
                   "tag:GetResources",
                   "tag:TagResources"
               ],
               "Resource": "*"
           },
           {
               "Sid": "PassRoleToAutomation",
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": [
                   "arn:aws:iam::*:role/TroubleshootEbsCsiDriversForEks-SSM-Role",
                   "arn:aws:iam::*:role/Automation-K8sProxy-Role-*"
               ],
               "Condition": {
                   "StringLikeIfExists": {
                       "iam:PassedToService": [
                           "lambda.amazonaws.com",
                           "ssm.amazonaws.com"
                       ]
                   }
               }
           },
           {
               "Sid": "AttachRolePolicy",
               "Effect": "Allow",
               "Action": [
                   "iam:AttachRolePolicy",
                   "iam:DetachRolePolicy"
               ],
               "Resource": "*",
               "Condition": {
                   "StringLikeIfExists": {
                       "iam:ResourceTag/AWSSupport-SetupK8sApiProxyForEKS": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. 授予 Amazon EKS 叢集 RBAC （以角色為基礎的存取控制） 所需的許可。建議的方法是在 Amazon EKS 叢集中建立存取項目。

    在 Amazon EKS 主控台中，導覽至您的叢集。對於 Amazon EKS 存取項目，請確認您的存取組態設定為 `API_AND_CONFIG_MAP`或 `API`。如需設定存取項目身分驗證模式的步驟，請參閱[設定存取項目](https://docs.aws.amazon.com//eks/latest/userguide/setting-up-access-entries.html)。

   選擇**建立存取項目**。
   + 針對 *IAM 主體 ARN*，選取您在上一個步驟中為 SSM 自動化建立的 IAM 角色。
   + 針對*類型*，選取 `Standard`。

1. 新增存取政策：
   + 針對*存取範圍*，選取 `Cluster`。
   + 針對*政策名稱*，選取 `AmazonEKSAdminViewPolicy`。

   選擇 **Add Policy (新增政策)**。

   如果您未使用存取項目來管理 Kubernetes API 許可，則必須更新 `aws-auth` ConfigMap，並在 IAM 使用者或角色之間建立角色繫結。確保您的 IAM 實體具有下列唯讀 Kubernetes API 許可：
   + GET `/apis/apps/v1/namespaces/{namespace}/deployments/{name}`
   + GET `/apis/apps/v1/namespaces/{namespace}/replicasets/{name}`
   + GET `/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}`
   + GET `/api/v1/nodes/{name}`
   + GET `/api/v1/namespaces/{namespace}/serviceaccounts/{name}`
   + GET `/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}`
   + GET `/api/v1/persistentvolumes/{name}`
   + GET `/apis/storage.k8s.io/v1/storageclasses/{name}`
   + GET `/api/v1/namespaces/{namespace}/pods/{name}`
   + GET `/api/v1/namespaces/{namespace}/pods`
   + GET `/api/v1/namespaces/{namespace}/pods/{name}/log`
   + GET `/api/v1/events`

1. 執行自動化 [AWSSupport-TroubleshootEbsCsiDriversForEks （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEbsCsiDriversForEks/description)

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 SSM Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。角色需要新增到您的 Amazon EKS 叢集存取項目或 RBAC 許可，以允許 Kubernetes API 呼叫。
     + 類型：`AWS::IAM::Role::Arn`
     + 範例：`TroubleshootEbsCsiDriversForEks-SSM-Role`
   + **EksClusterName：**
     + 描述：目標 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集的名稱。
     + 類型：`String`
   + **ApplicationPodName：**
     + 描述：Amazon EBS CSI 驅動程式發生問題的 Kubernetes 應用程式 Pod 名稱。
     + 類型：`String`
   + **ApplicationNamespace：**
     + 描述：Amazon EBS CSI 驅動程式發生問題之應用程式 Pod 的 Kubernetes 命名空間。
     + 類型：`String`
   + **EbsCsiControllerDeploymentName （選用）：**
     + 描述：（選用） Amazon EBS CSI 控制器 Pod 的部署名稱。
     + 類型：`String`
     + 預設：`ebs-csi-controller`
   + **EbsCsiControllerNamespace （選用）：**
     + 描述：（選用） Amazon EBS CSI 控制器 Pod 的 Kubernetes 命名空間。
     + 類型：`String`
     + 預設：`kube-system`
   + **S3BucketName （選用）：**
     + 描述：（選用） 將上傳故障診斷日誌的目標 Amazon S3 儲存貯體名稱。
     + 類型：`AWS::S3::Bucket::Name`
   + **LambdaRoleArn （選用）：**
     + 描述：（選用） 允許 AWS Lambda 函數存取所需 AWS 服務和資源的 IAM 角色 ARN。
     + 類型：`AWS::IAM::Role::Arn`

   選取**執行**。

1. 完成後，請檢閱*輸出*區段以取得執行的詳細結果。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEbsCsiDriversForEks/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/)

如需 Amazon EBS CSI 驅動程式的詳細資訊，請參閱 [Amazon EBS CSI 驅動程式](https://docs.aws.amazon.com//eks/latest/userguide/ebs-csi.html)。

# `AWSSupport-TroubleshootEKSALBControllerIssues`
<a name="automation-awssupport-troubleshoot-eks-alb-controller-issues"></a>

 **Description** 

 `AWSSupport-TroubleshootEKSALBControllerIssues` 自動化 Runbook 可協助診斷常見問題，這些常見問題會阻止 AWS Load Balancer控制器針對 Kubernetes 輸入和服務正確佈建和管理 Application Load Balancer (ALB) 和 Network Load Balancer (NLB)。

 此 Runbook 會執行基本元件的end-to-end驗證，包括 OIDC 身分提供者設定、IRSA 組態、聯網先決條件、輸入/服務組態和資源配額。它也會擷取控制器日誌和相關的 Kubernetes 資源組態，以協助識別組態錯誤或操作問題。

**重要**  
此自動化 Runbook 專為使用 Amazon Elastic Compute Cloud (Amazon EC2) 節點群組的 Amazon EKS 叢集而設計，目前不支援在其中執行的叢集 AWS Fargate。

 **如何運作？** 

 Runbook 會`AWSSupport-TroubleshootEKSALBControllerIssues`執行下列高階步驟：
+ 驗證 Amazon EKS 叢集狀態、存取項目組態和 OIDC 供應商設定。
+ 為 Kubernetes API 通訊建立臨時 Lambda 代理。
+ Checks AWS Load Balancer 控制器部署和服務帳戶組態。
+ 驗證 Pod 身分 Webhook 和 IAM 角色注入。
+ 驗證 Application Load Balancer 和 Network Load Balancer 佈建的子網路組態和標記。
+ 根據目前的用量檢查 Application Load Balancer 和 Network Load Balancer 帳戶配額。
+ 驗證輸入和服務資源註釋。
+ 檢查工作者節點安全群組標記負載平衡器整合。
+ 收集控制器 Pod 日誌以進行診斷。
+ 清除臨時身分驗證資源。
+ 使用問題清單和修復步驟產生診斷報告。

**注意**  
Amazon EKS 叢集必須為執行此自動化的 IAM 實體設定存取項目。叢集的身分驗證模式必須設定為 `API`或 `API_AND_CONFIG_MAP`。如果沒有適當的存取項目組態，自動化會在初始驗證期間終止。
`LambdaRoleArn` 參數是必要的，且必須`AWSLambdaBasicExecutionRole``AWSLambdaVPCAccessExecutionRole`連接 AWS 受管政策，以允許代理函數與 Kubernetes API 通訊。
 AWS Load Balancer控制器必須是版本 `v2.1.1`或更新版本。
自動化包含清除步驟，可移除臨時身分驗證基礎設施資源。即使先前的步驟失敗，此清除步驟仍會執行，確保 AWS 您的帳戶中沒有保留孤立的資源。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootEKSALBControllerIssues) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStacks`
+ `cloudformation:UpdateStack`
+ `ec2:CreateNetworkInterface`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeInstances`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcs`
+ `eks:DescribeCluster`
+ `eks:ListAssociatedAccessPolicies`
+ `elasticloadbalancing:DescribeAccountLimits`
+ `elasticloadbalancing:DescribeLoadBalancers`
+ `iam:GetRole`
+ `iam:ListOpenIDConnectProviders`
+ `iam:PassRole`
+ `lambda:CreateFunction`
+ `lambda:DeleteFunction`
+ `lambda:GetFunction`
+ `lambda:InvokeFunction`
+ `lambda:ListTags`
+ `lambda:TagResource`
+ `lambda:UntagResource`
+ `lambda:UpdateFunctionCode`
+ `logs:CreateLogGroup`
+ `logs:CreateLogStream`
+ `logs:DescribeLogGroups`
+ `logs:DescribeLogStreams`
+ `logs:ListTagsForResource`
+ `logs:PutLogEvents`
+ `logs:PutRetentionPolicy`
+ `logs:TagResource`
+ `logs:UntagResource`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `tag:GetResources`
+ `tag:TagResources`

 **指示** 

請依照下列步驟來設定和執行自動化：

**注意**  
在執行自動化之前，請依照下列步驟設定所需的 IAM 角色：一個用於 Systems Manager Automation 執行 Runbook，另一個用於 Lambda 與 Kubernetes API 通訊：  
在`TroubleshootEKSALBController-SSM-Role`帳戶中建立 SSM 自動化角色。確認信任關係包含下列政策。  

   ```
   {
               "Version": "2012-10-17",		 	 	 
               "Statement": [
                   {
                       "Sid": "",
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "ssm.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole"
                   }
               ]
           }
   ```
連接下列 IAM 政策以授予必要的許可：  

   ```
   {
               "Version": "2012-10-17",		 	 	 
               "Statement": [{
                   "Sid": "TroubleshootEKSALBControllerIssuesActions",
                   "Effect": "Allow",
                   "Action": [
                       "eks:DescribeCluster",
                       "eks:ListAssociatedAccessPolicies",
                       "iam:GetRole",
                       "iam:ListOpenIDConnectProviders",
                       "ssm:StartAutomationExecution",
                       "ssm:GetAutomationExecution",
                       "ssm:DescribeAutomationExecutions",
                       "ec2:DescribeSubnets",
                       "ec2:DescribeRouteTables",
                       "elasticloadbalancing:DescribeLoadBalancers",
                       "elasticloadbalancing:DescribeAccountLimits",
                       "ec2:DescribeInstances",
                       "ec2:DescribeNetworkInterfaces",
                       "ec2:DescribeSecurityGroups"
                   ],
                   "Resource": "*"
               },
               {
                   "Sid": "SetupK8sApiProxyForEKSActions",
                   "Effect": "Allow",
                   "Action": [
                       "cloudformation:CreateStack",
                       "cloudformation:DeleteStack",
                       "cloudformation:DescribeStacks",
                       "cloudformation:UpdateStack",
                       "ec2:CreateNetworkInterface",
                       "ec2:DeleteNetworkInterface",
                       "ec2:DescribeNetworkInterfaces",
                       "ec2:DescribeRouteTables",
                       "ec2:DescribeSecurityGroups",
                       "ec2:DescribeSubnets",
                       "ec2:DescribeVpcs",
                       "eks:DescribeCluster",
                       "iam:GetRole",
                       "lambda:CreateFunction",
                       "lambda:DeleteFunction",
                       "lambda:GetFunction",
                       "lambda:InvokeFunction",
                       "lambda:ListTags",
                       "lambda:TagResource",
                       "lambda:UntagResource",
                       "lambda:UpdateFunctionCode",
                       "logs:CreateLogGroup",
                       "logs:CreateLogStream",
                       "logs:DescribeLogGroups",
                       "logs:DescribeLogStreams",
                       "logs:ListTagsForResource",
                       "logs:PutLogEvents",
                       "logs:PutRetentionPolicy",
                       "logs:TagResource",
                       "logs:UntagResource",
                       "ssm:DescribeAutomationExecutions",
                       "tag:GetResources",
                       "tag:TagResources"
                   ],
                   "Resource": "*"
               },
               {
                   "Sid": "PassRoleToAutomation",
                   "Effect": "Allow",
                   "Action": "iam:PassRole",
                   "Resource": "*",
                   "Condition": {
                       "StringLikeIfExists": {
                           "iam:PassedToService": [
                               "lambda.amazonaws.com",
                               "ssm.amazonaws.com"
                           ]
                       }
                   }
               }]
           }
   ```
設定 Amazon EKS 叢集的存取項目。這是自動化的必要要求。如需設定存取項目身分驗證模式的步驟，請參閱[設定存取項目](https://docs.aws.amazon.com//eks/latest/userguide/setting-up-access-entries.html)。  
在 Amazon EKS 主控台中，導覽至您的叢集並遵循下列步驟：  
在**存取**區段下，確認您的身分驗證組態設定為 `API`或 `API_AND_CONFIG_MAP`。
選擇**建立存取項目**並設定：  
針對 *IAM 主體 ARN*，選取您建立的 IAM 角色 (`TroubleshootEKSALBController-SSM-Role`)。
針對*類型*，選取 `Standard`。
新增存取政策：  
針對*政策名稱*，選取 `AmazonEKSAdminViewPolicy`。
針對*存取範圍*，選取 `Cluster`。
選擇 **Add Policy (新增政策)**。
驗證詳細資訊，然後選擇**建立**。
為 Lambda 函數建立 IAM 角色 （在輸入參數`LambdaRoleArn`中參考為 )：  
使用下列信任政策建立新的 IAM 角色：  

     ```
     {
                 "Version": "2012-10-17",		 	 	 
                 "Statement": [
                     {
                         "Effect": "Allow",
                         "Principal": {
                             "Service": "lambda.amazonaws.com"
                         },
                         "Action": "sts:AssumeRole"
                     }
                 ]
             }
     ```
將下列 AWS 受管政策連接至此角色：  
`AWSLambdaBasicExecutionRole`
`AWSLambdaVPCAccessExecutionRole`
請注意此角色的 ARN，因為`LambdaRoleArn`輸入參數需要此角色。

1. 在 AWS Systems Manager 主控台中導覽至 [AWSSupport-TroubleshootEKSALBControllerIssues](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEKSALBControllerIssues/description)。

1. 選擇 **Execute automation (執行自動化)**。

1. 針對輸入參數，輸入下列項目：
   + **AutomationAssumeRole （選用）：**

     類型：AWS::IAM::Role：：Arn

     描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 AWS Identity and Access Management (IAM) 角色的 Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。

     允許模式：^arn：(？：aws\$1aws-cn\$1aws-us-gov)：iam：：\$1d\$112\$1：role/？【a-zA-Z\$10-9\$1=，.@\$1-\$1/】\$1\$1
   + **EksClusterName （必要）：**

     類型：字串

     描述：（必要） Amazon Elastic Kubernetes Service (Amazon EKS) 叢集的名稱。

     允許模式：^【0-9A-Za-z】【A-Za-z0-9-\$1】\$10，99\$1\$1
   + **ALBControllerDeploymentName （選用）：**

     類型：字串

     描述：（選用） Amazon EKS 叢集中的 AWS Load Balancer控制器部署名稱。這通常是 'aws-load-balancer-controller'，除非您已在安裝期間加以自訂。

     允許模式：^【a-z0-9】(【-.a-z0-9】\$10，251\$1【a-z0-9】)？\$1

     預設：aws-load-balancer-controller
   + **ALBControllerNamespace （選用）：**

     類型：字串

     描述：（選用） 部署 AWS Load Balancer控制器的 Kubernetes 命名空間。根據預設，這是「kube-system」，但如果您已在自訂命名空間中安裝控制器，則可能會有所差異。

     允許模式：^【a-z0-9】(【-a-z0-9】\$10，61\$1【a-z0-9】)？\$1

     預設：kube-system
   + **ServiceAccountName （選用）：**

     類型：字串

     描述：（選用） 與 AWS Load Balancer控制器相關聯的 Kubernetes 服務帳戶名稱。除非在安裝期間自訂，否則這通常是 'aws-load-balancer-controller'。

     允許模式：^【a-z0-9】(【-.a-z0-9】\$10，251\$1【a-z0-9】)？\$1

     預設：aws-load-balancer-controller
   + **ServiceAccountNamespace （選用）：**

     類型：字串

     描述：（選用） AWS Load Balancer控制器的服務帳戶所在的 Kubernetes 命名空間。這通常是「kube-system」，但如果您已使用自訂命名空間，則可能會有所不同。

     允許模式：^【a-z0-9】(【-a-z0-9】\$10，61\$1【a-z0-9】)？\$1

     預設：kube-system
   + **IngressName （選用）：**

     類型：字串

     描述：（選用） 要驗證的傳入資源名稱 (Application Load Balancer)。如果未指定，則會略過傳入驗證。

     允許模式：^\$1\$1^【a-z0-9】【a-z0-9.-】\$10，251\$1【a-z0-9】\$1

     預設："" （空字串）
   + **IngressNamespace （選用）：**

     類型：字串

     描述：（選用） 傳入資源的命名空間。如果指定 `IngressName` ，則為必要項目。

     允許模式：^\$1\$1^【a-z0-9】【a-z0-9-】\$10，61\$1【a-z0-9】\$1

     預設："" （空字串）
   + **ServiceName （選用）：**

     類型：字串

     描述：（選用） 驗證 Network Load Balancer (Network Load Balancer) 註釋的特定服務資源名稱。如果未指定，則會略過服務資源驗證。

     允許模式：^\$1\$1^【a-z0-9】【a-z0-9.-】\$10，251\$1【a-z0-9】\$1

     預設："" （空字串）
   + **ServiceNamespace （選用）：**

     類型：字串

     描述：（選用） 服務資源的命名空間。如果指定 `ServiceName` ，則為必要項目。

     允許模式：^\$1\$1^【a-z0-9】【a-z0-9-】\$10，61\$1【a-z0-9】\$1

     預設："" （空字串）
   + **LambdaRoleArn （必要）：**

     類型：AWS::IAM::Role：：Arn

     描述：（必要） 允許 AWS Lambda (Lambda) 函數存取所需 AWS 服務和資源的 IAM 角色 ARN。將 AWS 受管政策： `AWSLambdaBasicExecutionRole`和 `AWSLambdaVPCAccessExecutionRole`與您的 lambda 函數執行 IAM 角色建立關聯。

     允許模式：^arn：(？：aws\$1aws-cn\$1aws-us-gov)：iam：：\$1d\$112\$1：role/？【a-zA-Z\$10-9\$1=，.@\$1-\$1/】\$1\$1

1. 選擇 **Execute (執行)**。

1. 自動化會啟動。

1. 文件會執行下列步驟：

   1. **ValidateAccessEntryAndOIDCProvider：**

      透過檢查存取項目許可和 OIDC 提供者組態來驗證 Amazon EKS 叢集 IAM 設定。

   1. **SetupK8sAuthenticationClient：**

      執行 SAW 文件 AWSSupport-SetupK8sApiProxyForEKS，以設定 lambda 函數在叢集上執行 Amazon EKS API 呼叫。

   1. **VerifyALBControllerAndIRSASetup：**

      檢查指定的服務帳戶和 Application Load Balancer 控制器是否存在於各自的命名空間中。同時檢查 Application Load Balancer 控制器的服務帳戶角色註釋和信任政策。

   1. **VerifyPodIdentityWebhookAndEnv：**

      檢查 pod-identity-webhook 是否正在執行。同時檢查 IRSA 是否注入 Pod 的 ENV 變數。

   1. **ValidateSubnetRequirements：**

      檢查具有 8 個可用 IP 的兩個 AZ 中至少兩個子網路，公有/私有負載平衡器存在適當的子網路標記。

   1. **CheckLoadBalancerLimitsAndUsage：**

      比較帳戶限制與 Application Load Balancer 和 Network Load Balancer 的數量。

   1. **CheckIngressOrServiceAnnotations：**

      檢查輸入和服務資源中的註釋和規格是否正確，以確保它們已針對 Application Load Balancer 和 Network Load Balancer 使用正確設定。

   1. **CheckWorkerNodeSecurityGroupTags：**

      確認連接到工作者節點的安全群組只有一個必要的叢集標籤。

   1. **CaptureALBControllerLogs：**

      從 Amazon EKS 叢集中執行的 AWS Load Balancer控制器 Pod 擷取最新的診斷日誌。

   1. **CleanupK8sAuthenticationClient：**

      使用 'Cleanup' 操作執行 SAW 文件 'AWSSupport-SetupK8sApiProxyForEKS'，以清除在自動化過程中建立的資源。

   1. **GenerateReport：**

      產生自動化報告。

1. 執行完成後，請檢閱輸出區段以取得執行的詳細結果：

   1. **報告：**

      提供所有已執行檢查的完整摘要，包括 Amazon EKS 叢集的狀態、Application Load Balancer 控制器設定、IRSA 組態、子網路需求、負載平衡器限制、輸入/服務註釋、工作者節點安全群組標籤，以及 Application Load Balancer 控制器日誌。它還包括任何已識別的問題和建議的修復步驟。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEKSALBControllerIssues/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 Load Balancer控制器相關的文件
+ [AWS Load Balancer控制器](https://docs.aws.amazon.com//eks/latest/userguide/aws-load-balancer-controller.html)
+ [設定存取項目](https://docs.aws.amazon.com//eks/latest/userguide/setting-up-access-entries.html)

# Elastic Beanstalk
<a name="automation-ref-aeb"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Elastic Beanstalk。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-CollectElasticBeanstalkLogs`](automation-awssupport-collectbeanstalk-logs.md)
+ [`AWSConfigRemediation-EnableElasticBeanstalkEnvironmentLogStreaming`](automation-aws-enable-eb-logging.md)
+ [`AWSConfigRemediation-EnableBeanstalkEnvironmentNotifications`](automation-aws-enable-eb-notifications.md)
+ [`AWSSupport-TroubleshootElasticBeanstalk`](automation-awssupport-troubleshoot-elastic-beanstalk.md)

# `AWSSupport-CollectElasticBeanstalkLogs`
<a name="automation-awssupport-collectbeanstalk-logs"></a>

 **Description** 

 `AWSSupport-CollectElasticBeanstalkLogs` Runbook 會從 Elastic Beanstalk 啟動的 Amazon Elastic Compute Cloud (Amazon EC2) Windows Server執行個體收集 AWS Elastic Beanstalk 相關的日誌檔案，協助您疑難排解常見問題。當自動化收集相關的日誌檔案時，會變更檔案系統結構，包括建立暫存目錄、將日誌檔案複製到暫存目錄，以及將日誌檔案壓縮至封存。此活動可能會導致 Amazon EC2 執行個體`CPUUtilization`增加。如需 `CPUUtilization` 的詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的[執行個體指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html#ec2-cloudwatch-metrics)。

 如果您指定 `S3BucketName` 參數的值，自動化會評估您指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體的政策狀態。為了協助保護從 Amazon EC2 執行個體收集之日誌的安全性，如果政策狀態`isPublic`設定為 `true` ，或存取控制清單 (ACL) 將`READ|WRITE`許可授予 `All Users` Amazon S3 預先定義的群組，則不會上傳日誌。如需 Amazon S3 預先定義群組的詳細資訊，請參閱[《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 預先定義群組](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#specifying-grantee-predefined-groups)。 **

 如果您未指定 `S3BucketName` 參數的值，自動化會將日誌套件上傳到執行自動化 AWS 區域 的 中的預設 Elastic Beanstalk Amazon S3 儲存貯體。目錄會根據下列結構命名` elasticbeanstalk- region - accountID `：。*區域*和 *accountID* 值會根據區域和 AWS 帳戶 您在其中執行自動化而有所不同。日誌套件將儲存至 ` resources/environments/logs/bundle/ environmentID / instanceID `目錄。*environmentID* 和 *instanceID* 值會根據 Elastic Beanstalk 環境和您要從中收集日誌的 Amazon EC2 執行個體而有所不同。

 根據預設，連接至 Elastic Beanstalk 環境的 Amazon EC2 執行個體的 AWS Identity and Access Management (IAM) 執行個體描述檔具有必要的許可，可將套件上傳至您環境的預設 Elastic Beanstalk Amazon S3 儲存貯體。如果您指定 `S3BucketName` 參數的值，連接至 Amazon EC2 執行個體的執行個體描述檔必須允許指定 `s3:GetBucketAcl` Amazon S3 儲存貯體和路徑的 `s3:GetBucketPolicy` `s3:GetBucketPolicyStatus` 、、 和 `s3:PutObject`動作。

**注意**  
 此自動化在連接至 Amazon EC2 執行個體的根 Amazon Elastic Block Store (Amazon EBS) 磁碟區上需要至少 500 MB 的可用磁碟空間。如果根磁碟區上的可用磁碟空間不足，自動化會停止。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CollectElasticBeanstalkLogs) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ EnvironmentId

  類型：字串

  描述：（必要） 您要從中收集日誌套件的 Elastic Beanstalk 環境 ID。
+ InstanceId

  類型：字串

  （必要） 您要從中收集日誌套件的 Elastic Beanstalk 環境中的 Amazon EC2 執行個體 ID。
+ S3BucketName

  類型：字串

  （選用） 您要上傳封存日誌的 Amazon S3 儲存貯體。
+ S3BucketPath

  類型：字串

   （選用） 您要上傳日誌套件的 Amazon S3 儲存貯體路徑。如果您未指定 參數的值，則會忽略此`S3BucketName`參數。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ssm:SendCommand` 
+  `ssm:DescribeInstanceInformation` 
+  `ec2:DescribeInstances` 

 **文件步驟** 
+  `aws:assertAwsResourceProperty` - 確認您在 `InstanceId` 參數中指定的 Amazon EC2 執行個體是由 管理 AWS Systems Manager。
+  `aws:assertAwsResourceProperty` - 確認您在 `InstanceId` 參數中指定的 Amazon EC2 執行個體是Windows Server執行個體。
+  `aws:runCommand` - 檢查執行個體是否為 Elastic Beanstalk 環境的一部分、是否有足夠磁碟空間來綁定日誌，以及日誌上傳到的 Amazon S3 儲存貯體是否為公有。
+  `aws:runCommand` - 收集日誌檔案，並在未指定值時，將封存上傳到 `S3BucketName` 參數中指定的 Amazon S3 儲存貯體，或上傳到 Elastic Beanstalk 環境的預設儲存貯體。

# `AWSConfigRemediation-EnableElasticBeanstalkEnvironmentLogStreaming`
<a name="automation-aws-enable-eb-logging"></a>

 **Description** 

 `AWSConfigRemediation-EnableElasticBeanstalkEnvironmentLogStreaming` Runbook 可讓您記錄您指定的 AWS Elastic Beanstalk (Elastic Beanstalk) 環境。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableElasticBeanstalkEnvironmentLogStreaming) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ EnvironmentId

  類型：字串

  描述：（必要） 您要啟用登入的 Elastic Beanstalk 環境 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `elasticbeanstalk:DescribeConfigurationSettings` 
+  `elasticbeanstalk:DescribeEnvironments` 
+  `elasticbeanstalk:UpdateEnvironment` 

 **文件步驟** 
+  `aws:executeAwsApi` - 啟用您在 `EnvironmentId` 參數中指定的 Elastic Beanstalk 環境記錄。
+  `aws:waitForAwsResourceProperty` - 等待環境的狀態變更為 `Ready` 。
+  `aws:executeScript` - 確認已在 Elastic Beanstalk 環境中啟用記錄。

# `AWSConfigRemediation-EnableBeanstalkEnvironmentNotifications`
<a name="automation-aws-enable-eb-notifications"></a>

 **Description** 

 `AWSConfigRemediation-EnableBeanstalkEnvironmentNotifications` Runbook 會啟用您指定之 AWS Elastic Beanstalk (Elastic Beanstalk) 環境的通知。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableBeanstalkEnvironmentNotifications) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ EnvironmentId

  類型：字串

  描述：（必要） 您要為其啟用通知的 Elastic Beanstalk 環境 ID。
+ TopicArn

  類型：字串

  描述：（必要） 您要傳送通知的 Amazon Simple Notification Service (Amazon SNS) 主題的 ARN。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `elasticbeanstalk:DescribeConfigurationSettings` 
+  `elasticbeanstalk:DescribeEnvironments` 
+  `elasticbeanstalk:UpdateEnvironment` 

 **文件步驟** 
+  `aws:executeAwsApi` - 針對您在 `EnvironmentId` 參數中指定的 Elastic Beanstalk 環境啟用通知。
+  `aws:waitForAwsResourceProperty` - 等待環境的狀態變更為 `Ready` 。
+  `aws:executeScript` - 驗證已為 Elastic Beanstalk 環境啟用通知。

# `AWSSupport-TroubleshootElasticBeanstalk`
<a name="automation-awssupport-troubleshoot-elastic-beanstalk"></a>

 **Description** 

 `AWSSupport-TroubleshootElasticBeanstalk` Runbook 可協助您針對 AWS Elastic Beanstalk 環境處於 `Degraded`或 `Severe` 狀態的潛在原因進行故障診斷。此自動化會檢查與 Elastic Beanstalk 環境相關聯的下列 AWS 資源：
+ 負載平衡器、 AWS CloudFormation 堆疊、Amazon EC2 Auto Scaling 群組、Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和虛擬私有雲端 (VPC) 的組態詳細資訊。
+ 與子網路相關聯的安全群組規則、路由表和網路存取控制清單 (ACLs) 的網路組態問題。
+ 驗證 Elastic Beanstalk 端點和公有網際網路存取的連線。
+ 驗證負載平衡器的狀態。
+ 驗證 Amazon EC2 執行個體的狀態。
+ 從 Elastic Beanstalk 環境擷取日誌套件，並選擇性地將檔案上傳至其中 支援。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootElasticBeanstalk) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ApplicationName

  類型：字串

  描述：（必要） Elastic Beanstalk 應用程式的名稱。
+ EnvironmentName

  類型：字串

  描述：（必要） Elastic Beanstalk 環境的名稱。
+ AWSS3UploaderLink

  類型：字串

  描述：（選用） 由 提供給您的 URL 支援 ，可將日誌套件從 Elastic Beanstalk 環境上傳至其中。此選項僅適用於已購買 支援 計劃並已開啟支援案例的客戶。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `autoscaling:Describe*`
+ `cloudformation:Describe*`
+ `cloudformation:Estimate*`
+ `cloudformation:Get*`
+ `cloudformation:List*`
+ `cloudformation:Validate*`
+ `cloudwatch:Describe*`
+ `cloudwatch:Get*`
+ `cloudwatch:List*`
+ `ec2:Describe*`
+ `elasticbeanstalk:Check*`
+ `elasticbeanstalk:Describe*`
+ `elasticbeanstalk:List*`
+ `elasticbeanstalk:RetrieveEnvironmentInfo*`
+ `elasticbeanstalk:RequestEnvironmentInfo*`
+ `elasticloadbalancing:Describe*`
+ `rds:Describe*`
+ `s3:Get*`
+ `s3:List*`
+ `sns:Get*`
+ `sns:List*`

 **文件步驟** 
+ `aws:executeScript` - 驗證啟動自動化的 AWS Identity and Access Management (IAM) 委託人具有執行 Runbook 中定義之所有動作的必要許可。
+ `aws:branch` - 根據上一個步驟的結果配置工作流程。
+ `aws:executeScript` - 收集 Elastic Beanstalk 環境的相關資訊，包括負載平衡器、 CloudFormation 堆疊、Auto Scaling 群組、Amazon EC2 執行個體和 VPC 組態。
+ `aws:executeScript` - 檢查 VPC 中與子網路相關聯的路由表和 ACLs 是否有網路連線問題。
+ `aws:executeScript` - 檢查與 Amazon EC2 執行個體相關聯的安全群組規則是否有網路連線問題。
+ `aws:executeScript` - 驗證 Amazon EC2 執行個體的狀態檢查。
+ `aws:executeScript` - 為 Elastic Beanstalk 環境的日誌套件產生連結。
+ `aws:executeScript` - 將日誌套件上傳至 支援。
+ `aws:executeScript` - 輸出動作項目的報告，以協助您疑難排解可能影響 Elastic Beanstalk 環境狀態的問題。

# Elastic Load Balancing
<a name="automation-ref-elb"></a>

 AWS Systems Manager 自動化為 Elastic Load Balancing 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-DropInvalidHeadersForALB`](automation-aws-drop-alb-headers.md)
+ [`AWS-EnableCLBAccessLogs`](enable-clb-access-logs.md)
+ [`AWS-EnableCLBConnectionDraining`](AWS-EnableCLBConnectionDraining.md)
+ [`AWSConfigRemediation-EnableCLBCrossZoneLoadBalancing`](automation-aws-enable-clb-crosszone.md)
+ [`AWSConfigRemediation-EnableELBDeletionProtection`](automation-aws-enable-elb-protection.md)
+ [`AWSConfigRemediation-EnableLoggingForALBAndCLB`](automation-aws-enable-logging-alb-clb.md)
+ [`AWSSupport-TroubleshootCLBConnectivity`](automation-aws-troubleshootclbconnectivity.md)
+ [`AWSConfigRemediation-EnableNLBCrossZoneLoadBalancing`](automation-aws-enable-nlb-crosszone.md)
+ [`AWS-UpdateALBDesyncMitigationMode`](AWS-UpdateALBDesyncMitigationMode.md)
+ [`AWS-UpdateCLBDesyncMitigationMode`](AWS-UpdateCLBDesyncMitigationMode.md)
+ [`AWSSupport-TroubleshootELBHealthChecks`](automation-aws-troubleshootelbhealthchecks.md)

# `AWSConfigRemediation-DropInvalidHeadersForALB`
<a name="automation-aws-drop-alb-headers"></a>

 **Description** 

 `AWSConfigRemediation-DropInvalidHeadersForALB` Runbook 可讓您指定的應用程式負載平衡器移除具有無效標頭的 HTTP 標頭。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DropInvalidHeadersForALB) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ LoadBalancerArn

  類型：字串

  描述：（必要） 您要捨棄無效標頭的負載平衡器 Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `elasticloadbalancing:DescribeLoadBalancerAttributes` 
+  `elasticloadbalancing:ModifyLoadBalancerAttributes` 

 **文件步驟** 
+  `aws:executeAwsApi` - 為您在 `LoadBalancerArn` 參數中指定的負載平衡器啟用捨棄無效標頭設定。
+  `aws:executeScript` - 驗證已在參數中指定的負載平衡器上啟用捨棄無效標頭設定`LoadBalancerArn`。

# `AWS-EnableCLBAccessLogs`
<a name="enable-clb-access-logs"></a>

**Description**

`AWS-EnableCLBAccessLogs` Runbook 會啟用 Classic Load Balancer 的存取日誌。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableCLBAccessLogs)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ EmitInterval

  類型：整數

  有效值：5 \$1 60

  預設：60

  描述：（選用） 以分鐘為單位發佈存取日誌的間隔。
+ LoadBalancerNames

  類型：字串

  描述：（必要） 您要為其啟用存取日誌的 Classic Load Balancer 逗號分隔清單。
+ S3BucketName

  類型：字串

  描述：（必要） 存放存取日誌的 Amazon Simple Storage Service (Amazon S3) 儲存貯體名稱。
+ S3BucketPrefix

  類型：字串

  描述：（選用） 您為 Amazon S3 儲存貯體建立的邏輯階層，例如 `my-bucket-prefix/prod`。如不提供字首，則將日誌放置於儲存貯體根層級。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `elasticloadbalancing:ModifyLoadBalancerAttributes`

**文件步驟**
+ `aws:executeAwsApi` - 為您在 `LoadBalancerNames` 參數中指定的 Classic Load Balancer 啟用存取日誌。

**輸出**

EnableCLBAccessLogs.SuccessesLoadBalancers - 成功啟用存取日誌的負載平衡器名稱清單。

EnableCLBAccessLogs.FailedLoadBalancers - 啟用存取日誌失敗的負載平衡器名稱 MapList，以及失敗的原因。

# `AWS-EnableCLBConnectionDraining`
<a name="AWS-EnableCLBConnectionDraining"></a>

 **Description** 

`AWS-EnableCLBConnectionDraining` Runbook 可讓 Classic Load Balancer (CLB) 上的連線耗盡至指定的逾時值。連線耗盡可讓 CLB 完成對取消註冊或運作狀態不佳的執行個體提出的傳輸中請求，指定的逾時是將執行個體報告為已取消註冊之前保持連線運作的時間。如需有關 CLBs上的連線耗盡的詳細資訊，請參閱 [Classic Load Balancer 使用者指南中的設定 Classic Load Balancer 的連線耗盡](url-elb-cg;config-conn-drain.html)。 **

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableCLBConnectionDraining) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ LoadBalancerName

  類型：字串

  描述：（必要） 您要啟用連線耗盡的負載平衡器名稱。
+ ConnectionTimeout

  類型：整數

  有效值：1-3600

  預設：300

  描述：（必要） 負載平衡器的連線逾時值。逾時值可以設定在 1 到 3600 秒之間。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `elasticloadbalancing:DescribeLoadBalancerAttributes`
+ `elasticloadbalancing:ModifyLoadBalancerAttributes`

 **文件步驟** 
+ ModifyLoadBalancerConnectionDraining (aws：executeAwsApi)：啟用連線耗盡，並為您指定的負載平衡器設定指定的逾時值。
+ VerifyLoadBalancerConnectionDrainingEnabled (aws：assertAwsResourceProperty)：確認負載平衡器已啟用連線耗盡。
+ VerifyLoadBalancerConnectionDrainingTimeout (aws：assertAwsResourceProperty)：驗證負載平衡器的連線逾時值是否符合您指定的值。

# `AWSConfigRemediation-EnableCLBCrossZoneLoadBalancing`
<a name="automation-aws-enable-clb-crosszone"></a>

 **Description** 

 `AWSConfigRemediation-EnableCLBCrossZoneLoadBalancing` Runbook 會為您指定的 Classic Load Balancer (CLB) 啟用跨區域負載平衡。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCLBCrossZoneLoadBalancing) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ LoadBalancerName

  類型：字串

  描述：（必要） 您要啟用跨區域負載平衡的 CLB 名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `elb:DescribeLoadBalancerAttributes` 
+  `elb:ModifyLoadBalancerAttributes` 

 **文件步驟** 
+  `aws:executeAwsApi` - 為您在 `LoadBalancerName` 參數中指定的 CLB 啟用跨區域負載平衡。
+  `aws:assertAwsResourceProperty` - 確認 CLB 上已啟用跨區域負載平衡。

# `AWSConfigRemediation-EnableELBDeletionProtection`
<a name="automation-aws-enable-elb-protection"></a>

 **Description** 

 `AWSConfigRemediation-EnableELBDeletionProtection` Runbook 會為您指定的彈性負載平衡器 (ELB) 啟用刪除保護。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableELBDeletionProtection) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ LoadBalancerArn

  類型：字串

  描述：（必要） 您要啟用刪除保護之 ELB 的 Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `elasticloadbalancing:DescribeLoadBalancerAttributes` 
+  `elasticloadbalancing:DescribeLoadBalancers` 
+  `elasticloadbalancing:ModifyLoadBalancerAttributes` 

 **文件步驟** 
+  `aws:executeScript` - 對您在 `LoadBalancerArn` 參數中指定的 ELB 啟用刪除保護。

# `AWSConfigRemediation-EnableLoggingForALBAndCLB`
<a name="automation-aws-enable-logging-alb-clb"></a>

 **Description** 

 `AWSConfigRemediation-EnableLoggingForALBAndCLB` Runbook 會啟用指定 AWS Application Load Balancer或 Classic Load Balancer (CLB) 的記錄。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableLoggingForALBAndCLB) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ LoadBalancerId

  類型：字串

  描述：（必要） Classic Load Balancer 名稱或 Application Load Balancer ARN。
+ S3BucketName

  類型：字串

  描述：（必要） Amazon S3 儲存貯體名稱。
+ S3BucketPrefix

  類型：字串

   描述：（選用） 您為 Amazon Simple Storage Service (Amazon S3) 儲存貯體建立的邏輯階層，例如 `my-bucket-prefix/prod` 。如不提供字首，則將日誌放置於儲存貯體根層級。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `elasticloadbalancing:DescribeLoadBalancerAttributes` 
+  `elasticloadbalancing:ModifyLoadBalancerAttributes` 

 **文件步驟** 
+  `aws:executeScript` - 啟用並驗證 Classic Load Balancer 或 Application Load Balancer 的記錄。

# `AWSSupport-TroubleshootCLBConnectivity`
<a name="automation-aws-troubleshootclbconnectivity"></a>

 **Description** 

 `AWSSupport-TroubleshootCLBConnectivity` Runbook 可協助您疑難排解 Classic Load Balancer (CLB) 和 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體之間的連線問題。此外，也會檢閱用戶端與 CLB 之間的連線問題。此 Runbook 也會檢閱 CLB 的運作狀態檢查、驗證是否遵循最佳實務，以及為您建立故障診斷儀表板。或者，您可以將自動化輸出上傳到 Amazon Simple Storage Service (Amazon S3) 儲存貯體。不過，此 Runbook 不支援將輸出上傳到可公開存取的 S3 儲存貯體。建議您為此自動化建立臨時 S3 儲存貯體。

**重要**  
使用此 Runbook 可能會針對建立的儀表板產生費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/) 

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootCLBConnectivity) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ InvestigationType

  類型：字串

  有效值：最佳實務 \$1 連線問題 \$1 疑難排解儀表板

  描述：（必要） 您希望 Runbook 執行的操作。
+ LoadBalancerName

  類型：字串

  描述：（必要） CLB 的名稱。
+ S3Location

  類型：字串

  描述：（選用） 您要傳送自動化結果的 S3 儲存貯體名稱。不支援公開存取的儲存貯體。如果您的 S3 儲存貯體使用伺服器端加密，則執行此自動化的使用者或角色必須具有 AWS KMS 金鑰的`kms:GenerateDataKey`許可。
+ S3LocationPrefix

  類型：字串

  描述：（選用） 您要上傳自動化輸出的 Amazon S3 金鑰字首 （子資料夾）。格式輸出會以下列格式儲存：amzn-s3-demo-bucket/*S3LocationPrefix*/\$1\$1*InvestigationType*\$1\$1\$1\$1\$1automation：*EXECUTION\$1ID*\$1\$1.txt。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:DescribeInstances` 
+  `ec2:DescribeNetworkAcls` 
+  `ec2:DescribeNetworkInterfaces` 
+  `ec2:DescribeRouteTables` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeVpcAttribute` 
+  `ec2:DescribeVpcs` 
+  `ec2:DescribeSubnets` 
+  `elasticloadbalancing:DescribeLoadBalancers` 
+  `elasticloadbalancing:DescribeLoadBalancerPolicies` 
+  `elasticloadbalancing:DescribeInstanceHealth` 
+  `elasticloadbalancing:DescribeLoadBalancerAttributes` 
+  `iam:ListRoles` 
+  `cloudwatch:PutDashboard` 
+  `ssm:GetAutomationExecution` 
+  `ssm:StartAutomationExecution` 
+  `ssm:DescribeAutomationExecutions` 
+  `ssm:DescribeAutomationStepExecutions` 
+  `ssm:DescribeInstanceInformation` 
+  `ssm:DescribeInstanceProperties` 
+  `ssm:GetDocument` 
+  `ssm:ListCommands` 
+  `ssm:ListCommandInvocations` 
+  `ssm:ListDocuments` 
+  `ssm:SendCommand` 
+  `s3:GetBucketAcl` 
+  `s3:GetBucketPolicyStatus` 
+  `s3:GetPublicAccessBlock` 
+  `s3:PutObject` 

 **文件步驟** 
+  `aws:executeScript` - 驗證您在 `LoadBalancerName` 參數中指定的 CLB 是否存在。
+  `aws:branch` - 根據為 `InvestigationType` 參數指定的值進行分支。
+  `aws:executeScript` - 對 CLB 執行連線檢查。
+  `aws:executeScript` - 驗證 CLB 組態是否符合 Elastic Load Balancing 最佳實務。
+  `aws:executeScript` - 為您的 CLB 建立 Amazon CloudWatch 儀表板。
+  `aws:executeScript` - 使用自動化結果建立文字檔案，並將其上傳至您在 `S3Location` 參數中指定的 Amazon S3 儲存貯體。

 **輸出** 

RunBestPractices.Summary

RunConnectivityChecks.Summary

CreateTroubleshootingDashboard.Output

UploadOutputToS3.Output

# `AWSConfigRemediation-EnableNLBCrossZoneLoadBalancing`
<a name="automation-aws-enable-nlb-crosszone"></a>

 **Description** 

 `AWSConfigRemediation-EnableNLBCrossZoneLoadBalancing` Runbook 會為您指定的網路負載平衡器 (NLB) 啟用跨區域負載平衡。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableNLBCrossZoneLoadBalancing) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ LoadBalancerArn

  類型：字串

  描述：（必要） 您要啟用跨區域負載平衡之 NLB 的 Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `elasticloadbalancing:DescribeLoadBalancerAttributes` 
+  `elasticloadbalancing:ModifyLoadBalancerAttributes` 

 **文件步驟** 
+  `aws:executeAwsApi` - 為您在 `LoadBalancerArn` 參數中指定的 NLB 啟用跨區域負載平衡。
+  `aws:executeScript` - 確認 NLB 上已啟用跨區域負載平衡。

# `AWS-UpdateALBDesyncMitigationMode`
<a name="AWS-UpdateALBDesyncMitigationMode"></a>

 **Description** 

`AWS-UpdateALBDesyncMitigationMode` Runbook 會將 Application Load Balancer (ALB) 上的非同步緩解模式更新為指定的緩解模式。非同步緩解模式會決定負載平衡器如何處理可能對應用程式造成安全風險的請求。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-UpdateALBDesyncMitigationMode) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ LoadBalancerArn

  類型：字串

  描述：（必要） 您要修改其非同步緩解模式之 ALB 的 Amazon Resource Name (ARN)。
+ DesyncMitigationMode

  類型：字串

  有效值：監控 \$1 防禦 \$1 最嚴格

  描述：（必要） 您希望 ALB 使用的緩解模式。如需有關取消同步緩解模式的資訊，請參閱《*Application Load Balancer 使用者指南*》中的[取消同步緩解模式](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#desync-mitigation-mode)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `elasticloadbalancing:DescribeLoadBalancers`
+ `elasticloadbalancing:DescribeLoadBalancerAttributes`
+ `elasticloadbalancing:ModifyLoadBalancerAttributes`

 **文件步驟** 
+ VerifyLoadBalancerType (aws：assertAwsResourceProperty) - 確認輸入`LoadBalancerArn`參數指定的值適用於應用程式負載平衡器，然後再繼續進行下一個步驟。
+ ModifyLoadBalancerDesyncMode (aws：executeAwsApi) - 更新 ALB 以使用指定的 `DesyncMitigationMode`。
+ VerifyLoadBalancerDesyncMitigationMode (aws：executeScript) - 驗證是否已針對目標 ALB 更新非同步緩解模式。

 **輸出** 

 VerifyLoadBalancerDesyncMitigationMode.ModificationResult - 驗證對 ALB 的修改之指令碼的訊息承載。

# `AWS-UpdateCLBDesyncMitigationMode`
<a name="AWS-UpdateCLBDesyncMitigationMode"></a>

 **Description** 

`AWS-UpdateCLBDesyncMitigationMode` Runbook 會將 Classic Load Balancer (CLB) 上的非同步緩解模式更新為指定的緩解模式。非同步緩解模式會決定負載平衡器如何處理可能對應用程式造成安全風險的請求。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-UpdateCLBDesyncMitigationMode) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ LoadBalancerName

  類型：字串

  描述：（必要） 您要修改其非同步緩解模式的 CLB 名稱。
+ DesyncMitigationMode

  類型：字串

  有效值：監控 \$1 防禦 \$1 最嚴格

  描述：（必要） 您希望 CLB 使用的緩解模式。如需有關取消同步緩解模式的資訊，請參閱《*Application Load Balancer 使用者指南*》中的[取消同步緩解模式](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#desync-mitigation-mode)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `elasticloadbalancing:DescribeLoadBalancerAttributes`
+ `elasticloadbalancing:ModifyLoadBalancerAttributes`

 **文件步驟** 
+ ModifyLoadBalancerDesyncMode (aws：executeAwsApi) - 更新 CLB 以使用指定的 `DesyncMitigationMode`。
+ VerifyLoadBalancerDesyncMitigationMode (aws：executeScript) - 驗證是否已為目標 CLB 更新非同步緩解模式。

 **輸出** 

 VerifyLoadBalancerDesyncMitigationMode.ModificationResult - 驗證 CLB 修改之指令碼的訊息承載。

# `AWSSupport-TroubleshootELBHealthChecks`
<a name="automation-aws-troubleshootelbhealthchecks"></a>

 **Description** 

**AWSSupport-TroubleshootELBHealthChecks** Runbook 透過分析其相關的 Amazon CloudWatch (CloudWatch) 指標、驗證網路連線，以及在目標執行個體上執行診斷命令，協助疑難排解 AWS Elastic Load Balancing (Elastic Load Balancing) 運作狀態檢查問題。

此 Runbook 處理下列使用案例：
+ 負載平衡器或目標群組的目標執行個體中有運作狀態不佳的執行個體。
+ 雖然沒有運作狀態不佳的執行個體，但 CloudWatch 指標會指出 的資料點 `UnHealthyHostCounts`

**重要**  
重要考量：  
自動化著重於疑難排解執行個體類型目標。
允許故障診斷的執行個體數目上限為 50 個。
目標執行個體必須由 Systems Manager 管理，才能在執行個體層級執行診斷命令。
`S3BucketName` 參數為選用，但特定診斷結果會直接上傳至指定的 Amazon S3 儲存貯體，且不會顯示在自動化輸出中。
不支援 IPv6 網路連線故障診斷。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootELBHealthChecks) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `elasticloadbalancing:DescribeLoadBalancers`
+ `elasticloadbalancing:DescribeTargetGroups`
+ `elasticloadbalancing:DescribeTargetHealth`
+ `elasticloadbalancing:DescribeInstanceHealth`
+ `ec2:DescribeInstances`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `cloudwatch:GetMetricStatistics`
+ `ssm:SendCommand`
+ `ssm:GetCommandInvocation`
+ `ssm:DescribeInstanceInformation`
+ `s3:GetBucketLocation`
+ `s3:GetBucketAcl`
+ `s3:PutObject`

範例政策：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:DescribeLoadBalancers",
                "elasticloadbalancing:DescribeTargetGroups",
                "elasticloadbalancing:DescribeTargetHealth",
                "elasticloadbalancing:DescribeInstanceHealth",
                "ec2:DescribeInstances",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "cloudwatch:GetMetricStatistics",
                "ssm:SendCommand",
                "ssm:GetCommandInvocation",
                "ssm:DescribeInstanceInformation",
                "s3:GetBucketLocation",
                "s3:GetBucketAcl",
                "s3:PutObject"
            ],
            "Resource": "*"
        }
    ]
}
```

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootELBHealthChecks/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootELBHealthChecks/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 SSM Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，SSM Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **LoadBalancerOrTargetGroupName （必要）：**
     + 描述：（必要） Classic Load Balancer 的名稱，或與 Application Load Balancer 或 Network Load Balancer 相關聯的目標群組名稱。
     + 類型：`String`
     + 允許模式： `^[a-zA-Z0-9-]+$`
   + **ExecutionMode （必要）：**
     + 描述：（必要） 控制自動化執行模式。 `Complete` 會在 Amazon EC2 執行個體上執行所有步驟，包括 runCommands。 `SkipRunCommands`會在執行個體上執行命令以外的所有步驟。
     + 類型：`String`
     + 允許的值： `[Complete, SkipRunCommands]`
   + **S3BucketName （選用）：**
     + 描述：（選用） 帳戶中您要上傳故障診斷日誌的 Amazon S3 儲存貯體名稱。
     + 類型：`String`
     +  預設：`""`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **getBucketPublicStatus**：

     檢查目標 Amazon S3 儲存貯體是否可能授予其物件的讀取或寫入公開存取權。
   + **getLoadBalancerDetails**：

     識別負載平衡器類型，並傳回統一的負載平衡器詳細資訊物件。
   + **checkLoadBalancerType**：

     檢查負載平衡器是否存在。
   + **getTargets**：

     根據不同類型的負載平衡器，查詢會描述 APIs以傳回運作狀態良好和運作狀態不佳目標詳細資訊的映射。
   + **checkCloudWatchMetrics**：

     檢查 CloudWatch 指標`HealthyHostCounts`和 `UnHealthyHostCounts`，並產生 CloudWatch 連結。
   + **checkUnhealthyReasons**：

     檢查運作狀態不佳的原因並篩選目標。
   + **checkConnectivity**：

     檢查負載平衡器與其執行個體之間的連線。
   + **runCommands**：

     在執行個體上執行疑難排解命令，並在提供儲存貯體名稱時上傳輸出。
   + **generateReport**：

     根據先前步驟的輸出產生最終報告，並在指定時將報告上傳至 Amazon S3 儲存貯體。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果。

 **診斷命令** 

Runbook 會在執行個體上執行下列診斷命令：
+ **Linux Shell：**top、free、ss、curl、iptables、tcpdump
+ **Windows PowerShell：**Get-CimInstance、Get-NetFirewallProfile、Get-NetFirewallRule、Invoke-WebRequest、netstat、netsh、pktmon

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootELBHealthChecks/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/)

# Amazon EMR
<a name="automation-ref-emr"></a>

 AWS Systems Manager 自動化為 Amazon EMR 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-AnalyzeEMRLogs`](automation-awssupport-analyzeemrlogs.md)
+ [`AWSSupport-DiagnoseEMRLogsWithAthena`](awssupport-diagnose-emr-logs-with-athena.md)

# `AWSSupport-AnalyzeEMRLogs`
<a name="automation-awssupport-analyzeemrlogs"></a>

 **Description** 

此 Runbook 有助於識別在 Amazon EMR 叢集上執行任務時的錯誤。Runbook 會分析檔案系統上定義的日誌清單，並尋找預先定義的關鍵字清單。這些日誌項目用於建立 Amazon CloudWatch Events 事件，因此您可以根據事件採取任何必要的動作。或者， Runbook 會將日誌項目發佈至您選擇的 Amazon CloudWatch Logs 日誌群組。此 Runbook 目前會在日誌檔案中尋找下列錯誤和模式：
+  container\$1out\$1of\$1memory – YARN 容器記憶體不足，執行中的任務可能會失敗。
+  yarn\$1nodemanager\$1health：CORE 或 TASK 節點磁碟空間不足，無法執行任務。
+  node\$1state\$1change：主節點無法存取 CORE 或 TASK 節點。
+  step\$1failure：EMR 步驟失敗。
+  no\$1core\$1nodes\$1running：目前沒有 CORE 節點正在執行，叢集運作狀態不佳。
+  hdfs\$1missing\$1blocks：缺少可能導致資料遺失的 HDFS 區塊。
+  hdfs\$1high\$1util：HDFS 使用率很高，這可能會影響任務和叢集運作狀態。
+  instance\$1controller\$1restart：Instance-Controller 程序已重新啟動。此程序對於叢集運作狀態至關重要。
+  instance\$1controller\$1restart\$1legacy：Instance-Controller 程序已重新啟動。此程序對於叢集運作狀態至關重要。
+  high\$1load：偵測到高負載平均，可能會影響節點運作狀態報告，或導致逾時或變慢。
+  yarn\$1node\$1blacklisted：YARN 已從執行中的任務將 CORE 或 TASK 節點列入黑名單。
+  yarn\$1node\$1lost：YARN 已將 CORE 或 TASK 節點標記為 LOST，可能是連線問題。

 與您指定的 `ClusterID` 相關聯的執行個體必須由 管理 AWS Systems Manager。您可以執行此自動化一次、排定自動化在特定時間間隔執行，或移除先前由自動化建立的排程。此 Runbook 支援 Amazon EMR 發行版本 5.20 到 6.30。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-AnalyzeEMRLogs) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterID (ClusterID)

  類型：字串

  描述：（必要） 您要分析其節點日誌的叢集 ID。
+ 作業

  類型：字串

  有效值：執行一次 \$1 排程 \$1 移除排程 

  描述：（必要） 在叢集上執行的操作。
+ IntervalTime

  類型：字串

  有效值：5 分鐘 \$1 10 分鐘 \$1 15 分鐘

   描述：（選用） 執行自動化之間的持續時間。此參數僅適用於您`Schedule`為 `Operation` 參數指定的 。
+ LogToCloudWatchLogs

  類型：字串

  有效值：是 \$1 否

   描述：（選用） 如果您`yes`為此參數的值指定 ，自動化會使用 `CloudWatchLogGroup` 參數中指定的名稱來建立 CloudWatch Logs 日誌群組，以存放任何相符的日誌項目。
+ CloudWatchLogGroup

  類型：字串

   描述：（選用） 您要存放任何相符日誌項目的 CloudWatch Logs 日誌群組名稱。此參數僅適用於您`yes`為 `LogToCloudWatchLogs` 參數指定的 。
+ CreateLogInsightsDashboard

  類型：字串

  有效值：是 \$1 否

   描述：（選用） 如果您指定 `yes` ，如果 CloudWatch 儀表板尚未存在，則會建立該儀表板。只有在您`yes`為 參數指定 時，此`LogToCloudWatchLogs`參數才適用。
+ CreateMetricFilters

  類型：字串

  有效值：是 \$1 否

   描述：（選用） 指定`yes`您是否要為 CloudWatch Logs 日誌群組建立指標篩選條件。只有在您`yes`為 參數指定 時，此`LogToCloudWatchLogs`參數才適用。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetDocument` 
+  `ssm:ListDocuments` 
+  `ssm:DescribeAutomationExecutions` 
+  `ssm:DescribeAutomationStepExecutions` 
+  `ssm:GetAutomationExecution` 
+  `ssm:DescribeInstanceInformation` 
+  `ssm:ListCommandInvocations` 
+  `ssm:ListCommands` 
+  `ssm:SendCommand` 
+  `iam:CreateRole` 
+  `iam:DeleteRole` 
+  `iam:GetRolePolicy` 
+  `iam:PutRolePolicy` 
+  `iam:DeleteRolePolicy` 
+  `iam:passrole` 
+  `cloudformation:DescribeStacks` 
+  `cloudformation:DeleteStack` 
+  `cloudformation:CreateStack` 
+  `events:DeleteRule` 
+  `events:RemoveTargets` 
+  `events:PutTargets` 
+  `events:PutRule` 
+  `events:DescribeRule` 
+  `logs:DescribeLogGroups` 
+  `logs:CreateLogGroup` 
+  `logs:PutMetricFilter` 
+  `cloudwatch:PutDashboard` 
+  `elasticmapreduce:ListInstances` 
+  `elasticmapreduce:DescribeCluster` 

 **文件步驟** 
+  `aws:executeAwsApi` - 收集 `ClusterID` 參數中指定之 Amazon EMR 叢集的相關資訊。
+  `aws:branch` - 以輸入為基礎的分支。
  +  如果提供的操作是 `Run Once`或 `Schedule` ：
    +  `aws:assertAwsResourceProperty` - 驗證叢集是否可用。
    +  `aws:executeAwsApi` - 收集叢集中執行之所有執行個體IDs。
    +  `aws:assertAwsResourceProperty` - 驗證 SSM 代理程式是否在叢集中的所有執行個體上執行。
    +  `aws:branch` - 根據您是否指定執行自動化一次或排程進行分支。
      +  如果提供的操作是 `Run Once` ：
        +  `aws:branch` - 根據 `LogToCloudWatchLogs` 參數中指定的值進行分支。
          +  如果`LogToCloudWatchLogs`值為 `yes` ：
            +  `aws:executeScript` - 檢查 參數中指定名稱的 CloudWatch Logs 日誌群組是否`CloudWatchLogGroup`已存在。如果沒有，則會使用指定的名稱建立群組。
            +  `aws:branch` - 根據 `CreateMetricFilters` 參數中指定的值進行分支。
              +  如果`CreateMetricFilters`值為 `yes` ：
                +  `aws:executeAwsApi` - 每個指標篩選條件執行 12 個步驟 
                +  `aws:branch` - 根據 `CreateLogInsightsDashboard` 參數中指定的值進行分支。
                  +  如果`CreateLogInsightsDashboard`值為 `yes` ：
                    +  `aws:executeAwsApi` - 建立 CloudWatch 儀表板，如果它不存在，請使用 `CloudWatchLogGroup` 參數中指定的相同名稱。
                  +  如果`CreateLogInsightsDashboard`值為 `no` ：
                    +  `aws:runCommand` - 執行 shell 指令碼來尋找叢集中每個執行個體的日誌模式。
              +  如果`CreateMetricFilters`值為 `no` ：
                +  `aws:branch` - 根據`CreateLogInsightsDashboard`參數中指定的值進行分支。
                  +  如果`CreateLogInsightsDashboard`值為 `yes` ：
                    +  `aws:executeAwsApi` - 建立 CloudWatch 儀表板，如果它不存在，請使用 `CloudWatchLogGroup` 參數中指定的相同名稱。
                  +  如果`CreateLogInsightsDashboard`值為 `no` ：
                    +  `aws:runCommand` - 執行 shell 指令碼來尋找叢集中每個執行個體的日誌模式。
          +  如果`LogToCloudWatchLogs`值為 `no` ：
            +  `aws:executeAwsApi` - 執行 shell 指令碼來尋找叢集中每個執行個體的日誌模式。
      +  如果提供的操作是 `Schedule` ：
        +  `aws:createStack` - 建立以此 Runbook 為目標的 Amazon EventBridge 事件。
  +  如果提供的操作是 `Remove Schedule` ：
    +  `aws:executeAwsApi` - 驗證叢集是否存在排程。
    +  `aws:deleteStack` - 刪除排程。

 **輸出** 

GetClusterInformation.ClusterName

GetClusterInformation.ClusterState

ListingClusterInstances.InstanceIDs

CreatingScheduleCloudFormationStack.StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupExists.output

FindLogPatternOnEMRNode.CommandId

# `AWSSupport-DiagnoseEMRLogsWithAthena`
<a name="awssupport-diagnose-emr-logs-with-athena"></a>

**Description** 

`AWSSupport-DiagnoseEMRLogsWithAthena` Runbook 可協助診斷使用 Amazon Athena 與 Data Catalog 整合的 Amazon EMR 日誌。 AWS Glue Amazon Athena 用於查詢容器、節點日誌或兩者的 Amazon EMR 日誌檔案，以及特定日期範圍或關鍵字搜尋的選用參數。

Runbook 可以自動擷取現有叢集的 Amazon EMR 日誌位置，也可以指定 Amazon S3 日誌位置。若要分析日誌， Runbook：
+ 建立 AWS Glue 資料庫並在 Amazon EMR Amazon S3 日誌位置上執行 Amazon Athena 資料定義語言 (DDL) 查詢，以建立叢集日誌的資料表和已知問題清單。 Amazon S3 
+ 執行資料處理語言 (DML) 查詢，以搜尋 Amazon EMR 日誌中的已知問題模式。這些查詢會傳回偵測到的問題清單、其出現計數，以及 Amazon S3 檔案路徑的相符關鍵字數量。
+ 結果會上傳至您在字首 下指定的 Amazon S3 儲存貯體`saw_diagnose_EMR_known_issues`。
+ Runbook 會傳回 Amazon Athena 查詢結果，反白顯示從預先定義子集取得的 Amazon 知識中心 (KC) 文章的調查結果、建議和參考。
+  完成或失敗時，會刪除 AWS Glue 資料庫和上傳至 Amazon S3 儲存貯體的已知問題檔案。

 **如何運作？** 

 使用 Amazon Athena `AWSSupport-DiagnoseEMRLogsWithAthena`執行 Amazon EMR 日誌的分析，以偵測錯誤並反白顯示調查結果、建議和相關的 知識中心文章。

Runbook 會執行下列步驟：
+ 使用叢集 ID 或輸入 Amazon S3 位置取得 Amazon EMR 叢集日誌位置，以擷取日誌位置和大小。
+ 根據日誌位置大小提供 Athena 成本估算。
+ 在執行 Athena 查詢並繼續執行後續步驟之前，請求指定 IAM 主體的核准，以繼續取得核准。
+ 將已知問題上傳至指定的 Amazon S3 儲存貯體，並建立 AWS Glue 資料庫和資料表。
+ 在 Amazon EMR 日誌資料上執行 Athena 查詢。查詢可以依日期範圍、關鍵字、兩個條件進行搜尋，也可以根據提供的輸入在沒有篩選條件的情況下執行。
+ 分析結果以反白顯示問題清單、建議和相關的 KC 文章。
+ Amazon Athena DML 查詢結果的輸出連結。
+ 透過移除建立的資料庫、資料表和上傳的已知問題來清除環境。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

AutomationAssumeRole 參數需要下列動作，才能成功使用 Runbook：
+ athena:GetQueryExecution
+ athena:StartQueryExecution
+ athena:GetPreparedStatement
+ athena:CreatePreparedStatement
+ glue:GetDatabase
+ glue:CreateDatabase
+ glue:DeleteDatabase
+ glue:CreateTable
+ glue:GetTable
+ glue:DeleteTable 
+ elasticmapreduce：DescribeCluster
+ s3:ListBucket
+ s3:GetBucketVersioning
+ s3:ListBucketVersions
+ s3:GetBucketPublicAccessBlock
+ s3:GetBucketPolicyStatus
+ s3:GetObject
+ s3:GetBucketLocation
+ pricing：GetProducts
+ pricing：GetAttributeValues
+ pricing：DescribeServices
+ pricing：ListPriceLists

**重要**  
 若要限制僅存取此自動化所需的資源，請將下列政策連接至信任 SSM 服務的 IAM 角色。將分割區、區域和帳戶取代為執行執行手冊的分割區、區域和帳戶號碼的適當值。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:DescribeCluster",
                "glue:GetDatabase",
                "athena:GetQueryExecution",
                "athena:StartQueryExecution",
                "athena:GetPreparedStatement",
                "athena:CreatePreparedStatement",
                "s3:ListBucket",
                "s3:GetBucketVersioning",
                "s3:ListBucketVersions",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetBucketPolicyStatus",
                "s3:GetObject",
                "s3:GetBucketLocation",
                "pricing:GetProducts",
                "pricing:GetAttributeValues",
                "pricing:DescribeServices",
                "pricing:ListPriceLists"
            ],
            "Resource": "*"
        },
        {
            "Sid": "RestrictPutObjects",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::*/*/results/*",
                "arn:aws:s3:::*/*/saw_diagnose_emr_known_issues/*"
            ]
        },
        {
            "Sid": "RestrictDeleteAccess",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:DeleteObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::*/*/saw_diagnose_emr_known_issues/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "glue:GetDatabase",
                "glue:CreateDatabase",
                "glue:DeleteDatabase"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:111122223333:database/saw_diagnose_emr_database_*",
                "arn:aws:glue:us-east-1:111122223333:table/saw_diagnose_emr_database_*/*",
                "arn:aws:glue:us-east-1:111122223333:userDefinedFunction/saw_diagnose_emr_database_*/*",
                "arn:aws:glue:us-east-1:111122223333:catalog"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "glue:CreateTable",
                "glue:GetTable",
                "glue:DeleteTable"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:111122223333:table/saw_diagnose_emr_database_*/saw_diagnose_emr_known_issues",
                "arn:aws:glue:us-east-1:111122223333:table/saw_diagnose_emr_database_*/saw_diagnose_emr_logs_table",
                "arn:aws:glue:us-east-1:111122223333:table/saw_diagnose_emr_database_*/j_*",
                "arn:aws:glue:us-east-1:111122223333:database/saw_diagnose_emr_database_*",
                "arn:aws:glue:us-east-1:111122223333:catalog"
            ]
        }
    ]
}
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在 文件 AWS Systems Manager 下導覽 [AWSSupport-DiagnoseEMRLogsWithAthena](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-DiagnoseEMRLogsWithAthena/description)。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列項目：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **ClusterID （必要）：**

     Amazon EMR 叢集 ID。
   + **S3LogLocation （選用）：**

     Amazon S3 Amazon EMR 日誌位置。輸入路徑樣式 URL Amazon S3 位置，例如：`s3://amzn-s3-demo-bucket/myfolder/j-1K48XXXXXXHCB/`。如果 Amazon EMR 叢集已終止超過 `30` 天，請提供此參數。
   + **S3BucketName （必要）：**

      要上傳已知問題清單的 Amazon S3 儲存貯體名稱，以及 Amazon Athena 查詢的輸出。儲存貯體應[已啟用封鎖公開存取](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html)，且與 Amazon EMR 叢集位於相同的 AWS 區域和帳戶。
   + **核准者 （必要）：**

     能夠核准或拒絕動作的已 AWS 驗證主體清單。您可以使用下列任何格式來指定委託人：使用者名稱、使用者 ARN、IAM 角色 ARN 或 IAM 擔任角色 ARN。核准者的數量上限為 10。
   + **FetchNodeLogsOnly （選用）：**

      如果設定為 `true`，自動化會診斷 Amazon EMR 應用程式容器日誌。預設值為 `false`。
   + **FetchContainersLogsOnly （選用）：**

      如果設定為 `true`，自動化會診斷 Amazon EMR 容器日誌。預設值為 `false`。
   + **EndSearchDate （選用）：**

      日誌搜尋的結束日期。如果提供，自動化將專門搜尋截至指定日期為止產生的日誌，格式為 YYYY-MM-DD （例如：`2024-12-30`)。
   + **DaysToCheck （選用）：**

      `EndSearchDate` 提供 時，需要此參數來判斷從指定的 回溯搜尋日誌的天數`EndSearchDate`。最大值為 `30` 天。預設值為 `1`。
   + **SearchKeywords （選用）：**

      在日誌中搜尋的關鍵字清單，以逗號分隔。關鍵字不能包含單引號或雙引號。  
![\[Input parameters form for AWS Systems Manager Automation with various fields and options.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-diagnose-emr-logs-with-athena_input_parameters.png)

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **getLogLocation：**

     透過查詢指定的 Amazon EMR 叢集 ID 來擷取 Amazon S3 日誌位置。如果自動化無法從 Amazon EMR 叢集 ID 查詢日誌位置，則 Runbook 會使用 `S3LogLocation`輸入參數。
   + **branchOnValidLog：**

     驗證 Amazon EMR 日誌位置。如果位置有效，請繼續預估在 Amazon EMR 日誌上執行查詢時 Amazon Athena 的潛在成本。
   + **estimateAthenaCosts：**

     決定 Amazon EMR 日誌的大小，並提供在日誌資料集上執行 Athena 掃描的成本估算。對於非商業區域 （非AWS 分割區），此步驟只會提供日誌大小，而不會估算成本。您可以使用指定區域中的 Athena 定價文件來計算成本。
   + **approveAutomation：**

     等待指定的 IAM 主體核准，以繼續執行自動化的後續步驟。核准通知包含 Amazon EMR 日誌上 Amazon Athena 掃描的預估成本，以及自動化佈建之資源的詳細資訊。
   + **uploadKnownIssuesExecuteAthenaQueries：**

     將預先定義的已知問題上傳至 `S3BucketName` 參數中指定的 Amazon S3 儲存貯體。建立 AWS Glue 資料庫和資料表。根據輸入參數在 AWS Glue 資料庫中執行 Amazon Athena 查詢。
   + **getQueryExecutionStatus：**

     等到 Amazon Athena 查詢執行處於 `SUCCEEDED` 狀態。Amazon Athena DML 查詢會搜尋 Amazon EMR 叢集日誌中的錯誤和例外狀況。
   + **analyzeAthenaResults：**

     分析 Amazon Athena 結果，以提供源自預先定義映射集的調查結果、建議和知識中心 (KC) 文章。
   + **getAnalyzeResultsQuery1ExecutionStatus：**

     等待查詢執行處於 `SUCCEEDED` 狀態。Amazon Athena DML 查詢會分析先前 DML 查詢的結果。此分析查詢將傳回與解析和 KC 文章相符的例外狀況
   + **getAnalyzeResultsQuery2ExecutionStatus：**

     等待查詢執行處於 `SUCCEEDED` 狀態。Amazon Athena DML 查詢會分析先前 DML 查詢的結果。此分析查詢將傳回每個 Amazon S3 日誌路徑中偵測到的例外狀況/錯誤清單。
   + **printAthenaQueriesMessage：**

     列印 Amazon Athena DML 查詢結果的連結。
   + **cleanupResources：**

     刪除建立的 AWS Glue 資料庫並刪除在 Amazon EMR 日誌儲存貯體中建立的已知問題檔案，以清除資源。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：

   **輸出為 Athena 查詢結果提供三個連結：**
   + 在 Amazon EMR 叢集日誌中找到的所有錯誤和經常發生的例外狀況清單，以及對應的日誌位置 (Amazon S3 字首）。
   + Amazon EMR 日誌中符合的唯一已知例外狀況摘要，以及有助於故障診斷的建議解決方案和 KC 文章。
   + Amazon S3 日誌路徑中出現特定錯誤和例外狀況的詳細資訊，以支援進一步診斷。  
![\[Output section showing query links for exception summaries and analysis in AWS logs.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-diagnose-emr-logs-with-athena_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-DiagnoseEMRLogsWithAthena/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 EMR 叢集](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-troubleshoot.html) 

# Amazon OpenSearch Service
<a name="automation-ref-opensearch"></a>

 AWS Systems Manager 自動化為 Amazon OpenSearch Service 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-DeleteOpenSearchDomain`](automation-aws-delete-opensearch-domain.md)
+ [`AWSConfigRemediation-EnforceHTTPSOnOpenSearchDomain`](automation-aws-enforce-https-opensearch.md)
+ [`AWSConfigRemediation-UpdateOpenSearchDomainSecurityGroups`](automation-aws-update-opensearch-security-group.md)
+ [`AWSSupport-TroubleshootOpenSearchRedYellowCluster`](automation-troubleshoot-opensearch-red-yellow-cluster.md)
+ [`AWSSupport-TroubleshootOpenSearchHighCPU`](automation-troubleshoot-opensearch-high-cpu.md)

# `AWSConfigRemediation-DeleteOpenSearchDomain`
<a name="automation-aws-delete-opensearch-domain"></a>

 **Description** 

 `AWSConfigRemediation-DeleteOpenSearchDomain` Runbook 會使用 DeleteDomain API 刪除指定的 Amazon OpenSearch Service 網域。 [DeleteDomain](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-actions-deletedomain) 

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteOpenSearchDomain) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ DomainName

  類型：字串

  允許的值：(\$1d\$112\$1/)？【a-z】\$11\$1【a-z0-9-】\$12，28\$1

  描述：（必要） 您要刪除的 Amazon OpenSearch Service 網域名稱。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `es:DeleteDomain` 
+  `es:DescribeDomain` 

 **文件步驟** 
+  `aws:executeScript` - 接受 Amazon OpenSearch Service 網域名稱做為輸入、將其刪除，並驗證刪除。

# `AWSConfigRemediation-EnforceHTTPSOnOpenSearchDomain`
<a name="automation-aws-enforce-https-opensearch"></a>

 **Description** 

 `AWSConfigRemediation-EnforceHTTPSOnOpenSearchDomain` Runbook 會使用 [UpdateDomainConfig](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-actions-updatedomainconfig) API 在指定的 Amazon OpenSearch Service 網域`EnforceHTTPS`上啟用 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnforceHTTPSOnOpenSearchDomain) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ DomainName

  類型：字串

  允許的值：(\$1d\$112\$1/)？【a-z】\$11\$1【a-z0-9-】\$12，28\$1

  描述：（必要） 您要用來強制執行 HTTPS 的 Amazon OpenSearch Service 網域名稱。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `es:DescribeDomain` 
+  `es:UpdateDomainConfig` 

 **文件步驟** 
+  `aws:executeScript` - 在參數中指定的 Amazon OpenSearch Service 網域上啟用`EnforceHTTPS`端點選項`DomainName`。

# `AWSConfigRemediation-UpdateOpenSearchDomainSecurityGroups`
<a name="automation-aws-update-opensearch-security-group"></a>

 **Description** 

 `AWSConfigRemediation-UpdateOpenSearchDomainSecurityGroups` Runbook 會使用 [UpdateDomainConfig](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-actions-updatedomainconfig) API 更新指定 Amazon OpenSearch Service 網域上的安全群組組態。

**注意**  
AWS 安全群組只能套用至針對 Amazon Virtual Private Cloud (VPC) Access 設定的 Amazon OpenSearch Service 網域，而不能套用至針對公有存取設定的 Amazon OpenSearch Service 網域。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-UpdateOpenSearchDomainSecurityGroups) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ DomainName

  類型：字串

  描述：（必要） 您要用來更新安全群組的 Amazon OpenSearch Service 網域名稱。
+ SecurityGroupList

  類型：StringList

  描述：（必要） 您要指派給 Amazon OpenSearch Service 網域的安全群組 IDs。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `es:DescribeDomain` 
+  `es:UpdateDomainConfig` 

 **文件步驟** 
+  `aws:executeScript` - 更新您在 `DomainName` 參數中指定的 Amazon OpenSearch Service 網域上的安全群組組態。

# `AWSSupport-TroubleshootOpenSearchRedYellowCluster`
<a name="automation-troubleshoot-opensearch-red-yellow-cluster"></a>

 **Description** 

 `AWSSupport-TroubleshootOpenSearchRedYellowCluster` 自動化 Runbook 用於識別[紅色](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/handling-errors.html#handling-errors-red-cluster-status)或[黃色](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/handling-errors.html#handling-errors-yellow-cluster-status)叢集運作狀態的原因，並引導您將叢集變更回綠色。

 **如何運作？** 

 Runbook `AWSSupport-TroubleshootOpenSearchRedYellowCluster`可協助您疑難排解紅色或黃色叢集的原因，並提供後續步驟，透過分析叢集組態和資源使用率來解決此問題。

 Runbook 會執行下列步驟：
+  針對目標網域呼叫 [DescribeDomain](https://docs.aws.amazon.com//opensearch-service/latest/APIReference/API_DescribeDomain.html) API，以取得叢集組態。
+  檢查 OpenSearch Service 網域是網際網路型 （公有） 還是 [Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/vpc.html)。
+  根據叢集組態建立公有或 [Amazon VPC 型](https://docs.aws.amazon.com//lambda/latest/dg/foundation-networking.html) AWS Lambda 函數。注意：Lambda 函數包含針對叢集執行 OpenSearch Service APIs的故障診斷程式碼，以判斷叢集為何處於紅色或黃色狀態。
+  刪除 Lambda 函數。
+  顯示執行的檢查，以及解決紅色或黃色叢集問題的下一個建議步驟。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudformation:CreateStack`
+ `cloudformation:DescribeStacks`
+ `cloudformation:DescribeStackEvents`
+ `cloudformation:DeleteStack`
+ `lambda:CreateFunction`
+ `lambda:DeleteFunction`
+ `lambda:InvokeFunction`
+ `lambda:GetFunction`
+ `es:DescribeDomain`
+ `es:DescribeDomainConfig`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcs`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:CreateNetworkInterface`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeInstances`
+ `ec2:AttachNetworkInterface`
+ `cloudwatch:GetMetricData`
+ `iam:PassRole`

`LambdaExecutionRole` 參數需要下列動作才能成功使用 Runbook：
+ `es:ESHttpGet`
+ `ec2:CreateNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DeleteNetworkInterface`

`LambdaExecutionRole` 政策概觀：

 以下是 Lambda 函數執行角色 (AWS Identity and Access Management (IAM) 角色） 的範例，授予函數存取此 Runbook 所需 AWS 服務和資源的許可。如需更多詳細資訊，請參閱 [Lambda 執行角色](https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html)。

**注意**  
 `ec2:DeleteNetworkInterface` 只有當您的 OpenSearch Service 叢集是以 [Amazon VPC 為基礎](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/vpc.html)，以允許 Lambda `ec2:DescribeNetworkInterfaces`函數建立和管理 Amazon VPC 網路介面時，才需要 `ec2:CreateNetworkInterface`、 和 。如需詳細資訊，請參閱[將傳出聯網連接到 Amazon VPC 和 Lambda 執行角色中的資源](https://docs.aws.amazon.com//lambda/latest/dg/configuration-vpc.html#vpc-permissions)。 [https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html](https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html)

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "es:ESHttpGet",
            "Resource": [
                "arn:aws:es:us-east-1:111122223333:domain/domain-name/",
                "arn:aws:es:us-east-1:111122223333:domain/domain-name/_cluster/health",
                "arn:aws:es:us-east-1:111122223333:domain/domain-name/_cat/indices",
                "arn:aws:es:us-east-1:111122223333:domain/domain-name/_cat/allocation",
                "arn:aws:es:us-east-1:111122223333:domain/domain-name/_cluster/allocation/explain"
            ]
        },
        {
            "Condition": {
                "ArnLikeIfExists": {
                    "ec2:Vpc": "arn:aws:ec2:us-east-1:111122223333:vpc/vpc_id"
                }
            },
            "Action": [
                "ec2:DeleteNetworkInterface",
                "ec2:CreateNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:UnassignPrivateIpAddresses",
                "ec2:AssignPrivateIpAddresses"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 導覽至主控台中的 [AWSSupport-TroubleshootOpenSearchRedYellowCluster](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootOpenSearchRedYellowCluster/description) AWS Systems Manager 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列項目：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **LambdaExecutionRole （必要）：**

     Lambda 用來簽署 Amazon OpenSearch Service 叢集請求的 IAM 角色 ARN。
   + **DomainName （必要）：**

     具有紅色或黃色叢集運作狀態的 OpenSearch Service 網域名稱。
   + **UtilizationThreshold （選用）：**

     用於比較 CPUUtilization 和 JVMMemoryPressure 指標的使用率閾值百分比。預設值為 80。  
![\[Input parameters form for AWS Systems Manager Automation with IAM roles and domain settings.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-opensearch-red-yellow-cluster_input_paramters.png)

1. 如果您已在 OpenSearch Service 叢集上啟用[精細存取控制](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/fgac.html)，請確定`LambdaExecutionRole`角色 arn 已映射至至少具有 `cluster_monitor` 許可的角色。  
![\[叢集 permissions section showing cluster_monitor permission granted.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-opensearch-red-yellow-cluster_permissions.png)  
![\[Backend roles interface showing an AWSIAM role for Lambda execution and options to remove or add roles.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-opensearch-red-yellow-cluster_backend_roles.png)

1. 選取執行。

1. 自動化會啟動。

1. 自動化 Runbook 會執行下列步驟：
   + **GetClusterConfiguration：**

     擷取 OpenSearch Service 叢集組態。
   + **CreateAWSLambdaFunctionStack：**

     使用 在帳戶中建立臨時 Lambda 函數 CloudFormation。Lambda 函數用於執行 OpenSearch Service APIs。
   + **WaitForAWSLambdaFunctionStack：**

     等待 CloudFormation 堆疊完成。
   + **GetClusterMetricsFromCloudWatch：**

     取得 Amazon CloudWatch ClusterStatus、CPUUtilization 和 JVMMemoryPressure OpenSearch Service 叢集相關指標及其建立日期。
   + **RunOpenSearchAPIs：**

     使用 Lambda 函數呼叫 OpenSearch Service APIs，並分析叢集指標資料，以診斷紅色或黃色叢集狀態的原因。
   + **DeleteAWSLambdaFunctionStack：**

     刪除您帳戶中此自動化建立的 Lambda 函數。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果。
   + **RootCause：**

     提供叢集運作狀態為紅色或黃色的已識別原因概觀。
   + **IssueDescription：**

     提供叢集為何處於紅色或黃色狀態的詳細資訊，以及讓叢集回到綠色狀態的可能步驟。

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootOpenSearchRedYellowCluster)
+ [執行自動化](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 OpenSearch Service](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/handling-errors.html) 

# `AWSSupport-TroubleshootOpenSearchHighCPU`
<a name="automation-troubleshoot-opensearch-high-cpu"></a>

 **Description** 

 `AWSSupport-TroubleshootOpenSearchHighCPU` Runbook 提供自動化解決方案，從 Amazon OpenSearch Service 網域收集診斷資料，以疑難排解[高 CPU](https://repost.aws/knowledge-center/opensearch-troubleshoot-high-cpu) 問題。

 **如何運作？** 

 `AWSSupport-TroubleshootOpenSearchHighCPU` Runbook 有助於疑難排解 Amazon OpenSearch Service 網域中的高 CPU 使用率。

 Runbook 會執行下列步驟：
+  針對提供的 Amazon OpenSearch Service 網域執行 [DescribeDomain](https://docs.aws.amazon.com//opensearch-service/latest/APIReference/API_DescribeDomain.html) API，以取得叢集中繼資料。
+  檢查 Amazon OpenSearch Service 網域是公有還是 Amazon VPC 型 CloudFormation，並在 的協助下建立公有或 [Amazon VPC 型](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/vpc.html) AWS Lambda 函數。
+  Lambda 函數會從 Amazon OpenSearch Service 網域擷取診斷資料。
+  使用 AWS Step Functions 狀態機器來協調多個 Lambda 函數執行，以收集更全面的資料。
+  預設會將收集的資料儲存在 Amazon CloudWatch 日誌群組中 24 小時。
+  刪除已建立的資源，但 CloudWatch 日誌群組除外。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudformation:CreateStack`
+ `cloudformation:CreateStack`
+ `cloudformation:DescribeStacks`
+ `cloudformation:DescribeStackEvents`
+ `cloudformation:DeleteStack`
+ `lambda:CreateFunction`
+ `lambda:DeleteFunction`
+ `lambda:InvokeFunction`
+ `lambda:GetFunction`
+ `lambda:TagResource`
+ `es:DescribeDomain`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcs`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:CreateNetworkInterface`
+ `ec2:DescribeInstances`
+ `ec2:AttachNetworkInterface`
+ `ec2:DeleteNetworkInterface`
+ `logs:CreateLogGroup`
+ `logs:PutRetentionPolicy`
+ `logs:TagResource`
+ `states:CreateStateMachine`
+ `states:DeleteStateMachine`
+ `states:StartExecution`
+ `states:TagResource`
+ `states:DescribeStateMachine`
+ `states:DescribeExecution`
+ `iam:PassRole`
+ `iam:CreateRole`
+ `iam:DeleteRole`
+ `iam:GetRole`
+ `iam:PutRolePolicy`
+ `iam:DeleteRolePolicy`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:GetAutomationExecution`

**注意**  
 `iam:DeleteRolePolicy` 只有在您未使用 **LambdaInvocationRoleForStepFunctions** 參數的現有 IAM 角色時，才需要 `iam:CreateRole` `iam:DeleteRole` `iam:GetRole` `iam:PutRolePolicy` `iam:PutRolePolicy`、、、 和

`LambdaExecutionRole` 參數需要下列動作才能成功使用 Runbook：
+ `es:ESHttpGet`
+ `ec2:CreateNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DeleteNetworkInterface`
+ `logs:CreateLogStream`
+ `logs:PutLogEvents`

Lambda 執行角色會授予函數存取此 Runbook 所需 AWS 服務和資源的許可。如需更多詳細資訊，請參閱 [Lambda 執行角色](https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html)。

**注意**  
 `ec2:DeleteNetworkInterface` 只有當您的 OpenSearch Service 叢集是以 [Amazon VPC 為基礎](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/vpc.html)，以允許 Lambda `ec2:DescribeNetworkInterfaces`函數建立和管理 Amazon VPC 網路介面時，才需要 `ec2:CreateNetworkInterface`、 和 。如需詳細資訊，請參閱[將傳出聯網連接到 Amazon VPC 和 Lambda 執行角色中的資源](https://docs.aws.amazon.com//lambda/latest/dg/configuration-vpc.html#vpc-permissions)。 [https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html](https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html)

`LambdaInvocationRoleForStepFunctions` 參數會授予狀態機器叫用 Lambda 函數的許可 AWS Step Functions 。以下是授予 Step Functions 許可的範例 IAM 政策，以叫用從 OpenSearch Service 網域擷取診斷資料的 Lambda 函數。如需詳細資訊，請參閱《 AWS Step Functions 開發人員指南》中的[建立狀態機器 IAM 角色](https://docs.aws.amazon.com/step-functions/latest/dg/procedure-create-iam-role.html)。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": [
                "arn:aws:lambda:us-east-1:111122223333:function:AWSSupport-HighCPU-*"
            ]
        }
    ]
}
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 導覽至主控台中的 [AWSSupport-TroubleshootOpenSearchHighCPU](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootOpenSearchHighCPU/description) AWS Systems Manager 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列項目：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **DomainName （必要）：**

     您要針對高 CPU 問題進行疑難排解的 Amazon OpenSearch Service 網域名稱。
   + **LambdaExecutionRoleForOpenSearch （必要）：**

     要連接至 Lambda 函數之 IAM 角色的 ARN。Lambda 函數會使用來自此角色的登入資料來簽署對 Amazon OpenSearch Service 網域的請求。如果已在 Amazon OpenSearch Service 網域上啟用精細存取控制，您必須將此角色映射至至少具有「cluster\$1monitor」許可的 OpenSearch Service Dashboards 後端角色。
   + **LambdaInvocationRoleForStepFunctions （選用）：**

     （選用） 要連接至 Step Functions 工作流程之 IAM 角色的 ARN。狀態機器會使用此角色的登入資料來叫用從 OpenSearch Service 網域擷取診斷資料的 Lambda 函數。如果未指定角色，此自動化將為帳戶中的 Step Functions 建立 IAM 角色。
   + **DataRetentionDays （選用）：**

     保留從 Amazon OpenSearch Service 網域收集之診斷資料的天數。根據預設，資料會保留 24 小時 （一天）。您可以選擇將資料保留最多 30 天。
   + **NumberOfDataSamples （選用）：**

     從 Amazon OpenSearch Service 網域收集的資料範例數目。根據預設，會收集 5 個資料範例。您最多可以收集 10 個範例，而且每個範例收集都會叫用 Lambda 函數。

1. 如果您已在 OpenSearch Service 叢集上啟用[精細存取控制](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/fgac.html)，請確定`LambdaExecutionRole`角色 ARN 已映射至至少具有 `cluster_monitor` 許可的角色。  
![\[叢集 permissions section showing cluster_monitor permission granted.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-opensearch-high-cpu_cluster_permissions.png)  
![\[Backend roles interface showing an AWSIAM role for Lambda execution and options to remove or add roles.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-opensearch-high-cpu_backend_roles.png)

1. 選取執行。

1. 自動化會啟動。

1. 自動化 Runbook 會執行下列步驟：
   + **checkConcurrency：**

     確保只有一個針對指定 Amazon OpenSearch Service 網域的 Runbook 執行。如果 Runbook 找到另一個以相同網域名稱為目標的執行，則會傳回錯誤並結束。
   + **getDomainConfig：**

     取得目標 OpenSearch Service 網域的組態詳細資訊。
   + **provisionResources：**

     使用 佈建用於資料收集的資源 CloudFormation。
   + **waitForStackCreation：**

     等待 CloudFormation 堆疊完成。
   + **describeStackResources：**

     描述 CloudFormation 堆疊並取得狀態機器的 ARN。
   + **runStateMachine：**

     執行 Step Functions 狀態機器，以叫用資料收集器 Lambda 函數一或多次。
   + **describeErrorsFromStackEvents：**

     描述來自 CloudFormation 堆疊的錯誤。
   + **unstageOpenSearchHighCPUAutomation：**

     刪除`AWSSupport-TroubleshootOpenSearchHighCPU` CloudFormation 堆疊。
   + **describeErrorsFromStackDeletion：**

     描述刪除 CloudFormation 堆疊時遇到的錯誤。
   + **finalStatus：**

     傳回 `AWSSupport-TroubleshootOpenSearchHighCPU` Runbook 的最終輸出。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果。
   + **finalStatus.FinalOutput:**

     提供存放診斷資料的 CloudWatch 日誌群組。  
![\[Output message indicating hot thread data collection completed with log group details.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-opensearch-high-cpu_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootOpenSearchHighCPU)
+ [執行自動化](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 OpenSearch Service](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/handling-errors.html) 

# EventBridge
<a name="automation-ref-ev"></a>

 AWS Systems Manager 自動化為 Amazon EventBridge 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-AddOpsItemDedupStringToEventBridgeRule`](automation-aws-add-dedup-string-ev.md)
+ [`AWS-DisableEventBridgeRule`](automation-aws-disable-ev-rule.md)

# `AWS-AddOpsItemDedupStringToEventBridgeRule`
<a name="automation-aws-add-dedup-string-ev"></a>

 **Description** 

 `AWS-AddOpsItemDedupStringToEventBridgeRule` Runbook 新增與 Amazon EventBridge 規則相關聯的 all AWS Systems Manager OpsItems 重複資料刪除字串。如果已套用重複資料刪除字串，則 Runbook 不會將重複資料刪除字串新增至規則。若要進一步了解重複資料刪除字串和 OpsItems，請參閱*AWS Systems Manager 《 使用者指南*》中的[減少重複 OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-working-deduplication)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-AddOpsItemDedupStringToEventBridgeRule) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DedupString

  類型：字串

  描述：（必要） 您要新增至規則的重複資料刪除字串。
+ RuleName

  類型：字串

  描述：（必要） 您要新增重複資料刪除字串的規則名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `events:ListTargetsByRule` 
+  `events:PutTargets` 

 **文件步驟** 
+  `aws:executeScript` - 將重複資料刪除字串新增至您在 `RuleName` 參數中指定的 EventBridge 規則。

# `AWS-DisableEventBridgeRule`
<a name="automation-aws-disable-ev-rule"></a>

 **Description** 

 `AWS-DisableEventBridgeRule` Runbook 會停用您 specify.To 的 Amazon EventBridge 規則，進一步了解 EventBridge 規則，請參閱《[Amazon EventBridge 使用者指南](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)*》中的 Amazon EventBridge * 規則。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DisableEventBridgeRule) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ EventBusName

  類型：字串

  預設：預設

  描述：（選用） 與您要停用的規則相關聯的事件匯流排。
+ RuleName

  類型：字串

  描述：（必要） 您要停用的規則名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `events:DisableRule` 

 **文件步驟** 
+  `aws:executeAwsApi` - 停用您在 `RuleName` 參數中指定的 EventBridge 規則。

# AWS Glue
<a name="automation-ref-glu"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Glue。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-TroubleshootGlueConnection`](automation-awssupport-troubleshootglueconnection.md)

# `AWSSupport-TroubleshootGlueConnection`
<a name="automation-awssupport-troubleshootglueconnection"></a>

 **Description** 

 **AWSSupport-TroubleshootGlueConnections** Runbook 可協助疑難排解 AWS Glue 連線問題。測試連線的目標必須透過 JDBC 連線到達，而且可以是 Amazon Relational Database Service (Amazon RDS) 叢集/執行個體、Amazon Redshift 叢集，或可透過 JDBC 存取的任何其他目標。在前兩個案例中， Reachability Analyzer 工具用於判斷是否授予來源 (AWS Glue) 與目標 (Amazon RDS 或 Amazon Redshift) 之間的連線。

 如果連線的目標不是 Amazon RDS 或 Amazon Redshift，仍會透過在 AWS Glue 與連線相同的子網路 （網路存在點） 中建立 AWS Lambda 函數，並檢查目標名稱是否可以解析，以及是否可在目標連接埠中連線來測試連線。

**重要**  
 為了執行 [Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 檢查，會在每個連線的資料來源子網路中建立[彈性網路界面](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)。請確定您在這些子網路上有足夠的可用 IPs，而且在執行此自動化之前，使用一個 IP 不會影響您的工作負載。

**重要**  
 此自動化建立的所有資源都會加上標籤，以便輕鬆找到。使用的標籤為：  
 `AWSSupport-TroubleshootGlueConnection`：true 
 `AutomationExecutionId`：*Amazon EC2 Systems Manager 執行 ID* 

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 描述連線 AWS Glue 以取得連線檢查的來源資訊 （子網路和安全群組）。
+ 從 JDBC URL 中參考的資料來源或存在的 `DatasourceSecurityGroups`和 `DatasourceSubnets` 參數擷取目標資訊 （子網路和安全群組）。
+ 如果 JDBC URL 中存在的資料來源是 Amazon RDS 執行個體或叢集或 Amazon Redshift 叢集，則此自動化會使用先前步驟中收集的來源和目標資訊建立 ENIs，並使用 Reachability Analyzer 在它們之間執行連線檢查。
+ Lambda 函數 （在此自動化內容中為網路存在點） 用於執行 L4 連線和名稱解析檢查。
+ 相同的 Lambda 函數用於對 Amazon S3 端點執行檢查。
+ 政策模擬器用於判斷連線中使用的 IAM 角色是否具有所需的許可。
+ 自動化會檢查連線所使用的安全群組是否具有預期的組態。
+ 會產生報告，其中包含測試連線操作中失敗的可能原因，和/或成功執行的測試。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootGlueConnection) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `cloudformation:CreateStack` 
+  `cloudformation:DeleteStack` 
+  `ec2:CreateNetworkInsightsPath` 
+  `ec2:CreateNetworkInterface` 
+  `ec2:CreateTags` 
+  `ec2:DeleteNetworkInsightsAnalysis` 
+  `ec2:DeleteNetworkInsightsPath` 
+  `ec2:DeleteNetworkInterface` 
+  `ec2:StartNetworkInsightsAnalysis` 
+  `iam:AttachRolePolicy` 
+  `iam:CreateRole` 
+  `iam:DeleteRole` 
+  `iam:DeleteRolePolicy` 
+  `iam:DetachRolePolicy` 
+  `iam:PutRolePolicy` 
+  `iam:TagRole` 
+  `lambda:CreateFunction` 
+  `lambda:DeleteFunction` 
+  `lambda:TagResource` 
+  `logs:CreateLogGroup` 
+  `logs:DeleteLogGroup` 
+  `logs:PutRetentionPolicy` 
+  `logs:TagResource` 
+  `glue:GetConnection` 
+  `glue:GetDataCatalogEncryptionSettings` 
+  `cloudformation:DescribeStacks` 
+  `cloudformation:DescribeStackEvents` 
+  `ec2:DescribeDhcpOptions` 
+  `ec2:DescribeNetworkInsightsPaths` 
+  `ec2:DescribeNetworkInsightsAnalyses` 
+  `ec2:DescribeSecurityGroupRules` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeSubnets` 
+  `ec2:DescribeVpcs` 
+  `ec2:DescribeVpcAttribute` 
+  `iam:GetRole` 
+  `iam:ListAttachedRolePolicies` 
+  `iam:SimulatePrincipalPolicy` 
+  `kms:DescribeKey` 
+  `lambda:InvokeFunction` 
+  `lambda:GetFunction` 
+  `s3:GetEncryptionConfiguration` 
+  `iam:PassRole` 

**重要**  
 除了上述動作之外， `AutomationAssumeRole`還應該將 [ AmazonVPCReachabilityAnalyzerFullAccessPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonVPCReachabilityAnalyzerFullAccessPolicy.html) 作為[連接的受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)，以便成功執行 [Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 測試。

以下是可授予 的政策範例`AutomationAssumeRole`：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "TaggedAWSResourcesPermissions",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true"
                }
            },
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:TagRole",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:TagResource",
                "logs:DeleteLogGroup",
                "logs:CreateLogGroup",
                "logs:PutRetentionPolicy",
                "logs:TagResource",
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack"
            ],
            "Resource": "*"
        },
        {
            "Sid": "TaggedEC2ResourcesPermissions",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true"
                }
            },
            "Action": [
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        },
        {
            "Sid": "PutRolePolicy",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "iam:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true"
                }
            },
            "Action": [
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "InvokeFunction",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": "arn:*:lambda:*:*:function:point-of-presence-*"
        },
        {
            "Sid": "UnTaggedActions",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInsightsPath",
                "ec2:DeleteNetworkInsightsAnalysis",
                "ec2:DeleteNetworkInsightsPath",
                "ec2:CreateNetworkInterface",
                "ec2:CreateTags",
                "ec2:StartNetworkInsightsAnalysis",
                "glue:GetConnection",
                "glue:GetDataCatalogEncryptionSettings",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackEvents",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInsightsPaths",
                "ec2:DescribeNetworkInsightsAnalyses",
                "ec2:DescribeSecurityGroupRules",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DescribeVpcAttribute",
                "iam:GetRole",
                "iam:ListAttachedRolePolicies",
                "iam:SimulatePrincipalPolicy",
                "kms:DescribeKey",
                "lambda:GetFunction",
                "s3:GetEncryptionConfiguration"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:*:iam::*:role/point-of-presence-*",
            "Condition": {
                "StringLikeIfExists": {
                    "iam:PassedToService": "lambda.amazonaws.com"
                }
            }
        }
    ]
}
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootGlueConnection/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootGlueConnection/description) 中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   +  **AutomationAssumeRole （選用）：**

      (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   +  **TestConnectionRole （必要）** 

      在連線測試期間使用的 IAM 角色的 Amazon Resource Name (ARN)。
   +  **ConnectionName （必要）** 

      AWS Glue 您想要故障診斷的測試連線名稱失敗。
   +  **PersistReachabilityAnalyzerResults （選用）** 

      標記會通知是否應保留 Reachability Analyzer 執行的結果。預設：`false.`
   +  **PointOfPresenceLogRetentionPeriod （選用）** 

      Lambda 存在點的日誌將存放的天數。預設：`7`。
   +  **DatasourceSubnets （選用）** 

      如果無法使用原始資料來源，請使用此參數來提供使用的子網路，以便仍執行連線測試。**必須**搭配 使用`DatasourceSecurityGroups`。範例：`subnet-1,subnet-2`。
   +  **DatasourceSecurityGroups （選用）** 

      如果無法使用原始資料來源，請使用此參數來提供其使用的安全群組，以便仍執行連線測試。**必須**搭配 使用`DatasourceSubnets`。範例：`sg-1,sg-2`。  
![\[Input parameters form for AWS Glue connection troubleshooting with various configuration options.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshootglueconnection_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 自動化 Runbook 會執行下列步驟：
   +  **ParseInputs：**

      此步驟會驗證輸入組合。如果同時提供 `DatasourceSubnets` `DatasourceSecurityGroups`和 ，則它們有效並依原狀傳回。如果未提供，則會傳回兩個空白清單。如果只提供其中一個，步驟會引發 `ValueException`。
   +  **GetConnectionDetails：**

     此步驟會傳回所提供 AWS Glue 連線的詳細資訊。
   +  **ParseSecurityGroupList：**

      此步驟用於串連 `SecurityGroupIdList`中的 `String`，以供此自動化的未來使用。
   +  **GetConnectionData：**

      根據 JDBC URL，決定 `RedShift`、 `RdsInstance``RdsCluster`和 之間的連線類型`Other`。此外， 會傳回 JDBC 連線中使用的網域和連接埠、連線的 Amazon VPC 及其網域名稱伺服器。
   +  **GetNetworkDetails：**

      從 Amazon RDS 或 Amazon Redshift 目標取得子網路和安全群組資訊。
   +  **CreateENITemplate：**

      產生用於建立用於測試連線的網路介面的 AWS CloudFormation 範本。這是執行 Reachability Analyzer 工具的必要項目。
   +  **CreateENIStack：**

      從上一個步驟中建立的範本建立 CloudFormation 堆疊。
   +  **GetStackDetails：**

      描述在上一個 CloudFormation 堆疊中建立的堆疊，並擷取`SourceNetworkInterface``TargetNetworkInterfaces`資訊。
   +  **RunSourceToTargetCheck：**

      使用 Reachability Analyzer 工具，在上一個步驟中建立的來源和目標 ENIs 之間執行檢查。
   +  **DeleteENIStack：**

     刪除建立網路介面的 CloudFormation 堆疊
   +  **CreateNetworkPointOfPresence：**

      CloudFormation 會建立做為網路存在點的 Lambda 函數。
   +  **GetFunctionName：**

      執行 CloudFormation 描述堆疊 API 呼叫，以擷取在上一個步驟中建立的 Lambda 函數名稱。
   +  **RunEndpointChecks：**

      使用網路存在點來判斷 JDBC 連線中存在的端點是否可以在宣告的連接埠中解析和連線。
   +  **CheckS3Connectivity：**

      檢查從 AWS Glue 連線到 Amazon S3 服務的網路連線。
   +  **DeletePointOfPresence：**

      刪除建立 Lambda 網路存在點的 CloudFormation 堆疊。
   +  **TestIAMRolePermissions：**

      檢查用於測試的 IAM 角色是否具有執行測試所需的許可。
   +  **CheckConnectionSecurityGroupReferencingRule：**

      檢查 AWS Glue 連線中使用的安全群組是否允許來自本身的所有輸入流量。如果有的話，它會傳回沒有此規則的安全群組清單。
   +  **GenerateReport：**

      產生包含清單 o 調查結果 （連線測試失敗的可能原因） 和後續步驟 （嘗試解決連線測試失敗） 的報告。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：
   +  **自動化結果** 

      在本節中，您將找到描述測試連線操作失敗 （尋找） 的可能原因，以及如何修正這些操作 （後續步驟） 的案例。如果自動化找不到測試失敗的原因，也會在本節中通知您。
   +  **成功的測試** 

      在本節中，您會找到通知此自動化已成功測試的內容的案例。成功的測試在自動化無法識別測試連線失敗的原因時很有用，因為它們會透過通知未造成問題的因素來減少調查範圍。
   +  **自動化錯誤** 

      在本節中，您將找到描述自動化期間所發生問題的案例，這可能限制了自動化可執行的測試數量。案例的描述會通知哪個步驟失敗。  
![\[Troubleshooting results for AWS Glue connection issues with DNS resolution and IAM role problems.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshootglueconnection_outputs.png)

 **參考** 

Systems Manager Automation
+  [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootGlueConnection/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/) 

# Amazon FSx
<a name="automation-ref-fsx"></a>

 AWS Systems Manager 自動化為 Amazon FSx 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-ValidateFSxWindowsADConfig`](awssupport-validate-fsxwindows-adconfig.md)

# `AWSSupport-ValidateFSxWindowsADConfig`
<a name="awssupport-validate-fsxwindows-adconfig"></a>

 **Description** 

 `AWSSupport-ValidateFSxWindowsADConfig` Runbook 用於驗證 Amazon FSx for Windows File Server 的自我管理 Active Directory (AD) 組態 

 **如何運作？** 

 Runbook `AWSSupport-ValidateFSxWindowsADConfig`會在 Runbook 在 Amazon FSx 子網路上啟動的暫時 Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體上執行 Amazon FSx 驗證指令碼。指令碼會執行多次檢查，以驗證與自我管理 AD/DNS 伺服器的網路連線，以及 Amazon FSx 服務帳戶的許可。Runbook 可以驗證失敗或設定錯誤的 Amazon FSx for Windows File Server，或使用自我管理 AD 建立新的 Amazon FSx for Windows File Server。

 根據預設， Runbook 會在 Amazon FSx 子網路上使用 建立 Amazon EC2 Windows 執行個體、 AWS Systems Manager (SSM) 存取的安全群組、 AWS Identity and Access Management (IAM) 角色和政策。 CloudFormation FSx 如果您想要在現有的 Amazon EC2 執行個體上執行指令碼，請在 參數中提供 ID`InstanceId`。成功執行時，它會刪除 CloudFormation 資源。不過，若要保留資源，請將 `RetainCloudFormationStack` 參數設定為 `true`。

 CloudFormation 範本會代表您建立具有必要許可的 IAM 角色，以連接至 Amazon EC2 執行個體來執行 Amazon FSx 驗證指令碼。若要指定暫時執行個體的現有 IAM 執行個體描述檔，請使用 `InstanceProfileName` 參數。相關聯的 IAM 角色必須包含下列許可：
+ `ec2:DescribeSubnets` 和 `ec2:DescribeVpcs`許可以及 Amazon 受管政策 `AmazonSSMManagedInstanceCore`。
+ 呼叫 `GetSecretValue` API，從 Systems Manager 取得 Amazon FSx 服務帳戶使用者名稱和密碼的許可。
+ 將物件放入指令碼輸出之 Amazon Simple Storage Service (Amazon S3) 儲存貯體的許可。

 **先決條件** 

 建立臨時 Amazon EC2 執行個體 （或 `InstanceId` 參數中提供的現有執行個體） 的子網路必須允許存取 AWS Systems Manager、 和 Amazon S3 端點 AWS Secrets Manager，才能使用 SSM Run Command 執行`AmazonFSxADValidation`指令碼。

 **AWS Secrets Manager 設定** 

 驗證指令碼透過擷取 Amazon FSx 服務帳戶使用者名稱和密碼，以及對 Secrets Manager 的執行期呼叫來連線至 Microsoft AD 網域。請依照[建立 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)中的步驟，建立新的 Secrets Manager 秘密。請確定使用者名稱和密碼是使用格式為 的金鑰/值對來存放`{"username":"EXAMPLE-USER","password":"EXAMPLE-PASSWORD"}"`。如需保護秘密存取的相關資訊，請參閱 [的身分驗證和存取控制 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html)。

 如需工具的詳細資訊，請參閱 [AmazonFSxADValidation](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/samples/AmazonFSxADValidation.zip) `README.md` 檔案中的 `TROUBLESHOOTING.md`和 檔案。

 **Runbook 執行** 

 使用 Amazon FSx ID 或 AD 參數執行 Runbook。以下是 Runbook 工作流程：
+ 從 Amazon FSx ID 取得參數，或使用輸入 AD 參數。
+ 使用 CloudFormation 在 Amazon FSx 子網路、SSM 存取的安全群組、IAM 角色和政策 （條件式） 上建立臨時驗證 Amazon EC2 Windows 執行個體。 FSx 如果指定 參數，則會使用該`InstanceId`參數。
+ 在 Amazon FSx 主要子網路中的目標 Amazon EC2 執行個體上下載並執行驗證指令碼。 FSx 
+ 在自動化輸出中提供 AD 驗證結果代碼。此外，完整的指令碼輸出會上傳到 Amazon S3 儲存貯體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ValidateFSxWindowsADConfig) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStacks`
+ `cloudformation:DescribeStackResources`
+ `cloudformation:DescribeStackEvents`
+ `ec2:CreateTags`
+ `ec2:RunInstances`
+ `ec2:TerminateInstances`
+ `ec2:CreateLaunchTemplate`
+ `ec2:DeleteLaunchTemplate`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeImages`
+ `ec2:DescribeInstances`
+ `ec2:DescribeLaunchTemplates`
+ `ec2:DescribeLaunchTemplateVersions`
+ `ec2:CreateSecurityGroup`
+ `ec2:DeleteSecurityGroup`
+ `ec2:RevokeSecurityGroupEgress`
+ `ec2:AuthorizeSecurityGroupEgress`
+ `iam:CreateRole`
+ `iam:CreateInstanceProfile`
+ `iam:GetInstanceProfile`
+ `iam:getRolePolicy`
+ `iam:DeleteRole`
+ `iam:DeleteInstanceProfile`
+ `iam:AddRoleToInstanceProfile`
+ `iam:RemoveRoleFromInstanceProfile`
+ `iam:AttachRolePolicy`
+ `iam:DetachRolePolicy`
+ `iam:PutRolePolicy`
+ `iam:DeleteRolePolicy`
+ `iam:GetRole`
+ `iam:PassRole`
+ `ssm:SendCommand`
+ `ssm:StartAutomationExecution`
+ `ssm:DescribeInstanceInformation`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:GetDocument`
+ `ssm:GetAutomationExecution`
+ `ssm:DescribeAutomationStepExecutions`
+ `ssm:ListCommandInvocations`
+ `ssm:GetParameters`
+ `ssm:ListCommands`
+ `ssm:GetCommandInvocation`
+ `fsx:DescribeFileSystems`
+ `ds:DescribeDirectories`
+ `s3:GetEncryptionConfiguration`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:GetAccountPublicAccessBlock`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetBucketAcl`
+ `s3:GetBucketLocation`

 **自動化擔任角色的 IAM 政策範例** 

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

****  

```
                {
                    "Version":"2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Sid": "AllowDescribe",
                            "Effect": "Allow",
                            "Action": [
                                "ec2:DescribeSubnets",
                                "ec2:DescribeSecurityGroups",
                                "ec2:DescribeImages",
                                "ec2:DescribeInstances",
                                "ec2:DescribeLaunchTemplates",
                                "ec2:DescribeLaunchTemplateVersions",
                                "ssm:DescribeInstanceInformation",
                                "ssm:DescribeAutomationExecutions",
                                "ssm:DescribeAutomationStepExecutions",
                                "fsx:DescribeFileSystems",
                                "ds:DescribeDirectories"
                            ],
                            "Resource": "*"
                        },
                        {
                            "Sid": "CloudFormation",
                            "Effect": "Allow",
                            "Action": [
                                "cloudformation:DescribeStacks",
                                "cloudformation:DescribeStackResources",
                                "cloudformation:DescribeStackEvents",
                                "cloudformation:CreateStack",
                                "cloudformation:DeleteStack"
                            ],
                            "Resource": "arn:*:cloudformation:*:*:stack/AWSSupport-ValidateFSxWindowsADConfig-*"
                        },
                        {
                            "Sid": "AllowCreateLaunchTemplate",
                            "Effect": "Allow",
                            "Action": [
                                "ec2:CreateLaunchTemplate",
                                "ec2:CreateTags"
                            ],
                            "Resource": [
                                "arn:aws:ec2:*:*:launch-template/*"
                            ]
                        },
                        {
                            "Sid": "AllowEC2RunInstances",
                            "Effect": "Allow",
                            "Action": [
                                "ec2:RunInstances",
                                "ec2:CreateTags"
                            ],
                            "Resource": [
                                "arn:aws:ec2:*::image/*",
                                "arn:aws:ec2:*::snapshot/*",
                                "arn:aws:ec2:*:*:subnet/*",
                                "arn:aws:ec2:*:*:network-interface/*",
                                "arn:aws:ec2:*:*:security-group/*",
                                "arn:aws:ec2:*:*:key-pair/*",
                                "arn:aws:ec2:*:*:launch-template/*"
                            ]
                        },
                        {
                            "Sid": "AllowEC2RunInstancesWithTags",
                            "Effect": "Allow",
                            "Action": [
                                "ec2:RunInstances",
                                "ec2:CreateTags"
                            ],
                            "Resource": [
                                "arn:aws:ec2:*:*:instance/*",
                                "arn:aws:ec2:*:*:volume/*"
                            ]
                        },
                        {
                            "Sid": "EC2SecurityGroup",
                            "Effect": "Allow",
                            "Action": [
                                "ec2:CreateSecurityGroup",
                                "ec2:RevokeSecurityGroupEgress",
                                "ec2:AuthorizeSecurityGroupEgress",
                                "ec2:CreateTags"
                            ],
                            "Resource": [
                                "arn:*:ec2:*:*:security-group/*",
                                "arn:*:ec2:*:*:vpc/*"
                            ]
                        },
                        {
                            "Sid": "EC2Remove",
                            "Effect": "Allow",
                            "Action": [
                                "ec2:TerminateInstances",
                                "ec2:DeleteLaunchTemplate",
                                "ec2:DeleteSecurityGroup"
                            ],
                            "Resource": [
                                "arn:aws:ec2:*:*:instance/*",
                                "arn:aws:ec2:*:*:launch-template/*",
                                "arn:*:ec2:*:*:security-group/*"
                            ]
                        },
                        {
                            "Sid": "IAMInstanceProfile",
                            "Effect": "Allow",
                            "Action": [
                                "iam:CreateInstanceProfile",
                                "iam:DeleteInstanceProfile",
                                "iam:GetInstanceProfile",
                                "iam:AddRoleToInstanceProfile",
                                "iam:RemoveRoleFromInstanceProfile"
                            ],
                            "Resource": "arn:*:iam::*:instance-profile/*"
                        },
                        {
                            "Sid": "IAM",
                            "Effect": "Allow",
                            "Action": [
                                "iam:CreateRole",
                                "iam:DeleteRole",
                                "iam:AttachRolePolicy",
                                "iam:DetachRolePolicy",
                                "iam:getRolePolicy",
                                "iam:PutRolePolicy",
                                "iam:DeleteRolePolicy",
                                "iam:GetRole",
                                "iam:TagRole"
                            ],
                            "Resource": "arn:*:iam::*:role/*"
                        },
                        {
                            "Sid": "SSM",
                            "Effect": "Allow",
                            "Action": [
                                "ssm:StartAutomationExecution",
                                "ssm:GetDocument",
                                "ssm:GetAutomationExecution",
                                "ssm:ListCommandInvocations",
                                "ssm:GetParameters",
                                "ssm:ListCommands",
                                "ssm:GetCommandInvocation"
                            ],
                            "Resource": "*"
                        },
                        {
                            "Sid": "SSMSendCommand",
                            "Effect": "Allow",
                            "Action": [
                                "ssm:SendCommand"
                            ],
                            "Resource": "arn:aws:ssm:*:*:document/AWS-RunPowerShellScript"
                        },
                        {
                            "Sid": "SSMSendCommandOnlyFsxInstance",
                            "Effect": "Allow",
                            "Action": [
                                "ssm:SendCommand"
                            ],
                            "Resource": [
                                "arn:aws:ec2:*:*:instance/*"
                            ],
                            "Condition": {
                                "StringLike": {
                                    "ssm:resourceTag/CreatedBy": [
                                        "AWSSupport-ValidateFSxWindowsADConfig"
                                    ]
                                }
                            }
                        },
                        {
                            "Sid": "AllowPassRoleToEC2",
                            "Effect": "Allow",
                            "Action": "iam:PassRole",
                            "Resource": "arn:*:iam::*:role/AWSSupport-ValidateFSxWindowsADConfig-*",
                            "Condition": {
                                "StringEquals": {
                                    "iam:PassedToService": [
                                        "ec2.amazonaws.com"
                                    ]
                                }
                            }
                        },
                        {
                            "Effect": "Allow",
                            "Action": [
                                "s3:GetEncryptionConfiguration",
                                "s3:GetBucketPublicAccessBlock",
                                "s3:GetAccountPublicAccessBlock",
                                "s3:GetBucketPolicyStatus",
                                "s3:GetBucketAcl",
                                "s3:GetBucketLocation"
                            ],
                            "Resource": "*"
                        }
                    ]
                }
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ValidateFSxWindowsADConfig/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ValidateFSxWindowsADConfig/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 若要使用現有失敗或設定錯誤的 Amazon FSx 驗證自我管理 AD，請輸入下列參數：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **FSxId （條件式）：**

     Amazon FSx for Windows File Server ID。這是驗證現有失敗或設定錯誤的 Amazon FSx 的必要項目。
   + **SecretArn （必要）：**

     包含 Amazon FSx 服務帳戶使用者名稱和密碼之 Secrets Manager 秘密的 ARN。請確定使用者名稱和密碼是使用格式為 的金鑰/值對來存放`{"username":"EXAMPLE-USER","password":"EXAMPLE-PASSWORD"}`。CloudFormation 堆疊會建立具有`GetSecretValue`執行此 ARN 許可的驗證執行個體。
   + **FSxSecurityGroupId （必要）：**

     Amazon FSx for Windows File Server 的安全群組 ID。
   + **BucketName （必要）：**

     要上傳驗證結果的 Amazon S3 儲存貯體。請確定儲存貯體已設定伺服器端加密 (SSE)，且儲存貯體政策不會將不必要的讀取/寫入許可授予不需要存取日誌的各方。此外，請確定 Amazon EC2 Windows 執行個體具有 Amazon S3 儲存貯體的必要存取權。  
![\[Input parameters form for AWS Systems Manager managed Windows Server EC2 instance validation.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-validate-fsxwindows-adconfig_input_parameters1.png)

1. 若要驗證新 Amazon FSx 建立的自我管理 AD 組態，請輸入下列參數：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **SecretArn （必要）：**

     包含 Amazon FSx 服務帳戶使用者名稱和密碼之 Secrets Manager 秘密的 ARN。請確定使用者名稱和密碼是使用格式為 的金鑰/值對來存放`{"username":"EXAMPLE-USER","password":"EXAMPLE-PASSWORD"}`。CloudFormation 堆疊會建立具有`GetSecretValue`執行此 ARN 許可的驗證執行個體。
   + **FSxSecurityGroupId （必要）：**

     Amazon FSx for Windows File Server 的安全群組 ID。
   + **BucketName （必要）：**

     要上傳驗證結果的 Amazon S3 儲存貯體。請確定儲存貯體已設定伺服器端加密 (SSE)，且儲存貯體政策不會將不必要的讀取/寫入許可授予不需要存取日誌的各方。此外，請確定 Amazon EC2 Windows 執行個體具有 Amazon S3 儲存貯體的必要存取權。
   + **FSxPreferredSubnetId （條件式）：**

     Amazon FSx for Windows File Server 偏好的子網路。
   + **DomainName （條件式）：**

     自我管理 Microsoft AD 網域的完整網域名稱。
   + **DnsIpAddresses （條件式）：**

     自我管理 AD 網域中最多兩個 DNS 伺服器或網域控制站 IP 地址的清單。針對最多兩個 IPs，輸入以逗號分隔的 IP。
   + **FSxAdminsGroup （條件式）：**

     Amazon FSx for Windows File Server 委派檔案系統管理員群組。根據預設，此為 `Domain Admins`。
   + **FSxOrganizationalUnit （條件式）：**

     您要加入檔案系統的組織單位 (OU)。提供 OU 的辨別路徑名稱。範例：`OU=org,DC=example,DC=com`。  
![\[Form fields for configuring Amazon FSx for Windows File Server and related AWS 服務.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-validate-fsxwindows-adconfig_input_parameters2.png)

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **CheckBucketPublicStatus (aws：executeScript)：**

     檢查目標 Amazon S3 儲存貯體是否可能授予其物件的讀取和/或寫入公開存取權。
   + **BranchOnInputParameters (aws：branch)：**

     所提供輸入參數上的分支，例如 Amazon FSx ID 或 Amazon FSx 參數。
   + **AssertFileSystemTypeIsWindows (aws：assertAwsResourceProperty)：**

     如果提供 Amazon FSx ID， 會驗證檔案系統類型為 Amazon FSx for Windows File Server。
   + **GetValidationInputs (aws：executeScript)：**

     傳回 CloudFormation 範本建立 Amazon EC2 執行個體所需的自我管理 Microsoft AD 組態。
   + **BranchOnInstanceId (aws：branch)：**

     所提供輸入 上的分支`InstanceId`。如果`InstanceId`提供 ，驗證指令碼會從自動化 在目標 Amazon EC2 執行個體上執行`step:RunValidationScript`。
   + **CreateEC2InstanceStack (aws：createStack)：**

     使用執行`AmazonFSxADValidation`工具 CloudFormation 的位置，在偏好的子網路中建立 Amazon EC2 執行個體
   + **DescribeStackResources (aws：executeAwsApi)：**

     描述 CloudFormation 堆疊以取得暫時 Amazon EC2 執行個體 ID。
   + **WaitForEC2InstanceToBeManaged (aws：waitForAwsResourceProperty)：**

     等到 Systems Manager 管理 Amazon EC2 執行個體，才能使用 SSM Run Command 執行驗證指令碼。
   + **GetAmazonFSxADValidationAttachment (aws：executeAwsApi)：**

     從 Runbook 附件取得`AmazonFSxADValidation`工具 URL。
   + **RunValidationScript (aws：runCommand)：**

     在暫時 Amazon EC2 執行個體上執行`AmazonFSxADValidation`工具，並將結果存放在 `BucketName` 參數中指定的 Amazon S3 儲存貯體中。
   + **DescribeErrorsFromStackEvents (aws：executeScript)：**

     如果 Runbook 無法建立堆疊，則說明 CloudFormation 堆疊事件。
   + **BranchOnRetainCloudFormationStack (aws：branch)：**

     `RetainCloudFormationStack` 和 `InstanceId` 參數上的分支，以判斷是否應刪除 CloudFormation 堆疊。
   + **DeleteCloudFormationStack (aws：deleteStack)：**

     刪除 CloudFormation 堆疊。

1. 完成後，請檢閱輸出區段以取得執行結果：  
![\[Output showing instance details, CloudFormation stack ID, and validation script results with errors.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-validate-fsxwindows-adconfig_outputs.png)

   Runbook 會將驗證指令碼執行的結果上傳至 Amazon S3 儲存貯體。

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ValidateFSxWindowsADConfig/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 FSx for Windows File Server？](https://docs.aws.amazon.com//fsx/latest/WindowsGuide/what-is.html)
+ [驗證 Amazon FSx for Windows File Server 的自我管理 AD 組態](https://docs.aws.amazon.com//fsx/latest/WindowsGuide/validate-ad-config.html)

# GuardDuty
<a name="automation-ref-gdu"></a>

 AWS Systems Manager 自動化為 Amazon GuardDuty 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-CreateGuardDutyDetector`](automation-aws-enable-guard-detect.md)

# `AWSConfigRemediation-CreateGuardDutyDetector`
<a name="automation-aws-enable-guard-detect"></a>

 **Description** 

 `AWSConfigRemediation-CreateGuardDutyDetector` Runbook 會在您執行自動化 AWS 區域 的 中建立 Amazon GuardDuty (GuardDuty) 偵測器。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-CreateGuardDutyDetector) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `guardduty:CreateDetector` 
+  `guardduty:GetDetector` 

 **文件步驟** 
+  `aws:executeAwsApi` - 建立 GuardDuty 偵測器。
+  `aws:assertAwsResourceProperty` - 驗證偵測器`Status`的 為 `ENABLED` 。

# IAM
<a name="automation-ref-iam"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Identity and Access Management。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-TroubleshootIAMAccessDeniedEvents`](awssupport-troubleshootiamaccessdeniedevents.md)
+ [`AWS-AttachIAMToInstance`](automation-aws-attachiamtoinstance.md)
+ [`AWS-DeleteIAMInlinePolicy`](delete-iam-inline-policy.md)
+ [`AWSConfigRemediation-DeleteIAMRole`](automation-aws-delete-iam-role.md)
+ [`AWSConfigRemediation-DeleteIAMUser`](automation-aws-delete-iam-user.md)
+ [`AWSConfigRemediation-DeleteUnusedIAMGroup`](automation-aws-delete-iam-group.md)
+ [`AWSConfigRemediation-DeleteUnusedIAMPolicy`](automation-aws-delete-iam-policy.md)
+ [`AWSConfigRemediation-DetachIAMPolicy`](automation-aws-detach-iam-policy.md)
+ [`AWSConfigRemediation-EnableAccountAccessAnalyzer`](automation-aws-enable-account-access-analyzer.md)
+ [`AWSSupport-GrantPermissionsToIAMUser`](automation-awssupport-grantpermissionstoiamuser.md)
+ [`AWSConfigRemediation-RemoveUserPolicies`](automation-aws-remove-user-policies.md)
+ [`AWSConfigRemediation-ReplaceIAMInlinePolicy`](automation-aws-replace-iam-policy.md)
+ [`AWSConfigRemediation-RevokeUnusedIAMUserCredentials`](automation-aws-revoke-iam-user.md)
+ [`AWSConfigRemediation-SetIAMPasswordPolicy`](automation-aws-set-iam-policy.md)
+ [`AWSSupport-ContainIAMPrincipal`](awssupport-contain-iam-principal.md)
+ [`AWSSupport-TroubleshootSAMLIssues`](awssupport-troubleshootsamlissues.md)

# `AWSSupport-TroubleshootIAMAccessDeniedEvents`
<a name="awssupport-troubleshootiamaccessdeniedevents"></a>

 **Description** 

 **AWSSupport-TroubleshootIAMAccessDeniedEvents ** 自動化 Runbook 可協助疑難排解 AWS Identity and Access Management (IAM) 存取遭拒的問題。Runbook 會查詢 CloudTrail 是否有與指定 IAM 實體和服務 AWS 事件來源相關的最近存取遭拒事件。它會在最多 24 小時的可設定時段內分析事件，每次執行最多處理 10 個事件。系統會檢查每個已識別的拒絕存取事件，以協助了解拒絕的內容和嘗試的動作。自動化會分析身分型和資源型 IAM 政策。對於身分型政策，它會檢查連接到 IAM 實體的內嵌和受管政策。對於以資源為基礎的政策，它會評估多個 AWS 服務的政策，包括 Amazon Simple Storage Service (Amazon S3)、 AWS Key Management Service (AWS KMS) AWS Lambda、Amazon Simple Notification Service (Amazon SNS)、Amazon Elastic Container Registry (Amazon ECR)、Amazon API Gateway、CodeArtifact、Amazon Elastic File System (Amazon EFS) AWS Serverless Application Repository、Amazon Simple Queue Service (Amazon SQS) AWS Cloud9、Amazon OpenSearch Service、 AWS Signer 和 AWS Secrets Manager。

 Runbook 利用 IAM 政策模擬功能，針對 CloudTrail 事件中找到的拒絕動作來評估這些政策。Runbook 透過適用於 IAM 使用者的 [SimulatePrincipalPolicy ](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html) 和適用於 IAM 角色的 [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html)，利用 IAM 的政策模擬功能，針對 CloudTrail 事件中找到的拒絕動作來評估這些政策。自動化會輸出報告，以協助識別遭拒的特定動作、區分隱含和明確拒絕、列出負責存取拒絕的政策，並針對每個拒絕提供說明。報告也建議潛在的解決方案，例如識別缺少的允許陳述式或衝突的拒絕陳述式 

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 描述並驗證 `RequesterARN`（角色或使用者） 以取得 IAM 實體類型和 IAM ID 等資訊。
+ 擷取與 `RequesterARN`、 和 相關聯的 CloudTrail 事件`EventSource`，`ResourceARN`如果提供的話。
+ 分析 CloudTrail 事件以取得傳回存取遭拒錯誤時所執行的動作，然後檢查連接至 IAM 實體的所有 IAM 政策，例如內嵌和受管政策，以及以資源為基礎的政策。然後，它會針對從有問題的 CloudTrail 事件存取遭拒錯誤中找到的動作模擬這些政策，以判斷錯誤的原因。
+ 輸出報告以判斷拒絕存取錯誤的類型、負責錯誤的政策，並為錯誤提供潛在解決方案的建議。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootIAMAccessDeniedEvents) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `apigateway:GetRestApis`
+ `cloudtrail:LookupEvents`
+ `cloud9:GetEnvironment`
+ `codeartifact:GetRepositoryPermissionsPolicy`
+ `ecr:GetRepositoryPolicy`
+ `elasticfilesystem:GetFileSystemPolicy`
+ `es:DescribeDomain`
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:GetRole`
+ `iam:GetRolePolicy`
+ `iam:GetUser`
+ `iam:GetUserPolicy`
+ `iam:ListAttachedRolePolicies`
+ `iam:ListAttachedUserPolicies`
+ `iam:ListRolePolicies`
+ `iam:ListUserPolicies`
+ `iam:SimulatePrincipalPolicy`
+ `iam:SimulateCustomPolicy`
+ `kms:GetKeyPolicy`
+ `lambda:GetPolicy`
+ `secretsmanager:GetResourcePolicy`
+ `serverlessrepo:GetApplication`
+ `signer:GetSigningProfile`
+ `sns:GetTopicAttributes`
+ `ssm:StartAutomationExecution`
+ `ssm:StopAutomationExecution`
+ `sqs:GetQueueAttributes`
+ `s3:GetBucketPolicy`

範例政策：

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

****  

```
        {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
                {
                    "Action": [
                        "iam:GetUser",
                        "iam:GetRole",
                        "iam:SimulatePrincipalPolicy",
                        "iam:ListUserPolicies",
                        "iam:ListRolePolicies",
                        "iam:GetRolePolicy",
                        "iam:ListAttachedRolePolicies",
                        "iam:GetPolicy",
                        "iam:GetUserPolicy",
                        "iam:GetPolicyVersion",
                        "iam:ListAttachedUserPolicies",
                        "ssm:StartAutomationExecution",
                        "ssm:StopAutomationExecution",
                        "cloudtrail:LookupEvents",
                        "iam:SimulateCustomPolicy"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                },
                {
                    "Action": [
                        "s3:GetBucketPolicy",
                        "kms:GetKeyPolicy",
                        "lambda:GetPolicy",
                        "sns:GetTopicAttributes",
                        "ecr:GetRepositoryPolicy",
                        "apigateway:GET",
                        "codeartifact:GetRepositoryPermissionsPolicy",
                        "elasticfilesystem:DescribeFileSystemPolicy",
                        "sqs:GetQueueAttributes",
                        "cloud9:DescribeEnvironmentStatus",
                        "es:DescribeDomain",
                        "signer:GetSigningProfile",
                        "serverlessrepo:GetApplication",
                        "secretsmanager:GetResourcePolicy"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootIAMAccessDeniedEvents/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootIAMAccessDeniedEvents/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 SSM Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。角色需要新增至您的 Amazon EKS 叢集存取項目或 RBAC 許可，以允許 Kubernetes API 呼叫。
     + 類型：`AWS::IAM::Role::Arn`
   + **RequesterARN （必要）：**
     + 描述：（必要） 您要調查特定 AWS 資源之存取許可的 IAM 使用者或角色的 ARN。
     + 類型：`String`
     + 允許模式： `^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$`
   + **ResourceARN （選用）：**
     + 描述：（選用） 評估拒絕存取之 AWS 資源的 ARN。 AWS 目標資源應該存在於執行自動化 Runbook 的相同區域中。
     + 類型：`String`
     + 允許模式： `^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):([a-zA-Z0-9\\-]{1,63}):([a-z0-9\\-]{0,63})?:(\\d{12})?:([a-zA-Z0-9\\-_/:.]{1,1024})$`
   + **EventSource （必要）：**
     + 描述：（必要） 產生 CloudTrail 事件的 Amazon API 端點。例如：`s3.amazonaws.com`。
     + 類型：`String`
     + 允許模式： `^([a-zA-Z0-9.-]+)\\.amazonaws\\.com$`
   + **EventName （選用）：**
     + 描述：（選用） 與 CloudTrail 事件相關聯的 Amazon API 動作名稱。例如：`s3:CreateBucket`。
     + 類型：`String`
     + 允許模式： `^$|^[a-z0-9]+:[A-Za-z0-9]+$`
   + **LookBackHours （選用）：**
     + 描述：（選用） 搜尋事件時，在 CloudTrail `Access Denied`事件中回顧的時數。有效範圍： `1`到 `24` 小時。
     + 類型：整數
     + 允許模式： `^([1-9]|1[0-9]|2[0-4])$`
     + 預設：12
   + **MaxEvents （選用）：**
     + 描述：（選用） 搜尋`Access Denied`事件時傳回的 CloudTrail 事件數目上限。有效範圍： `1` 至 `5`事件。
     + 類型：整數
     + 允許模式： `^([1-9]|1[0-9]|2[0-4])$`
     + 預設：3
   + **UseContextEntries （選用）：**
     + 描述：（選用） 如果您指定 `true`，自動化會從 CloudTrail 事件擷取 API 請求內容的詳細資訊，並將其納入 IAM 政策模擬。
     + 類型：布林值
     + 允許模式： `^([1-9]|1[0-9]|2[0-4])$`
     + 預設：3

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **ValidateRequesterArn**

     驗證和解構 `RequesterArn` ARN，擷取目標 IAM 使用者或角色的相關資訊。
   + **GetCloudTrailEvents****WithAccessDeniedError**

     查詢 CloudTrail 事件是否有與指定 IAM 實體 AWS 和服務 相關的最近`Access Denied`事件`EventSource`。
   + **EvaluateIAMRequesterPolicies**

     根據 CloudTrail 事件的動作，評估請求者 IAM 實體的 IAM 許可。此評估包括分析與請求者相關聯的身分型和資源型政策。自動化利用 IAM 的政策模擬功能，在 CloudTrail 事件中識別的拒絕動作內容中評估這些政策。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果：
   + **PermissionEvaluationResults**

     輸出報告，以協助識別被拒絕的特定動作，區分隱含和明確拒絕。它還列出了負責存取拒絕的政策，並提供每個拒絕的說明。報告也建議潛在的解決方案，例如識別缺少的允許陳述式或衝突的拒絕陳述式

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/TroubleshootIAMAccessDeniedEvents/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-AttachIAMToInstance`
<a name="automation-aws-attachiamtoinstance"></a>

 **Description** 

將 AWS Identity and Access Management (IAM) 角色連接至受管執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-AttachIAMToInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ForceReplace

  類型：布林值

  描述：（選用） 指定是否取代現有 IAM 設定檔的旗標。

  預設：true
+ InstanceId

  類型：字串

  描述：（必要） 您要為其指派 IAM 角色的執行個體 ID。
+ RoleName

  類型：字串

  描述：（必要） 要新增至受管執行個體的 IAM 角色名稱。

 **文件步驟** 

1.  `aws:executeAwsApi` - DescribeInstanceProfile - 尋找連接至 EC2 執行個體的 IAM 執行個體描述檔。

1.  `aws:branch` - CheckInstanceProfileAssociations - 檢查連接至 EC2 執行個體的 IAM 執行個體描述檔。

   1.  如果已連接 IAM 執行個體描述檔，且`ForceReplace`設定為 `true` ：

      1.  `aws:executeAwsApi` - DisassociateIamInstanceProfile - 取消 IAM 執行個體描述檔與 EC2 執行個體的關聯。

   1.  `aws:executeAwsApi` - ListInstanceProfilesForRole - 列出所提供 IAM 角色的執行個體描述檔。

   1.  `aws:branch` - CheckInstanceProfileCreated - 檢查提供的 IAM 角色是否有相關聯的執行個體描述檔。

      1. 如果 IAM 角色具有相關聯的執行個體描述檔：

         1.  `aws:executeAwsApi` - AttachIAMProfileToInstance - 將 IAM 執行個體描述檔角色連接至 EC2 執行個體。

      1. 如果 IAM 角色沒有相關聯的執行個體描述檔：

         1.  `aws:executeAwsApi` - CreateInstanceProfileForRole - 為指定的 IAM 角色建立執行個體描述檔角色。

         1.  `aws:executeAwsApi` - AddRoleToInstanceProfile - 將執行個體描述檔角色連接至指定的 IAM 角色。

         1.  `aws:executeAwsApi` - GetInstanceProfile - 取得指定 IAM 角色的執行個體設定檔資料。

         1.  `aws:executeAwsApi` - AttachIAMProfileToInstanceWithRetry - 將 IAM 執行個體描述檔角色連接至 EC2 執行個體。

 **輸出** 

AttachIAMProfileToInstanceWithRetry.AssociationId

GetInstanceProfile.InstanceProfileName

GetInstanceProfile.InstanceProfileArn

AttachIAMProfileToInstance.AssociationId

ListInstanceProfilesForRole.InstanceProfileName

ListInstanceProfilesForRole.InstanceProfileArn

# `AWS-DeleteIAMInlinePolicy`
<a name="delete-iam-inline-policy"></a>

**Description**

`AWS-DeleteIAMInlinePolicy` Runbook 會刪除連接至您指定 IAM 身分的所有 AWS Identity and Access Management (IAM) 內嵌政策。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DeleteIAMInlinePolicy)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ IamArns

  類型：字串

  描述：（必要） 您要從中刪除內嵌政策之 IAM 身分ARNs逗號分隔清單。此清單可以包含 IAM 使用者、群組或角色。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `iam:DeleteGroupPolicy`
+ `iam:DeleteRolePolicy`
+ `iam:DeleteUserPolicy`
+ `iam:ListGroupPolicies`
+ `iam:ListRolePolicies`
+ `iam:ListUserPolicies`

**文件步驟**
+ `aws:executeScript` - 刪除連接到目標 IAM 身分的 IAM 內嵌政策。

# `AWSConfigRemediation-DeleteIAMRole`
<a name="automation-aws-delete-iam-role"></a>

 **Description** 

 `AWSConfigRemediation-DeleteIAMRole` Runbook 會 AWS Identity and Access Management 刪除您指定的 (IAM) 角色。此自動化不會刪除與 IAM 角色或服務連結角色相關聯的執行個體描述檔。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteIAMRole) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMRoleID

  類型：字串

  描述：（必要） 您要刪除的 IAM 角色 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:DeleteRole` 
+  `iam:DeleteRolePolicy` 
+  `iam:GetRole` 
+  `iam:ListAttachedRolePolicies` 
+  `iam:ListInstanceProfilesForRole` 
+  `iam:ListRolePolicies` 
+  `iam:ListRoles` 
+  `iam:RemoveRoleFromInstanceProfile` 

 **文件步驟** 
+  `aws:executeScript` - 收集您在 `IAMRoleID` 參數中指定的 IAM 角色名稱。
+  `aws:executeScript` - 收集與 IAM 角色相關聯的政策和執行個體描述檔。
+  `aws:executeScript` - 刪除連接的政策。
+  `aws:executeScript` - 刪除 IAM 角色並驗證該角色已刪除。

# `AWSConfigRemediation-DeleteIAMUser`
<a name="automation-aws-delete-iam-user"></a>

 **Description** 

 `AWSConfigRemediation-DeleteIAMUser` Runbook 會 AWS Identity and Access Management 刪除您指定的 (IAM) 使用者。此自動化會刪除或分離與 IAM 使用者相關聯的下列資源：
+ 存取金鑰
+ 連接的受管政策
+ Git 登入資料
+ IAM 群組成員資格
+ IAM 使用者密碼
+ 內嵌政策
+ 多重要素驗證 (MFA) 裝置
+ 簽署憑證
+ SSH 公有金鑰

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteIAMUser) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMUserId

  類型：字串

  描述：（必要） 您要刪除的 IAM 使用者 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:DeactivateMFADevice` 
+  `iam:DeleteAccessKey` 
+  `iam:DeleteLoginProfile` 
+  `iam:DeleteServiceSpecificCredential` 
+  `iam:DeleteSigningCertificate` 
+  `iam:DeleteSSHPublicKey` 
+  `iam:DeleteVirtualMFADevice` 
+  `iam:DeleteUser` 
+  `iam:DeleteUserPolicy` 
+  `iam:DetachUserPolicy` 
+  `iam:GetUser` 
+  `iam:ListAttachedUserPolicies` 
+  `iam:ListAccessKeys` 
+  `iam:ListGroupsForUser` 
+  `iam:ListMFADevices` 
+  `iam:ListServiceSpecificCredentials` 
+  `iam:ListSigningCertificates` 
+  `iam:ListSSHPublicKeys` 
+  `iam:ListUserPolicies` 
+  `iam:ListUsers` 
+  `iam:RemoveUserFromGroup` 

 **文件步驟** 
+  `aws:executeScript` - 收集您在 `IAMUserId` 參數中指定的 IAM 使用者的使用者名稱。
+  `aws:executeScript` - 收集與 IAM 使用者相關聯的存取金鑰、憑證、憑證、MFA 裝置和 SSH 金鑰。
+  `aws:executeScript` - 收集 IAM 使用者的群組成員資格和政策。
+  `aws:executeScript` - 刪除與 IAM 使用者相關聯的存取金鑰、憑證、登入資料、MFA 裝置和 SSH 金鑰。
+  `aws:executeScript` - 刪除 IAM 使用者的群組成員資格和政策。
+  `aws:executeScript` - 刪除 IAM 使用者並確認已刪除使用者。

# `AWSConfigRemediation-DeleteUnusedIAMGroup`
<a name="automation-aws-delete-iam-group"></a>

 **Description** 

 `AWSConfigRemediation-DeleteUnusedIAMGroup` Runbook 會刪除不包含任何使用者的 IAM 群組。

 `AWSConfigRemediation-DeleteUnusedIAMGroup` Runbook 會刪除不包含任何使用者的 IAM 群組。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteUnusedIAMGroup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ GroupName

  類型：字串

  描述：（必要） 您要刪除的 IAM 群組名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:DeleteGroup` 
+  `iam:DeleteGroupPolicy` 
+  `iam:DetachGroupPolicy` 

 **文件步驟** 
+  `aws:executeScript` - 移除連接至目標 IAM 群組的受管和內嵌 IAM 政策，然後刪除 IAM 群組。

# `AWSConfigRemediation-DeleteUnusedIAMPolicy`
<a name="automation-aws-delete-iam-policy"></a>

 **Description** 

 `AWSConfigRemediation-DeleteUnusedIAMPolicy` Runbook 會刪除未連接到任何使用者、群組或角色的 AWS Identity and Access Management (IAM) 政策。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteUnusedIAMPolicy) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMResourceId

  類型：字串

  描述：（必要） 您要刪除之 IAM 政策的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `config:ListDiscoveredResources` 
+  `iam:DeletePolicy` 
+  `iam:DeletePolicyVersion` 
+  `iam:GetPolicy` 
+  `iam:ListEntitiesForPolicy` 
+  `iam:ListPolicyVersions` 

 **文件步驟** 
+  `aws:executeScript` - 刪除您在 `IAMResourceId` 參數中指定的政策，並驗證政策已刪除。

# `AWSConfigRemediation-DetachIAMPolicy`
<a name="automation-aws-detach-iam-policy"></a>

 **Description** 

 `AWSConfigRemediation-DetachIAMPolicy` Runbook 會分離您指定的 AWS Identity and Access Management (IAM) 政策。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DetachIAMPolicy) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMResourceId

  類型：字串

  描述：（必要） 您要分離的 IAM 政策 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `config:ListDiscoveredResources` 
+  `iam:DetachGroupPolicy` 
+  `iam:DetachRolePolicy` 
+  `iam:DetachUserPolicy` 
+  `iam:GetPolicy` 
+  `iam:ListEntitiesForPolicy` 

 **文件步驟** 
+  `aws:executeScript` - 從所有資源分離 IAM 政策。

# `AWSConfigRemediation-EnableAccountAccessAnalyzer`
<a name="automation-aws-enable-account-access-analyzer"></a>

 **Description** 

 `AWSConfigRemediation-EnableAccountAccessAnalyzer` Runbook 會在您的 中建立 AWS Identity and Access Management (IAM) Access Analyzer AWS 帳戶。如需 Access Analyzer 的相關資訊，請參閱《[AWS IAM 使用者指南》中的使用 IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)。 **

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableAccountAccessAnalyzer) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AnalyzerName

  類型：字串

  描述：（必要） 要建立的分析器名稱。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `access-analyzer:CreateAnalyzer` 
+  `access-analyzer:GetAnalyzer` 

 **文件步驟** 
+  `aws:executeAwsApi` - 為您的帳戶建立存取分析器。
+  `aws:waitForAwsResourceProperty` - 等待存取分析器的狀態為 `ACTIVE` 。
+  `aws:assertAwsResourceProperty` - 確認存取分析器的狀態為 `ACTIVE` 。

# `AWSSupport-GrantPermissionsToIAMUser`
<a name="automation-awssupport-grantpermissionstoiamuser"></a>

 **Description** 

 此 Runbook 會將指定的許可授予 IAM 群組 （新的或現有的），並將現有的 IAM 使用者新增至該群組。您可以選擇的政策：[Billing](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/job-function/Billing$serviceLevelSummary) 或 [Support](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AWSSupportAccess$serviceLevelSummary)。若要為 IAM 啟用帳單存取，請記得也要啟用 [IAM 使用者和聯合身分使用者對帳單與成本管理頁面的存取](https://docs.aws.amazon.com/console/iam/billing-enable)。

**重要**  
如果您提供現有的 IAM 群組，群組中所有目前的 IAM 使用者都會收到新的許可。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-GrantPermissionsToIAMUser) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ IAMGroupName

  類型：字串

  預設：ExampleSupportAndBillingGroup

   描述：(必要) 可以是新的或現有的群組。必須遵守 [IAM 實體名稱限制](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-names)。
+ IAMUserName

  類型：字串

  預設：ExampleUser

  描述：(必要) 必須是現有的使用者。
+ LambdaAssumeRole

  類型：字串

  描述：(選用) 由 lambda 擔任之角色的 ARN。
+ 許可

  類型：字串

  有效值：SupportFullAccess \$1 BillingFullAccess \$1 SupportAndBillingFullAccess

  預設：SupportAndBillingFullAccess

   描述：（必要） 選擇其中一項： `SupportFullAccess` 授予支援中心的完整存取權。 `BillingFullAccess` 授予帳單儀表板的完整存取權。 `SupportAndBillingFullAccess` 授予支援中心和帳單儀表板的完整存取權。您可以在文件詳細資訊下的政策找到更多資訊。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

 所需的許可取決於 `AWSSupport-GrantPermissionsToIAMUser` 的執行方式。

 **以目前登入的使用者或角色執行** 

 建議您連接 `AmazonSSMAutomationRole` Amazon 受管政策，以及下列其他許可，以建立要傳遞給 Lambda 的 Lambda 函數和 IAM 角色：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateGroup",
                "iam:AddUserToGroup",
                "iam:ListAttachedGroupPolicies",
                "iam:GetGroup",
                "iam:GetUser"
            ],
            "Resource": [
                "arn:aws:iam::*:user/*",
                "arn:aws:iam::*:group/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachGroupPolicy"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:PolicyArn": [
                        "arn:aws:iam::aws:policy/job-function/Billing",
                        "arn:aws:iam::aws:policy/AWSSupportAccess"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListAccountAliases",
                "iam:GetAccountSummary"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 **使用 AutomationAssumeRole 和 LambdaAssumeRole** 

 使用者必須擁有 Runbook 上的 **ssm：StartAutomationExecution** 許可，以及傳遞為 **AutomationAssumeRole** **PassRole****LambdaAssumeRole**。以下為各 IAM 角色需要的許可：

```
AutomationAssumeRole

                    {
                        "Version": "2012-10-17",		 	 	 
                        "Statement": [
                            {
                                "Action": [
                                    "lambda:InvokeFunction",
                                    "lambda:CreateFunction",
                                    "lambda:DeleteFunction",
                                    "lambda:GetFunction"
                                ],
                                "Resource": "arn:aws:lambda:*:ACCOUNTID:function:AWSSupport-*",
                                "Effect": "Allow"
                            }
                        ]
                    }
```

```
LambdaAssumeRole

                {
                    "Version": "2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Effect" : "Allow",
                            "Action" : [
                                "iam:CreateGroup",
                                "iam:AddUserToGroup",
                                "iam:ListAttachedGroupPolicies",
                                "iam:GetGroup",
                                "iam:GetUser"
                            ],
                            "Resource" : [
                                "arn:aws:iam::*:user/*",
                                "arn:aws:iam::*:group/*"
                            ]
                        },
                        {
                            "Effect" : "Allow",
                            "Action" : [
                                "iam:AttachGroupPolicy"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "ArnEquals": {
                                    "iam:PolicyArn": [
                                        "arn:aws:iam::aws:policy/job-function/Billing",
                                        "arn:aws:iam::aws:policy/AWSSupportAccess"
                                    ]
                                }
                            }
                        },
                        {
                            "Effect" : "Allow",
                            "Action" : [
                                "iam:ListAccountAliases",
                                "iam:GetAccountSummary"
                            ],
                            "Resource" : "*"
                        }
                    ]
                }
```

 **文件步驟** 

1.  `aws:createStack` - 執行 CloudFormation 範本以建立 Lambda 函數。

1.  `aws:invokeLambdaFunction` - 執行 Lambda 以設定 IAM 許可。

1.  `aws:deleteStack` - 刪除 CloudFormation 範本。

 **輸出** 

configureIAM.Payload

# `AWSConfigRemediation-RemoveUserPolicies`
<a name="automation-aws-remove-user-policies"></a>

 **Description** 

 `AWSConfigRemediation-RemoveUserPolicies` Runbook 會刪除 AWS Identity and Access Management (IAM) 內嵌政策，並分離連接到您指定使用者的任何受管政策。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-RemoveUserPolicies) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMUserID

  類型：字串

  描述：（必要） 您要從中移除政策的使用者 ID。
+ PolicyType

  類型：字串

  有效值：全部 \$1 內嵌 \$1 受管

  預設：全部

  描述：（必要） 您要從使用者中移除的 IAM 政策類型。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:DeleteUserPolicy` 
+  `iam:DetachUserPolicy` 
+  `iam:ListAttachedUserPolicies` 
+  `iam:ListUserPolicies` 
+  `iam:ListUsers` 

 **文件步驟** 
+  `aws:executeScript` - 刪除和分離您在 `IAMUserID` 參數中指定的使用者的 IAM 政策。

# `AWSConfigRemediation-ReplaceIAMInlinePolicy`
<a name="automation-aws-replace-iam-policy"></a>

 **Description** 

 `AWSConfigRemediation-ReplaceIAMInlinePolicy` Runbook 會將內嵌 AWS Identity and Access Management (IAM) 政策取代為複寫的受管 IAM 政策。對於連接到使用者、群組或角色的內嵌政策，內嵌政策許可會複製到受管 IAM 政策。受管 IAM 政策會新增至 資源，並移除內嵌政策。 AWS Config 必須在您執行此自動化的 AWS 區域 中啟用 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-ReplaceIAMInlinePolicy) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ InlinePolicyName

  類型：StringList

  描述：（必要） 您要取代的內嵌 IAM 政策。
+ ResourceId

  類型：字串

  描述：（必要） 您要取代其內嵌政策的 IAM 使用者、群組或角色 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:AttachGroupPolicy` 
+  `iam:AttachRolePolicy` 
+  `iam:AttachUserPolicy` 
+  `iam:CreatePolicy` 
+  `iam:CreatePolicyVersion` 
+  `iam:DeleteGroupPolicy` 
+  `iam:DeleteRolePolicy` 
+  `iam:DeleteUserPolicy` 
+  `iam:GetGroupPolicy` 
+  `iam:GetRolePolicy` 
+  `iam:GetUserPolicy` 
+  `iam:ListGroupPolicies` 
+  `iam:ListRolePolicies` 
+  `iam:ListUserPolicies` 

 **文件步驟** 
+  `aws:executeScript` - 將內嵌 IAM 政策取代為您指定的資源上的複 AWS 寫政策。

# `AWSConfigRemediation-RevokeUnusedIAMUserCredentials`
<a name="automation-aws-revoke-iam-user"></a>

 **Description** 

 `AWSConfigRemediation-RevokeUnusedIAMUserCredentials` Runbook 會撤銷 unused AWS Identity and Access Management (IAM) 密碼和作用中存取金鑰。此 Runbook 也會停用過期的存取金鑰，並刪除過期的登入設定檔。 AWS Config 必須在您執行此自動化 AWS 區域 的 中啟用 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-RevokeUnusedIAMUserCredentials) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ IAMResourceId

  類型：字串

  描述：（必要） 您要撤銷未使用登入資料的 IAM 資源 ID。
+ MaxCredentialUsageAge

  類型：字串

  預設：90

  描述：（必要） 必須已使用登入資料的天數。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:ListDiscoveredResources` 
+  `iam:DeleteAccessKey` 
+  `iam:DeleteLoginProfile` 
+  `iam:GetAccessKeyLastUsed` 
+  `iam:GetLoginProfile` 
+  `iam:GetUser` 
+  `iam:ListAccessKeys` 
+  `iam:UpdateAccessKey` 

 **文件步驟** 
+  `aws:executeScript` - 撤銷 `IAMResourceId` 參數中指定使用者的 IAM 登入資料。已停用過期的存取金鑰，並刪除過期的登入設定檔。

**注意**  
請務必設定此修復動作的 `MaxCredentialUsageAge`參數，以符合您用來觸發此動作之 AWS Config 規則的 `maxAccessKeyAge` 參數：[access-keys-rotated](https://docs.aws.amazon.com/config/latest/developerguide/access-keys-rotated.html)。

# `AWSConfigRemediation-SetIAMPasswordPolicy`
<a name="automation-aws-set-iam-policy"></a>

 **Description** 

 `AWSConfigRemediation-SetIAMPasswordPolicy` Runbook 會為您的 設定 AWS Identity and Access Management (IAM) 使用者密碼政策 AWS 帳戶。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-SetIAMPasswordPolicy) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ AllowUsersToChangePassword

  類型：布林值

  預設：false

   描述：（選用） 如果設定為 `true` ，則 中的所有 IAM 使用者 AWS 帳戶 都可以使用 AWS 管理主控台 變更其密碼。
+ HardExpiry

  類型：布林值

  預設：false

   描述：（選用） 如果設定為 `true` ，IAM 使用者在密碼過期後將無法重設密碼。
+ MaxPasswordAge

  類型：整數

  預設：0

  描述：（選用） IAM 使用者密碼有效的天數。
+ MinimumPasswordLength

  類型：整數

  預設：6

  描述：（選用） IAM 使用者密碼的最小字元數。
+ PasswordReusePrevention

  類型：整數

  預設：0

  描述：（選用） 阻止 IAM 使用者重複使用的先前密碼數目。
+ RequireLowercaseCharacters

  類型：布林值

  預設：false

   描述：（選用） 如果設定為 `true` ，IAM 使用者的密碼必須包含 ISO 基本拉丁字母 (a 到 z) 中的小寫字元。
+ RequireNumbers

  類型：布林值

  預設：false

   描述：（選用） 如果設定為 `true` ，IAM 使用者的密碼必須包含數字字元 (0-9)。
+ RequireSymbols

  類型：布林值

  預設：false

   描述：（選用） 如果設定為 `true` ，IAM 使用者的密碼必須包含非英數字元 (！ @ \$1 \$1 % ^ \$1 ( ) \$1 \$1 - = 【 】 \$1 \$1 \$1 ')。
+ RequireUppercaseCharacters

  類型：布林值

  預設：false

   描述：（選用） 如果設定為 `true` ，IAM 使用者的密碼必須包含 ISO 基本拉丁字母 (A 到 Z) 中的大寫字元。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:GetAccountPasswordPolicy` 
+  `iam:UpdateAccountPasswordPolicy` 

 **文件步驟** 
+  `aws:executeScript` - 根據您為 Runbook 參數指定的值設定 IAM 使用者密碼政策 AWS 帳戶。

# `AWSSupport-ContainIAMPrincipal`
<a name="awssupport-contain-iam-principal"></a>

 **Description** 

如果發生安全事件或疑似入侵 AWS Identity and Access Management (IAM) 使用者/角色或 AWS 身分中心 (IDC) 使用者，快速隔離受影響的身分至關重要，同時保留其組態以進行調查。`AWSSupport-ContainIAMPrincipal` Runbook 提供結構化、可復原的方法，以包含遭入侵的 IAM 或 IDC 身分，有效地封鎖其對 AWS 資源的存取，並防止入侵的潛在傳播。

此自動化程序可在不永久變更身分組態的情況下進行調查，並在認為適當時還原正常存取。遏制程序會維護 IAM 內的使用者或角色，或 IDC 內的使用者，同時有效地將其與所有網路活動隔離。此隔離可防止包含的身分資源與 Amazon Virtual Private Cloud 內的資源通訊，或存取網際網路資源。遏制的設計是可逆的，允許在認為適當時還原正常存取。

 **如何運作？** 

`AWSSupport-ContainIAMPrincipal` Runbook 會為 IAM 使用者、角色和 Identity Center 使用者實作完整的遏制程序。在`Contain`模式下執行時，它會先驗證所有輸入參數，並對指定的 Amazon S3 儲存貯體執行安全檢查。然後，它會收集目標 IAM 主體的詳細資訊，並根據主體類型套用適當的遏制措施。對於 IAM 使用者，它會停用存取金鑰、移除主控台存取，以及連接拒絕政策。對於 IAM 角色，它會附加拒絕政策，以撤銷在遏制之前建立之工作階段的許可。對於 Identity Center 使用者，它會移除許可集、群組成員資格，並套用拒絕政策。在整個過程中， Runbook 會將原始組態備份到 Amazon S3 儲存貯體，以便進行可能的還原。在 `Restore` 模式下執行時，它會嘗試使用備份組態將主體還原至其遏制前狀態。Runbook 包含預覽變更而不套用變更`DryRun`的選項，並提供成功操作和失敗案例的完整報告。

**重要**  
**使用提升權限：**此 SSM 文件會執行需要提升權限的各種操作，例如修改 IAM 和 IDC 身分政策，以及套用隔離組態。這些動作可能會導致權限提升，或影響依賴目標身分的其他工作負載。您應該檢閱授予 `AutomationAssumeRole` 參數所指定角色的許可，並確保這些許可適用於預期的使用案例。如需 IAM 許可的詳細資訊，請參閱下列 AWS 文件：  
[Identity and Access Management (IAM) 許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_permissions.html)
[AWS Systems Manager Automation 許可](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-permissions.html)
**工作負載無法使用風險：**此 Systems Manager 文件會執行隔離動作，這可能會導致工作負載無法使用或中斷。在安全事件期間執行時，它會從指定的 IAM 和 IDC 身分撤銷 AWS API 許可，防止他們進行任何 AWS API 呼叫或動作，以限制對受影響資源的存取。這可能會影響依賴這些身分的任何應用程式或服務。
**建立其他資源：**自動化文件可能會根據執行參數，有條件地建立其他資源，例如存放在其中的 Amazon Simple Storage Service (Amazon S3) 儲存貯體和 Amazon S3 物件。這些資源會根據您的 AWS 用量產生額外費用。
**還原風險：**如果*動作*參數設定為 `Restore`，此 SSM 文件會嘗試將 IAM 或 IDC 身分組態還原為其原始狀態。不過，還原程序可能會失敗，使 IAM 或 IDC 身分處於不一致狀態。本文件提供在發生此類失敗時手動還原的說明，但您應該準備好在還原過程中處理潛在問題。
建議您徹底檢閱 Runbook、了解其潛在影響，並在非生產環境中進行測試，然後再在您的生產環境中執行。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ContainIAMPrincipal) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

 **必要的 IAM 許可** 

`AutomationAssumeRole` 參數需要下列許可，才能成功使用 Runbook：
+ s3:GetBucketLocation
+ s3:GetBucket
+ s3:ListBucket
+ s3：GetBucketPublicAccessBlocks
+ s3：GetAccountPublicAccessBlocks
+ s3:GetBucketPolicyStatus
+ s3:GetBucketAcl
+ s3:GetObject
+ s3:CreateBucket
+ s3:PutObject
+ iam:GetUser
+ iam:GetUserPolicy
+ iam:GetRole
+ iam:ListUserPolicies
+ iam:ListAttachedUserPolicies
+ iam:ListAccessKeys
+ iam：ListMfaDevices
+ iam:ListVirtualMFADevices
+ iam:GetLoginProfile
+ iam:GetPolicy
+ iam:GetRolePolicy
+ iam:ListPolicies
+ iam:ListAttachedRolePolicies
+ iam:ListRolePolicies
+ iam:UpdateAccessKey
+ iam:CreateAccessKey
+ iam:DeleteLoginProfile
+ iam:DeleteAccessKey
+ iam:PutUserPolicy
+ iam:DeleteUserPolicy
+ iam:DeactivateMFADevice
+ iam:AttachRolePolicy
+ iam:AttachUserPolicy
+ iam:DeleteRolePolicy
+ iam：TagMFADevice
+ iam：PutRolePolicy
+ iam：TagPolicy
+ iam：TagRole
+ iam：TagUser
+ iam：UntagUser
+ iam：UntagRole
+ organizations:ListAccounts
+ sso：ListPermissionSetsProvisionedToAccount
+ sso：GetInlinePolicyForPermissionSet
+ sso：ListInstances
+ sso-directory：SearchUsers
+ sso：ListPermissionSets
+ sso：ListAccountAssignments
+ sso-directory：DescribeUser
+ identitystore:ListUsers
+ identitystore:ListGroups
+ identitystore:IsMemberInGroups
+ identitystore:ListGroupMemberships
+ secretsmanager:CreateSecret
+ secretsmanager:DeleteSecret
+ sso：DeleteAccountAssignment
+ sso：PutInlinePolicyToPermissionSet
+ sso：CreateAccountAssignment
+ sso：DeleteInlinePolicyFromPermissionSet
+ sso：TagResource
+ sso：UntagResource
+ identitystore:DeleteGroupMembership
+ identitystore:CreateGroupMembership

 以下是授予 必要許可的 IAM 政策範例`AutomationAssumeRole`：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketAcl",
                "s3:GetObject",
                "s3:CreateBucket",
                "s3:PutObject"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IAMPermissions",
            "Effect": "Allow",
            "Action": [
                "iam:GetUser",
                "iam:GetUserPolicy",
                "iam:GetRole",
                "iam:ListUserPolicies",
                "iam:ListAttachedUserPolicies",
                "iam:ListAccessKeys",
                "iam:ListMfaDevices",
                "iam:ListVirtualMFADevices",
                "iam:GetLoginProfile",
                "iam:GetPolicy",
                "iam:GetRolePolicy",
                "iam:ListPolicies",
                "iam:ListAttachedRolePolicies",
                "iam:ListRolePolicies",
                "iam:UpdateAccessKey",
                "iam:CreateAccessKey",
                "iam:DeleteLoginProfile",
                "iam:DeleteAccessKey",
                "iam:PutUserPolicy",
                "iam:DeleteUserPolicy",
                "iam:DeactivateMFADevice",
                "iam:AttachRolePolicy",
                "iam:AttachUserPolicy",
                "iam:DeleteRolePolicy",
                "iam:TagMFADevice",
                "iam:PutRolePolicy",
                "iam:TagPolicy",
                "iam:TagRole",
                "iam:TagUser",
                "iam:UntagUser",
                "iam:UntagRole"
            ],
            "Resource": "*"
        },
        {
            "Sid": "OrganizationsPermissions",
            "Effect": "Allow",
            "Action": [
                "organizations:ListAccounts"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SSOPermissions",
            "Effect": "Allow",
            "Action": [
                "sso:ListPermissionSetsProvisionedToAccount",
                "sso:GetInlinePolicyForPermissionSet",
                "sso:ListInstances",
                "sso-directory:SearchUsers",
                "sso:ListPermissionSets",
                "sso:ListAccountAssignments",
                "sso-directory:DescribeUser",
                "sso:DeleteAccountAssignment",
                "sso:PutInlinePolicyToPermissionSet",
                "sso:CreateAccountAssignment",
                "sso:DeleteInlinePolicyFromPermissionSet",
                "sso:TagResource",
                "sso:UntagResource"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IdentityStorePermissions",
            "Effect": "Allow",
            "Action": [
                "identitystore:ListUsers",
                "identitystore:ListGroups",
                "identitystore:IsMemberInGroups",
                "identitystore:ListGroupMemberships",
                "identitystore:DeleteGroupMembership",
                "identitystore:CreateGroupMembership"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SecretsManagerPermissions",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:CreateSecret",
                "secretsmanager:DeleteSecret"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在 AWS Systems Manager 主控台中導覽至 [AWSSupport-ContainIAMPrincipal](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainIAMPrincipal/description)。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） Identity AWS and Access Management (IAM) 角色的 Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **PrincipalType （必要）：**
     + 描述：（必要） AWS IAM 主體類型：IAM 使用者、IAM 角色或 Identity Center 使用者。
     + 類型：字串
     + 允許的值： `IAM user|IAM role|Identity Center user`
   + **PrincipalName （必要）：**
     + 描述：（必要） IAM 主體的名稱。對於 Identity Center 使用者，請提供使用者名稱。
     + 類型：字串
     + 允許模式： `^[a-zA-Z0-9\\.\\-_\\\\!*'()/+=,@]{1,1024}$`
   + **動作 （必要）：**
     + 描述：（必要） 選取 `Contain` 以隔離目標 IAM 主體`Restore`，或嘗試從先前的備份將 IAM 主體還原為其原始組態。
     + 類型：字串
     + 允許的值： `Contain|Restore`
   + **DryRun （選用）：**
     + 描述：（選用） 當設定為 時`true`，自動化不會對目標 IAM 主體進行任何變更，而是輸出其嘗試變更的內容，詳細說明每個步驟。預設值：`true`。
     + 類型：布林值
     + 允許的值： `true|false`
   + **ActivateDisabledKeys （條件式）：**
     + 描述：（條件式） 如果輸入參數動作設為 `Restore`且 PrincipalType 設為 IAM 使用者，此選項會判斷此自動化是否應嘗試在停用時啟用相關聯的存取金鑰。請注意，無法驗證洩露存取金鑰的完整性。 AWS 強烈建議不要重新啟用洩露的金鑰。反之，建議您產生新的金鑰。預設值：`false`。
     + 類型：布林值
     + 允許的值： `true|false`
   + **BackupS3BucketName （條件式）：**
     + 描述：（條件式） 動作設定為 時要備份 IAM 主體組態的 Amazon S3 儲存貯體，`Contain`或動作為 時要從中還原組態`Restore`。請注意，如果指定的動作為 ，`Contain`且 Runbook 無法存取 儲存貯體，或未提供 值，則會在您的帳戶中建立名為 的新儲存貯體`awssupport-containiamprincipal-<random-string>`。如果 DryRun 設定為`true`此參數為必要。
     + 類型：`AWS::S3::Bucket::Name`
   + **BackupS3KeyName （條件式）：**
     + 描述：（條件式） 如果動作設定為 `Restore`，這會指定自動化用來嘗試還原 IAM 主體組態的 Amazon S3 金鑰。Amazon Amazon S3 金鑰通常遵循此格式：`{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json`。金鑰可從先前的遏制自動化執行的輸出取得。
     + 類型：字串
     + 允許模式： `^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$`
   + **BackupS3BucketAccess （條件式）：**
     + 描述：（條件式） 在執行遏制動作後，允許存取備份 Amazon S3 儲存貯體的 IAM 使用者或角色 ARN。動作為 時，需要此參數`Contain`。AutomationAssumeRole，或在沒有 AutomationAssumeRole 的情況下，正在執行其內容的使用者會自動新增至清單中。
     + 類型：StringList
     + 允許模式： `^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$`
   + **TagIdentifier （選用）：**
     + 描述：（選用） 使用下列格式，使用您選擇的標籤來標記 IAM 主體：`Key=<EXAMPLE_KEY>,Value=<EXAMPLE_VALUE>`。此選項可讓您追蹤此 Runbook 鎖定的 IAM 主體。**注意：**標籤鍵和值區分大小寫。
     + 類型：字串
     + 允許模式： `^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$`

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **ValidateRequiredInputs**

     根據`Action`指定的 驗證所需的自動化輸入參數。
   + **CheckBackupS3BucketName**

     檢查目標 Amazon S3 儲存貯體是否可能授予`read`或`write`公開存取其物件。在遏制工作流程中，如果儲存貯體不存在，則會建立新的 Amazon S3 `BackupS3BucketName`儲存貯體。
   + **BranchOnAction**

     根據指定 的值來配置自動化`Action`。
   + **BranchOnPrincipalTypeAndDryRun**

     根據 IAM 主體的類型 (IAM 使用者、IAM 角色或 Identity Center 使用者），以及它是否在 `DryRun` 模式下執行，來配置自動化。
   + **BranchOnPrincipalTypeForContain**

     為輸入中指定的`Contain`動作型和 IAM 委託人類型 (IAM 使用者、IAM 角色或 Identity Center 使用者） 分支自動化。
   + **GetIAMUser**

     取得目標 IAM 使用者的建立時間和使用者名稱。
   + **GetIAMUserDetails**

     取得和儲存目標 IAM 使用者的組態，包括內嵌政策、受管政策、存取金鑰、MFA 裝置和登入設定檔。
   + **UpdateS3KeyForUser**

     從步驟 的輸出更新自動化 'S3Key' 變數`GetIAMUserDetails`。
   + **GetIAMRole**

     取得目標 IAM 角色的建立時間、角色名稱和路徑。
   + **GetIAMRoleDetails**

     取得和存放目標 IAM 角色的組態，包括內嵌政策和連接到角色的受管政策。
   + **UpdateS3KeyForRole**

     從步驟 的輸出更新自動化 'S3Key' 變數`GetIAMRoleDetails`。
   + **GetIdentityStoreId**

     取得與 AWS 帳戶相關聯的 AWS IAM Identity Center 執行個體 ID。
   + **GetIDCUser**

     使用 Identity Store ID 取得目標 Identity Center 使用者的使用者 ID。
   + **GatherIDCUserDetails**

     取得和儲存目標 Identity Center 使用者的組態，包括帳戶指派、相關聯的許可集和內嵌政策。
   + **UpdateS3KeyForIDCUser**

     從步驟 的輸出更新自動化 'S3Key' 變數`GatherIDCUserDetails`。
   + **BranchOnIdentityContain**

     根據 的值`DryRun`和 `Contain`動作的 IAM 主體類型來配置自動化。
   + **BranchOnDisableAccessKeys**

     根據 IAM 使用者是否具有需要停用的存取金鑰，來配置自動化。
   + **DisableAccessKeys**

     停用作用中的 IAM 使用者存取金鑰。
   + **BranchOnDisableConsoleAccess**

     根據 IAM 使用者是否已啟用 AWS 管理主控台存取的分支。
   + **DisableConsoleAccess**

     移除 IAM 使用者對 AWS 管理主控台的密碼型存取。
   + **AttachInlineDenyPolicyToUser**

     將拒絕政策連接至 IAM 使用者，以撤銷舊工作階段字符的許可。
   + **AttachInlineDenyPolicyToRole**

     將拒絕政策連接至 IAM 角色，以撤銷舊工作階段字符的許可。
   + **RemovePermissionSets**

     移除與 Identity Center 使用者相關聯的許可集。
   + **RemoveIDCUserFromIDCGroups**

     從 Identity Center 群組中移除 Identity Center 使用者。
   + **AttachInlineDenyPolicyToPermissionSet**

     將拒絕政策連接至與 Identity Center 使用者相關聯的許可集。
   + **BranchOnReactivateKeys**

     在還原程序期間，根據 `ActivateDisabledKeys` 參數分支自動化。
   + **DetachInlineDenyPolicy**

     在遏制過程中移除連接到 IAM 角色的拒絕政策。
   + **DetachInlineDenyPolicyFromPermissionSet**

     在遏制程序期間移除附加至許可集的拒絕政策。
   + **ReportContain**

     輸出有關 `DryRun` 設定為 時將執行的遏制動作的詳細資訊`True`。
   + **ReportRestore**

     輸出在 `DryRun` 設定為 時將執行之還原動作的詳細資訊`True`。
   + **ReportContainFailure**

     提供在遏制工作流程失敗案例期間手動還原 IAM 主體原始組態的完整指示。
   + **ReportRestoreFailure**

     提供詳細說明，以在還原工作流程失敗案例期間手動完成 IAM 主體原始組態的還原。

1. 執行完成後，請檢閱輸出區段以取得執行的詳細結果：
   + **ContainIAMPrincipal.Output**

     提供有關動作設定為「包含」且 DryRun 設定為 False 時所執行之遏制動作的詳細資訊。包括備份位置、套用的拒絕政策和修改組態的相關資訊。
   + **RestoreIAMPrincipal.Output**

     提供當動作設定為 Restore 且 DryRun 設定為 False 時所執行還原動作的詳細資訊。包括還原組態的相關資訊，以及在還原期間遇到的任何問題。
   + **ReportContain.Output**

     輸出有關當動作設定為「包含」且 DryRun 設定為 True 時將執行之遏制動作的詳細資訊。包括目前和遏制後組態的比較。
   + **ReportRestore.Output**

     輸出當動作設定為 Restore 且 DryRun 設定為 True 時，將執行之還原動作的詳細資訊。顯示目前的組態和要還原的原始組態。
   + **ReportContainFailure.Output**

     提供在遏制工作流程失敗案例期間手動還原 IAM 主體原始組態的完整指示。
   + **ReportRestoreFailure.Output**

     提供詳細說明，以在還原工作流程失敗案例期間手動完成 IAM 主體原始組態的還原。

 **輸出** 

執行完成後，請檢閱輸出區段以取得詳細結果：
+ **ContainIAMPrincipal.Output**

  提供有關動作設定為「包含」且 DryRun 設定為 False 時所執行之遏制動作的詳細資訊。包括備份位置、套用的拒絕政策和修改組態的相關資訊。
+ **RestoreIAMPrincipal.Output**

  提供當動作設定為 Restore 且 DryRun 設定為 False 時所執行還原動作的詳細資訊。包括還原組態的相關資訊，以及在還原期間遇到的任何問題。
+ **ReportContain.Output**

  輸出有關當動作設定為「包含」且 DryRun 設定為 True 時將執行之遏制動作的詳細資訊。包括目前和遏制後組態的比較。
+ **ReportRestore.Output**

  輸出當動作設定為 Restore 且 DryRun 設定為 True 時，將執行之還原動作的詳細資訊。顯示目前的組態和要還原的原始組態。
+ **ReportContainFailure.Output**

  提供在遏制工作流程失敗情況下手動還原 IAM 主體原始組態的完整指示。
+ **ReportRestoreFailure.Output**

  提供詳細說明，以在還原工作流程失敗案例期間手動完成 IAM 主體原始組態的還原。

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ContainIAMPrincipal)
+ [執行簡易自動化](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-TroubleshootSAMLIssues`
<a name="awssupport-troubleshootsamlissues"></a>

 **Description** 

 **AWSSupport-TroubleshootSAMLIssues ** 自動化 Runbook 透過分析存放在 Amazon Simple Storage Service (Amazon S3) 中的 SAML 回應檔案，協助診斷安全性聲明標記語言 (SAML) 相關問題。它執行全面的驗證，包括結構描述驗證、簽章驗證、受眾限制檢查和過期時間驗證。Runbook 會從 SAML 回應解碼和擷取主要 SAML 元素，包括發行者、聲明、主旨、條件、簽章和屬性。對於使用 SAML 透過 IAM Identity Provider 存取 AWS 資源 （例如 Amazon Connect 或 Amazon WorkSpaces 應用程式） 的環境，它會驗證 SAML 回應簽章中的憑證是否符合 IAM Identity Provider 中設定的憑證。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 驗證 SAML 回應格式和必要的元素。
+ 解碼和擷取 SAML 回應元件 （發行者、聲明、主旨、條件、簽章、屬性）。
+ 提供時，根據 IAM Identity Provider 憑證驗證數位簽章。
+ 檢查受眾限制和時間有效性。
+ 提供詳細的診斷資訊，顯示剖析的 SAML 結構和驗證結果。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootSAMLIssues) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `s3:GetBucketLocation`
+ `s3:ListBucket`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:GetAccountPublicAccessBlock`
+ `s3:GetObject`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetEncryptionConfiguration`
+ `s3:GetBucketOwnershipControls`
+ `s3:GetBucketAcl`
+ `s3:GetBucketPolicy`
+ `s3:PutObject`
+ `iam:GetSAMLProvider`
+ `sts:AssumeRole`

範例政策：

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

****  

```
        {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
                {
                    "Action": [
                        "s3:GetBucketLocation",
                        "s3:ListBucket",
                        "s3:GetBucketPublicAccessBlock",
                        "s3:GetAccountPublicAccessBlock",
                        "s3:GetObject",
                        "s3:GetBucketPolicyStatus",
                        "s3:GetEncryptionConfiguration",
                        "s3:GetBucketOwnershipControls",
                        "s3:GetBucketAcl",
                        "s3:GetBucketPolicy",
                        "s3:PutObject",
                        "iam:GetSAMLProvider",
                        "sts:AssumeRole"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 使用此 Runbook 之前，您需要擷取 Base64-encoded的 SAML 回應 (txt 檔案），並將其存放在 S3 儲存貯體中。您可以在[本文件](https://docs.aws.amazon.com//IAM/latest/UserGuide/troubleshoot_saml_view-saml-response.html)中找到擷取 SAML 回應的說明

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootSAMLIssues/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootSAMLIssues/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 SSM Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **InputFileS3URI （必要）：**
     + 描述：（必要） SAML 回應 txt 檔案的 Amazon Simple Storage Service (Amazon S3) URI （例如 s3：//bucket-name/path/to/file.txt)。
     + 類型：字串
     + 允許模式： `^s3://[a-z0-9][a-z0-9.-][a-z0-9](/.)?$`
   + **S3OutputPrefix （選用）：**
     + 描述：（選用） 分析輸出檔案存放在輸入儲存貯體中，名稱為 Runbook>.json' 的 'saml\$1analysis\$1<executionID。如果您想要輸出具有特定字首的檔案，您可以使用此參數。預設值為 "output/"，在此情況下，輸出結果的檔案 URI 將為 Runbook>.json' 的 's3：//bucket-name/output/saml\$1analysis\$1<executionID。
     + 類型：字串
     + 允許模式： `^[a-zA-Z0-9+=,.@\\-_/]*/$`
   + **ExpectedAudience （選用）：**
     + 描述：（選用） SAML 回應中的預期對象值。如果未指定，我們使用 `urn:amazon:webservices`。如果您已在 IdP 和 SP 設定中設定特定對象值，請提供確切的格式 `urn:amazon:webservices`（例如，、`https://signin.aws.amazon.com/saml`)。
     + 類型：字串
     + 預設：urn：amazon：webservices
   + **IamIdProviderArn （選用）：**
     + 描述：（選用） 如果您使用 IAM ID 提供者實體直接將您的 IdP 與 IAM AWS 連結，請提供其 ARN （例如 `arn:aws:iam::<account-id>:saml-provider/<provider-name>`)。
     + 類型：字串
     + 允許模式： `^$|^arn:aws:iam::[0-9]{12}:saml-provider/[a-zA-Z0-9_-]+$`
   + **SAMLAuthenticationTime （選用）：**
     + 描述：（選用） 執行 SAML 身分驗證的日期和時間。時區必須是 UTC。必須為 YYYY-MM-DDThh：mm：ss 格式 （例如 2025-02-01T10：00：00)。如果未提供此參數，則會針對目前的時間戳記執行過期檢查。
     + 類型：字串
     + 允許模式： `^$|^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$`
   + **S3BucketOwnerRoleArn （選用）：**
     + 描述：（選用） 存取 Amazon S3 儲存貯體的 IAM 角色 ARN。IAM 角色的 ARN，具有取得 Amazon S3 儲存貯體和帳戶區塊公開存取設定、儲存貯體加密組態、儲存貯體 ACLs、儲存貯體政策狀態，以及將物件上傳至儲存貯體的許可。如果未指定此參數，則 Runbook 會使用 `AutomationAssumeRole` （如果指定） 或啟動此 Runbook 的使用者 （如果未指定 `AutomationAssumeRole`)。
     + 類型：`AWS::IAM::Role::Arn`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **ValidateIAMIDProvider**

     透過檢查提供的 IAM ID 提供者 ARN 是否存在並可存取，來驗證它。如果未提供 ARN，則會略過驗證並成功完成步驟。
   + **CheckS3BucketPublicStatus**

     檢查 Amazon S3 儲存貯體是否允許匿名或公有讀取或寫入存取許可。如果儲存貯體允許這些許可，自動化會在此步驟中停止。
   + **CheckS3ObjectExistence**

     驗證對 Amazon S3 儲存貯體的存取。檢查儲存貯體和物件是否存在，以及自動化是否具有從來源讀取和寫入目的地的必要許可。
   + **AnalyzeSAMLResponse**

     透過執行檢查 （結構描述驗證、簽章驗證、對象驗證、過期檢查） 來分析 SAML 回應檔案。產生詳細的 JSON 報告，並將其儲存至指定的 Amazon S3 位置。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果：
   + **輸出**區段包含描述分析結果之 Amazon S3 物件的相關資訊。

1. 分析結果中的 Amazon S3 物件是包含下列資訊的 Json 檔案：
   + **validation\$1result**：包含 SAML 回應的基本驗證結果。
     + **saml\$1info**：重要 SAML 資訊，包括發行者、簽章和聲明。
     + **schema\$1validation**：SAML 結構描述驗證的結果。
   + **verification\$1result**： 提供更詳細的診斷結果。
     + **簽章**：簽章驗證的結果。
     + **對象**：對象限制驗證的結果。
     + **過期**：過期時間驗證的結果。

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootSAMLIssues)
+ [執行自動化](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/)

# 事件偵測與回應
<a name="automation-ref-idr"></a>

 AWS Systems Manager 自動化為 AWS 事件偵測和回應提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSPremiumSupport-OnboardWorkloadToIDR`](automation-awspremisumsupport-onboardworkloadtoidr.md)

# `AWSPremiumSupport-OnboardWorkloadToIDR`
<a name="automation-awspremisumsupport-onboardworkloadtoidr"></a>

 **Description** 

**AWSPremiumSupport-OnboardWorkloadToIDR** Runbook 可協助 AWS Enterprise Support 客戶使用 AWS 事件偵測和回應來建立監控和關鍵事件管理的工作負載。工作負載可以定義為與 AWS 資源群組或服務 AWS 目錄 AppRegistry 應用程式相關聯的 AWS 資源集合。如果未指定 AWS 資源群組或 AWS Service Catalog AppRegistry 應用程式，則 Runbook 會使用標籤篩選條件或 AWS CloudFormation 堆疊 ID 來代表您建立資源群組，而您要將資源包含在群組中。如果您將 參數設定為 `CreateApplicationInsights` `Yes`，則自動化會使用 佈建 Amazon CloudWatch Application Insights 應用程式 AWS CloudFormation。CloudWatch Application Insights 使用 Amazon CloudWatch 指標、日誌和事件來設定所選應用程式資源的建議指標和日誌，以通知偵測到的問題。

**重要**  
此 Runbook 會根據提供的輸入參數，在您的帳戶中執行下列動作：  
 AWS CloudFormation 如果`AppRegistryApplication`未指定 `ResourceGroupName`或 ，請使用 建立新的 AWS 資源群組。建立堆疊之後，執行手冊會嘗試設定終止保護。
標記與工作負載相關聯的 AWS 資源群組，包括 `aws_idr`標籤。
如果`CreateApplicationInsights`輸入參數設定為 ，則建立 Amazon CloudWatch Application Insights 資源群組型應用程式`Yes`。建立堆疊之後，執行手冊會嘗試設定堆疊的終止保護。
如果`InstallServiceLinkedRole`輸入參數設定為 ，則安裝`AWSServiceRoleForHealth_EventProcessor`服務連結角色 (SLR) 來佈建警示擷取至事件偵測和回應的存取權`Yes`。
使用 AWS 事件偵測和回應建立 AWS 支援案例。

**重要**  
若要使用此 Runbook 並加入 AWS 事件偵測和回應，您需要 AWS 企業支援 （需額外付費） 或 Unified Operations 訂閱。如需詳細資訊，請參閱[比較 支援 計劃](https://aws.amazon.com/premiumsupport/plans/)。

 **如何運作？** 

Runbook 會執行下列高階步驟：
+ 檢查目前的 AWS 帳戶支援計劃是否為企業，否則自動化會結束。
+ 決定要使用現有的 AWS 資源群組，還是根據提供的參數建立新的資源群組。
+ 如果建立新的資源群組， 會產生 AWS CloudFormation 範本，並使用適當的標籤建立堆疊。
+ 使用所需的 AWS 事件偵測和回應標籤來標記資源群組。
+ 選擇性地安裝 AWS 事件偵測和回應的服務連結角色。
+ 選擇性地建立 Amazon CloudWatch Application Insights 應用程式以進行增強型監控。
+ 建立 AWS 支援案例以完成加入程序。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-OnboardWorkloadToIDR) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudformation:CreateStack`
+ `cloudformation:DescribeStackResource`
+ `cloudformation:DescribeStacks`
+ `cloudformation:UpdateTerminationProtection`
+ `iam:CreateServiceLinkedRole`
+ `resource-groups:CreateGroup`
+ `resource-groups:GetGroup`
+ `resource-groups:TagResource`
+ `servicecatalog-appregistry:GetApplication`
+ `support:CreateCase`
+ `support:DescribeSeverityLevels`
+ `support:DescribeServices`
+ `support:DescribeSupportLevel`

範例政策：

```
{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:DescribeStackResource",
                "cloudformation:DescribeStacks",
                "cloudformation:UpdateTerminationProtection",
                "iam:CreateServiceLinkedRole",
                "resource-groups:CreateGroup",
                "resource-groups:GetGroup",
                "resource-groups:TagResource",
                "servicecatalog-appregistry:GetApplication",
                "support:CreateCase",
                "support:DescribeSeverityLevels",
                "support:DescribeServices",
                "support:DescribeSupportLevel"
            ],
            "Resource": "*"
            }
        ]
        }
```

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-OnboardWorkloadToIDR/description](https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-OnboardWorkloadToIDR/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） Identity AWS and Access Management (IAM) 角色的 Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **WorkloadName （必要）：**
     + 描述：（必要） 工作負載的名稱。如果`ResourceGroupName`未提供 ，工作負載名稱會用來設定名稱為 的新 AWS 資源群組`IDR-AWS-<WorkloadName>`。
     + 類型：`String`
     + 允許模式： `^[a-zA-Z0-9_-]{1,128}$`
   + **WorkloadDescription （必要）：**
     + 描述：（必要） 工作負載描述。輸入簡短描述，以詳細說明此工作負載的使用案例。請包含主要最終使用者和此工作負載的 函數。
     + 類型：`String`
     + 允許模式： `^[a-zA-Z0-9.:;,-_&() ]{1,1024}$`
   + **AppRegistryApplication （選用）：**
     + 描述：（選用） AWS Service Catalog AppRegistry 應用程式的名稱或 ID。如果未提供，您必須提供 的輸入`ResourceGroupName`。
     + 類型：`String`
     + 允許模式： `^$|^[a-zA-Z0-9.-_]{1,128}$`
     + 預設：`""`
   + **ResourceGroupName （選用）：**
     + 描述：（選用） `AppRegistryApplication`未提供 時現有 AWS 資源群組的名稱。如果您想要建立資源群組，您必須提供 的輸入`TagFilters`，並選擇性地`ResourceTypeFilters`建立新的 AWS 資源群組。
     + 類型：`String`
     + 允許模式： `^$|^[a-zA-Z0-9_.-]{1,128}$`
     + 預設：`""`
   + **TagFilters （條件式）：**
     + 描述：（條件式） 金鑰/值 （字串/字串清單） 對的清單，與連接至 AWS 資源的標籤進行比較。如果您未指定現有的 `ResourceGroupName`或 ，此參數會用來建立新的 AWS 資源群組`AppRegistryApplication`。
     + 類型：`StringMap`
   + **ResourceTypeFilters （條件式）：**
     + 描述：（條件式） 資源群組支援的資源類型清單。
     + 類型：`StringList`
     + 項目上限： `10`
     + 預設：`AWS::AllSupported`
   + **InstallServiceLinkedRole （選用）：**
     + 描述：（選用） 選取 `Yes`以安裝`AWSServiceRoleForHealth_EventProcessor`服務連結角色 (SLR)。
     + 類型：`String`
     + 允許的值： `[Yes,No]`
     + 預設：`No`
   + **CreateApplicationInsights （選用）：**
     + 描述：（選用） 選取 `Yes` 以建立以 Amazon CloudWatch Application Insights 資源群組為基礎的應用程式。
     + 類型：`String`
     + 允許的值： `[Yes,No]`
     + 預設：`No`
   + **ComplianceAndRegulatoryRequirements （必要）：**
     + 描述：（必要） 此工作負載適用的合規和/或法規要求，以及事件發生 AWS 後 所需的任何動作。
     + 類型：`String`
     + 允許模式： `^[a-zA-Z0-9.:;,\\-_&() ]{1,1024}$`
   + **NonAWSComponents （選用）：**
     + 描述：（選用） 詳細說明此工作負載的任何內部部署或非AWS 元件？ 如果是這樣，它們是什麼，以及它們執行哪些函數。
     + 類型：`String`
     + 允許模式： `^$|^[a-zA-Z0-9.:;,\\-_&() ]{1,1024}$`
     + 預設：`""`
   + **UpstreamDownstreamDependencies （選用）：**
     + 描述：（選用） 未加入的任何上游/下游元件的詳細資訊，如果發生中斷，可能會影響此工作負載。
     + 類型：`String`
     + 允許模式： `^$|^[a-zA-Z0-9.:;,\\-_&() ]{1,1024}$`
     + 預設：`""`
   + **FailoverDisasterRecoveryPlan （選用）：**
     + 描述：（選用） 提供 AZ 和區域層級任何手動或自動容錯移轉/災難復原計劃的詳細資訊。
     + 類型：`String`
     + 允許模式： `^$|^[a-zA-Z0-9.:;,\\-_&() ]{1,1024}$`
     + 預設：`""`
   + **BridgeDetails （選用）：**
     + 描述：（選用） 您公司建立的靜態事件/危機管理橋接器。如果您使用非靜態橋接器，請指定您偏好的應用程式 AWS ，並在事件期間請求這些詳細資訊。
     + 類型：`String`
     + 允許的值： `[Amazon Chime bridge, Non-Static bridge, Static bridge]`
     + 預設：`Amazon Chime bridge`
   + **SubscriptionStartDate （必要）：**
     + 描述：（必要） 您要開始 AWS 事件偵測和回應訂閱的`YYYY-MM-DD`格式日期。
     + 類型：`String`
     + 允許模式： `^(202[4-9]|20[3-9][0-9])-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **CheckAWSSupportPlan**：

     檢查目前的 AWS 帳戶支援計劃是否為企業，否則自動化會結束。
   + **BranchOnResourceGroup**：

     分支自動化，了解是否已提供現有的 AWS 資源群組。如果未提供，自動化會建立新的 AWS 資源群組。
   + **GetAppRegistryApplication**：

     如果提供，則取得 AWS Service Catalog AppRegistry 應用程式的中繼資料資訊。
   + **GenerateResourceGroupTemplate**：

     使用指定的標籤篩選條件產生 AWS 資源群組的 AWS CloudFormation 範本。
   + **CreateResourceGroup**：

     使用 建立新的 AWS 資源群組 AWS CloudFormation。
   + **TagResourceGroup**：

     使用 AWS 事件偵測和回應 (IDR) 所需的標籤來標記資源群組。
   + **InstallServiceLinkedRole**：

     如果請求，安裝 AWS 事件偵測和回應 (IDR) 服務連結角色。
   + **CreateApplicationInsightsApplication**：

     如果請求，建立 Amazon CloudWatch Application Insights 應用程式。
   + **CreateAwsSupportCase**：

     使用 AWS 事件偵測和回應建立 AWS 支援案例。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSPremiumSupport-OnboardWorkloadToIDR/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 事件偵測和回應入門](https://docs.aws.amazon.com//IDR/latest/userguide/getting-started-idr.html)
+ [事件偵測和回應中的工作負載探索](https://docs.aws.amazon.com//IDR/latest/userguide/idr-gs-discovery.html)

# Amazon Kinesis Data Streams
<a name="automation-ref-aks"></a>

 AWS Systems Manager 自動化為 Amazon Kinesis Data Streams 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-EnableKinesisStreamEncryption`](aws-enablekinesisstreamencryption.md)

# `AWS-EnableKinesisStreamEncryption`
<a name="aws-enablekinesisstreamencryption"></a>

 **Description** 

 `AWS-EnableKinesisStreamEncryption` Runbook 會在 Amazon Kinesis Data Streams (Kinesis Data Streams) 上啟用加密。如果寫入加密串流的生產者應用程式無法存取 AWS Key Management Service (AWS KMS) 金鑰，將會發生錯誤。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableKinesisStreamEncryption) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ KinesisStreamName

  類型：字串

  描述：（必要） 您要啟用加密的串流名稱。
+ KeyId

  類型：字串

  預設：alias/aws/kinesis

  描述：（必要） 您要用於加密的客戶受管 AWS KMS 金鑰。此值可以是全域唯一識別符、別名或金鑰的 ARN，或是以 "alias/" 開頭的別名名稱。您也可以使用 參數的預設值來使用 AWS 受管金鑰。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `kinesis:DescribeStream`
+ `kinesis:StartStreamEncryption`
+ `kms:DescribeKey`

 **文件步驟** 
+ VerifyKinesisStreamStatus (`aws:waitforAwsResourceProperty`) - 檢查 Kinesis Data Streams 的狀態。
+ EnableKinesisStreamEncryption (`aws:executeAwsApi`) - 啟用 Kinesis Data Streams 的加密。
+ VerifyKinesisStreamUpdateComplete (`aws:waitForAwsResourceProperty`) - 等待 Kinesis Data Streams 狀態傳回 `ACTIVE`。
+ VerifyKinesisStreamEncryption (`aws:assertAwsResourceProperty`) - 驗證 Kinesis Data Streams 已啟用加密。

# AWS KMS
<a name="automation-ref-kms"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Key Management Service。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-CancelKeyDeletion`](automation-aws-cancel-key-deletion.md)
+ [`AWSConfigRemediation-EnableKeyRotation`](automation-aws-enable-key-rotation.md)

# `AWSConfigRemediation-CancelKeyDeletion`
<a name="automation-aws-cancel-key-deletion"></a>

 **Description** 

 `AWSConfigRemediation-CancelKeyDeletion` Runbook 會取消刪除您指定的 AWS Key Management Service (AWS KMS) 客戶受管金鑰。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-CancelKeyDeletion) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ KeyId

  類型：字串

  描述：（必要） 您要取消刪除的客戶受管金鑰 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `kms:CancelKeyDeletion` 
+  `kms:DescribeKey` 

 **文件步驟** 
+  `aws:executeAwsApi` - 取消刪除您在 `KeyId` 參數中指定的客戶受管金鑰。
+  `aws:assertAwsResourceProperty` - 確認您的客戶受管金鑰已停用金鑰刪除。

# `AWSConfigRemediation-EnableKeyRotation`
<a name="automation-aws-enable-key-rotation"></a>

 **Description** 

 `AWSConfigRemediation-EnableKeyRotation` Runbook 會啟用對稱 AWS Key Management Service (AWS KMS) 客戶受管金鑰的自動金鑰輪換。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableKeyRotation) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ KeyId

  類型：字串

  描述：（必要） 您要啟用自動金鑰輪換的客戶受管金鑰 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `kms:EnableKeyRotation` 
+  `kms:GetKeyRotationStatus` 

 **文件步驟** 
+  `aws:executeAwsApi` - 針對您在 `KeyId` 參數中指定的客戶受管金鑰啟用自動金鑰輪換。
+  `aws:assertAwsResourceProperty` - 確認您的客戶受管金鑰已啟用自動金鑰輪換。

# Lambda
<a name="automation-ref-lam"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Lambda。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-ConfigureLambdaFunctionXRayTracing`](automation-aws-config-lambda-xray.md)
+ [`AWSConfigRemediation-DeleteLambdaFunction`](automation-aws-delete-lambda.md)
+ [`AWSConfigRemediation-EncryptLambdaEnvironmentVariablesWithCMK`](automation-aws-encrypt-lambda-variables.md)
+ [`AWSConfigRemediation-MoveLambdaToVPC`](automation-aws-lambda-to-vpc.md)
+ [`AWSSupport-RemediateLambdaS3Event`](automation-awssupport-remediatelambdas3event.md)
+ [`AWSSupport-TroubleshootLambdaInternetAccess`](AWSSupport-TroubleshootLambdaInternetAccess.md)
+ [`AWSSupport-TroubleshootLambdaS3Event`](automation-aws-troubleshootlambdas3event.md)

# `AWSConfigRemediation-ConfigureLambdaFunctionXRayTracing`
<a name="automation-aws-config-lambda-xray"></a>

 **Description** 

 `AWSConfigRemediation-ConfigureLambdaFunctionXRayTracing` Runbook 會在您在 `FunctionName` 參數中指定的 AWS Lambda 函數上啟用 AWS X-Ray 即時追蹤。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-ConfigureLambdaFunctionXRayTracing) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ FunctionName

  類型：字串

  描述：（必要） 要啟用追蹤的 Lambda 函數名稱或 ARN。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `lambda:UpdateFunctionConfiguration` 
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 

 **文件步驟** 
+  `aws:executeAwsApi` - 在`FunctionName`參數中指定的 Lambda 函數上啟用 X-Ray 追蹤。
+  `aws:assertAwsResourceProperty` - 驗證已在 Lambda 函數上啟用 X-Ray 追蹤。

 **輸出** 

 UpdateLambdaConfig.UpdateFunctionConfigurationResponse - 來自 `UpdateFunctionConfiguration` API 呼叫的回應。

# `AWSConfigRemediation-DeleteLambdaFunction`
<a name="automation-aws-delete-lambda"></a>

 **Description** 

 `AWSConfigRemediation-DeleteLambdaFunction` Runbook 會刪除您指定的 AWS Lambda 函數。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteLambdaFunction) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ LambdaFunctionName

  類型：字串

  描述：（必要） 您要刪除的 Lambda 函數名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `lambda:DeleteFunction` 
+  `lambda:GetFunction` 

 **文件步驟** 
+  `aws:executeAwsApi` - 刪除 `LambdaFunctionName` 參數中指定的 Lambda 函數。
+  `aws:executeScript` - 驗證 Lambda 函數已刪除。

# `AWSConfigRemediation-EncryptLambdaEnvironmentVariablesWithCMK`
<a name="automation-aws-encrypt-lambda-variables"></a>

 **Description** 

 `AWSConfigRemediation-EncryptLambdaEnvironmentVariablesWithCMK` Runbook 會靜態加密您使用 AWS Lambda () 客戶受管金鑰所指定 AWS Key Management Service (Lambda AWS KMS) 函數的環境變數。此 Runbook 應僅用作基準，以確保 Lambda 函數的環境變數根據最低建議的安全最佳實務進行加密。我們建議使用不同的客戶受管金鑰來加密多個函數。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EncryptLambdaEnvironmentVariablesWithCMK) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ FunctionName

  類型：字串

  描述：（必要） 您要加密其環境變數的 Lambda 函數名稱或 ARN。
+ KMSKeyArn

  類型：字串

  描述：（必要） 您要用來加密 Lambda 函數環境變數 AWS KMS 的客戶受管金鑰 ARN。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `lambda:GetFunctionConfiguration ` 
+  `lambda:UpdateFunctionConfiguration` 

 **文件步驟** 
+  `aws:waitForAwsResourceProperty` - 等待 `LastUpdateStatus` 屬性為 `Successful` 。
+  `aws:executeAwsApi` - 使用您在 `FunctionName` 參數中指定的 AWS KMS 客戶受管金鑰，加密您在 `KMSKeyArn` 參數中指定的 Lambda 函數的環境變數。
+  `aws:assertAwsResourceProperty` - 確認您的 Lambda 函數的環境變數已啟用加密。

# `AWSConfigRemediation-MoveLambdaToVPC`
<a name="automation-aws-lambda-to-vpc"></a>

 **Description** 

 `AWSConfigRemediation-MoveLambdaToVPC` Runbook 會將 AWS Lambda (Lambda) 函數移至 Amazon Virtual Private Cloud (Amazon VPC)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-MoveLambdaToVPC) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ FunctionName

  類型：字串

  描述：（必要） 要移至 Amazon VPC 的 Lambda 函數名稱。
+ SecurityGroupIds

  類型：字串

  描述：（必要） 您要指派給與 Lambda 函數相關聯的彈性網路介面 (ENIs) 的安全群組 IDs。
+ SubnetIds

  類型：字串

  描述：（必要） 您要建立與 Lambda 函數相關聯的彈性網路界面 (ENIs) 的子網路 IDs。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `lambda:GetFunction` 
+  `lambda:GetFunctionConfiguration` 
+  `lambda:UpdateFunctionConfiguration` 

 **文件步驟** 
+  `aws:executeAwsApi` - 更新您在 `FunctionName` 參數中指定的 Lambda 函數的 Amazon VPC 組態。
+  `aws:waitForAwsResourceProperty` - 等待 Lambda 函數`LastUpdateStatus`為 `successful` 。
+  `aws:executeScript` - 驗證 Lambda 函數 Amazon VPC 組態已成功更新。

# `AWSSupport-RemediateLambdaS3Event`
<a name="automation-awssupport-remediatelambdas3event"></a>

 **Description** 

 `AWSSupport-TroubleshootLambdaS3Event` Runbook 為 AWS 知識中心文章中概述的程序提供自動化解決方案[。為什麼我的 Amazon S3 事件通知不會觸發我的 Lambda 函數？](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-configure-s3-event-notification/)以及[為什麼我在建立 Amazon S3 事件通知以觸發我的 Lambda 函數時收到錯誤「無法驗證下列目的地組態」？](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-invoke-error-s3-bucket-permission/) 此 Runbook 可協助您識別並修復 Amazon Simple Storage Service (Amazon S3) 事件通知為何無法觸發您指定的 AWS Lambda 函數。如果 Runbook 輸出建議驗證和設定 Lambda 函數並行，請參閱[非同步調用](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html)和[AWS Lambda 函數擴展](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html)。

**注意**  
「無法驗證下列目的地組態」錯誤也可能因為不正確的 Amazon Simple Notification Service (Amazon SNS) 和 Amazon Simple Queue Service (Amazon SQS) Amazon S3 事件組態而發生。此 Runbook 只會檢查 Lambda 函數組態。如果使用 Runbook 之後，您仍然收到「無法驗證下列目的地組態」錯誤，請檢閱任何現有的 Amazon SNS 和 Amazon SQS Amazon S3 事件組態。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-RemediateLambdaS3Event) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ LambdaFunctionArn

  類型：字串

  描述：（必要） Lambda 函數的 ARN。
+ S3BucketName

  類型：字串

  描述：（必要） 事件通知觸發 Lambda 函數的 Amazon S3 儲存貯體名稱。
+ Action

  類型：字串

  有效值：故障診斷 \$1 修復

   描述：（必要） 您希望 Runbook 執行的動作。`Troubleshoot` 選項有助於識別任何問題，但不執行任何變動動作來解決問題。`Remediate` 選項有助於識別和嘗試為您解決問題。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetDocument` 
+  `ssm:ListDocuments` 
+  `ssm:DescribeAutomationExecutions` 
+  `ssm:DescribeAutomationStepExecutions` 
+  `ssm:GetAutomationExecution` 
+  `lambda:GetPolicy` 
+  `lambda:AddPermission` 
+  `s3:GetBucketNotification` 

 **文件步驟** 
+  `aws:branch` - 根據為 `Action` 參數指定的輸入進行分支。

   如果指定的值為 `Troubleshoot` ：
  +  `aws:executeAutomation` - 執行 `AWSSupport-TroubleshootLambdaS3Event` Runbook。
  +  `aws:executeAwsApi` - 檢查在上一個步驟中執行的 `AWSSupport-TroubleshootLambdaS3Event` Runbook 輸出。

   如果指定的值為 `Remediate` ：
  +  `aws:executeScript` - 執行指令碼以修復[為什麼我的 Amazon S3 事件通知不會觸發我的 Lambda 函數中概述的問題？](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-configure-s3-event-notification/)以及[為什麼我在建立 Amazon S3 事件通知以觸發我的 Lambda 函數時收到錯誤「無法驗證下列目的地組態」？](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-invoke-error-s3-bucket-permission/) 知識中心文章。

 **輸出** 

checkoutput.Output

remediatelambdas3event.Output

# `AWSSupport-TroubleshootLambdaInternetAccess`
<a name="AWSSupport-TroubleshootLambdaInternetAccess"></a>

 **Description** 

 `AWSSupport-TroubleshootLambdaInternetAccess` Runbook 可協助您疑難排解在 Amazon Virtual Private Cloud (Amazon VPC) 中啟動之 AWS Lambda 函數的網際網路存取問題。會檢閱子網路路由、安全群組規則和網路存取控制清單 (ACL) 規則等資源，以確認允許傳出網際網路存取。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootLambdaInternetAccess) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ FunctionName

  類型：字串

  描述：（必要） 您要疑難排解網際網路存取的 Lambda 函數名稱。
+ destinationIp

  類型：字串

  描述：（必要） 您要建立傳出連線的目的地 IP 地址。
+ destinationPort

  類型：字串

  預設：443

  描述：（選用） 您要建立傳出連線的目的地連接埠。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `lambda:GetFunction` 
+  `ec2:DescribeRouteTables` 
+  `ec2:DescribeNatGateways` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeNetworkAcls` 

 **文件步驟** 
+  `aws:executeScript` - 驗證啟動 Lambda 函數之 VPC 中各種資源的組態。
+  `aws:branch` - 根據指定的 Lambda 函數是否在 VPC 中進行分支。
+  `aws:executeScript` - 檢閱啟動 Lambda 函數之子網路的路由表路由，並驗證網路位址轉譯 (NAT) 閘道和網際網路閘道的路由是否存在。確認 Lambda 函數不在公有子網路中。
+  `aws:executeScript` - 驗證與 Lambda 函數相關聯的安全群組，允許根據為 `destinationIp`和 `destinationPort` 參數指定的值進行傳出網際網路存取。
+  `aws:executeScript` - 驗證與 Lambda 函數子網路相關聯的 ACL 規則，且 NAT 閘道允許根據 `destinationIp`和 `destinationPort` 參數指定的值進行傳出網際網路存取。

 **輸出** 

checkVpc.vpc - 啟動 Lambda 函數的 VPC ID。

checkVpc.subnet - 啟動 Lambda 函數的子網路 IDs。

checkVpc.securityGroups - 與 Lambda 函數相關聯的安全群組。

 checkNACL.NACL - 具有資源名稱的分析訊息。 `LambdaIp`是指 Lambda 函數彈性網路界面的私有 IP 地址。`LambdaIpRules` 物件只會針對具有 NAT 閘道路由的子網路產生。下列內容是輸出的範例。

```
{
   "subnet-1234567890":{
      "NACL":"acl-1234567890",
      "destinationIp_Egress":"Allowed",
      "destinationIp_Ingress":"notAllowed",
      "Analysis":"This NACL has an allow rule for Egress traffic but there is no Ingress rule. Please allow the destination IP / destionation port in Ingress rule",
      "LambdaIpRules":{
         "{LambdaIp}":{
            "Egress":"notAllowed",
            "Ingress":"notAllowed",
            "Analysis":"This is a NAT subnet NACL. It does not have ingress or egress rule allowed in it for Lambda's corresponding private ip {LambdaIp} Please allow this IP in your egress and ingress NACL rules"
         }
      }
   },
   "subnet-0987654321":{
      "NACL":"acl-0987654321",
      "destinationIp_Egress":"Allowed",
      "destinationIp_Ingress":"notAllowed",
      "Analysis":"This NACL has an allow rule for Egress traffic but there is no Ingress rule. Please allow the destination IP / destionation port in Ingress rule"
   }
}
```

checkSecurityGroups.secgrps - 分析與您的 Lambda 函數相關聯的安全群組。下列內容是輸出的範例。

```
{
   "sg-123456789":{
      "Status":"Allowed",
      "Analysis":"This security group has allowed destintion IP and port in its outbuond rule."
   }
}
```

checkSubnet.subnets - 分析與 Lambda 函數相關聯的 VPC 中的子網路。下列內容是輸出的範例。

```
{
   "subnet-0c4ee6cdexample15":{
      "Route":{
         "DestinationCidrBlock":"8.8.8.0/26",
         "NatGatewayId":"nat-00f0example69fdec",
         "Origin":"CreateRoute",
         "State":"active"
      },
      "Analysis":"This Route Table has an active NAT gateway path. Also, The NAT gateway is launched in public subnet",
      "RouteTable":"rtb-0b1fexample16961b"
   }
}
```

# `AWSSupport-TroubleshootLambdaS3Event`
<a name="automation-aws-troubleshootlambdas3event"></a>

 **Description** 

 `AWSSupport-TroubleshootLambdaS3Event` 執行手冊為 AWS 知識中心文章中概述的程序提供自動化解決方案[。為什麼我的 Amazon S3 事件通知不會觸發我的 Lambda 函數？](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-configure-s3-event-notification/)以及[為什麼我在建立 Amazon S3 事件通知以觸發我的 Lambda 函數時收到錯誤「無法驗證下列目的地組態」？ ](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-invoke-error-s3-bucket-permission/) 此 Runbook 可協助您識別 Amazon Simple Storage Service (Amazon S3) 事件通知為何無法觸發您指定的 AWS Lambda 函數。如果 Runbook 輸出建議驗證和設定 Lambda 函數並行，請參閱[非同步調用](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html)和[AWS Lambda 函數擴展](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootLambdaS3Event) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ LambdaFunctionArn

  類型：字串

  描述：（必要） Amazon S3 事件通知觸發的 Lambda 函數 ARN。
+ S3BucketName

  類型：字串

  描述：（必要） 事件通知觸發 Lambda 函數的 Amazon S3 儲存貯體名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `lambda:GetPolicy` 
+  `s3:GetBucketNotification` 

 **文件步驟** 
+  `aws:executeScript` - 執行指令碼來驗證 Amazon S3 事件通知的組態設定。驗證 Lambda 函數的資源型 IAM 政策，並產生 AWS Command Line Interface (AWS CLI) 命令，以在政策缺少所需的許可時新增所需的許可。驗證屬於相同 S3 儲存貯體事件通知一部分的其他 Lambda 函數資源政策，並在缺少必要許可時產生 AWS CLI 命令做為輸出。

 **輸出** 

lambdaS3Event.output 

# Amazon Managed Workflows for Apache Airflow
<a name="automation-ref-mwaa"></a>

 AWS Systems Manager 自動化為 Amazon Managed Workflows for Apache Airflow 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-TroubleshootMWAAEnvironmentCreation`](automation-troubleshoot-mwaa-environment-creation.md)

# `AWSSupport-TroubleshootMWAAEnvironmentCreation`
<a name="automation-troubleshoot-mwaa-environment-creation"></a>

 **Description** 

 `AWSSupport-TroubleshootMWAAEnvironmentCreation` Runbook 提供偵錯 Amazon Managed Workflows for Apache Airflow (Amazon MWAA) 環境建立問題的資訊，並盡最大努力執行檢查以及記錄的原因，以協助識別故障。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 擷取 Amazon MWAA 環境的詳細資訊。
+ 驗證執行角色許可。
+ 檢查環境是否具有使用所提供 AWS KMS 金鑰進行記錄的許可，以及是否存在必要的 CloudWatch 日誌群組。
+ 剖析所提供日誌群組中的日誌，以找出任何錯誤。
+ 檢查網路組態，以確認 Amazon MWAA 環境是否可以存取所需的端點。
+ 使用調查結果產生報告。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootMWAAEnvironmentCreation) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `airflow:GetEnvironment`
+ `cloudtrail:LookupEvents`
+ `ec2:DescribeNatGateways`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcEndpoints`
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:GetRolePolicy`
+ `iam:ListAttachedRolePolicies`
+ `iam:ListRolePolicies`
+ `iam:SimulateCustomPolicy`
+ `kms:GetKeyPolicy`
+ `kms:ListAliases`
+ `logs:DescribeLogGroups`
+ `logs:FilterLogEvents`
+ `s3:GetBucketAcl`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetPublicAccessBlock`
+ `s3control:GetPublicAccessBlock`
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootMWAAEnvironmentCreation/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootMWAAEnvironmentCreation/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **EnvironmentName （必要）：**

     您要評估的 Amazon MWAA 環境名稱。  
![\[Input parameters form with AutomationAssumeRole and EnvironmentName fields for AWS Systems Manager Automation.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-mwaa-environment-creation_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **`GetMWAAEnvironmentDetails:`**

     擷取 Amazon MWAA 環境的詳細資訊。如果此步驟失敗，自動化程序會停止並顯示為 `Failed`。
   + **`CheckIAMPermissionsOnExecutionRole:`**

     驗證執行角色是否具有 Amazon MWAA、Amazon S3、CloudWatch Logs、CloudWatch 和 Amazon SQS 資源的必要許可。如果偵測到客戶受管 AWS Key Management Service (AWS KMS) 金鑰，自動化會驗證金鑰的必要許可。此步驟使用 `iam:SimulateCustomPolicy` API 來確定自動化執行角色是否符合所有必要的許可。
   + **`CheckKMSPolicyOnKMSKey:`**

     檢查 AWS KMS 金鑰政策是否允許 Amazon MWAA 環境使用金鑰來加密 CloudWatch Logs。如果 AWS KMS 金鑰 AWS受到管理，自動化會略過此檢查。
   + **`CheckIfRequiredLogGroupsExists:`**

     檢查 Amazon MWAA 環境是否存在所需的 CloudWatch 日誌群組。如果沒有，自動化會檢查 CloudTrail 是否有 `CreateLogGroup`和 `DeleteLogGroup`事件。此步驟也會檢查 `CreateLogGroup`事件。
   + **`BranchOnLogGroupsFindings:`**

     根據與 Amazon MWAA 環境相關的 CloudWatch 日誌群組存在的分支。如果至少有一個日誌群組存在，自動化會剖析它以找出錯誤。如果沒有日誌群組，自動化會略過下一個步驟。
   + **`CheckForErrorsInLogGroups:`**

     剖析 CloudWatch 日誌群組以找出錯誤。
   + **`GetRequiredEndPointsDetails:`**

     擷取 Amazon MWAA 環境使用的服務端點。
   + **`CheckNetworkConfiguration:`**

     驗證 Amazon MWAA 環境的網路組態是否符合需求，包括檢查安全群組、網路 ACLs、子網路和路由表組態。
   + **`CheckEndpointsConnectivity:`**

     調用`AWSSupport-ConnectivityTroubleshooter`子自動化，以驗證 Amazon MWAA 與所需端點的連線能力。
   + **`CheckS3BlockPublicAccess:`**

     檢查 Amazon MWAA 環境的 Amazon S3 儲存貯體是否`Block Public Access`已啟用，並檢閱帳戶的整體 Amazon S3 封鎖公開存取設定。
   + **`GenerateReport:`**

     從自動化收集資訊，並列印每個步驟的結果或輸出。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：
   + **檢查 Amazon MWAA 環境執行角色許可：**

     驗證執行角色是否具有 Amazon MWAA、Amazon S3、CloudWatch Logs、CloudWatch 和 Amazon SQS 資源的必要許可。如果偵測到客戶受管 AWS KMS 金鑰，自動化會驗證金鑰的必要許可。
   + **檢查 Amazon MWAA 環境 AWS KMS 金鑰政策：**

     驗證執行角色是否擁有 Amazon MWAA、Amazon S3、CloudWatch Logs、CloudWatch 和 Amazon SQS 資源的必要許可。此外，如果偵測到客戶受管 AWS KMS 金鑰，自動化會檢查金鑰的必要許可。
   + **檢查 Amazon MWAA 環境 CloudWatch 日誌群組：**

     檢查 Amazon MWAA 環境是否存在所需的 CloudWatch Log Groups。如果沒有，自動化接著會檢查 CloudTrail 以尋找 `CreateLogGroup`和 `DeleteLogGroup`事件。
   + **檢查 Amazon MWAA 環境路由表：**

     檢查 Amazon MWAA 環境中的 Amazon VPC 路由表是否已正確設定。
   + **檢查 Amazon MWAA 環境安全群組：**

     檢查 Amazon MWAA 環境 Amazon VPC 安全群組是否已正確設定。
   + **檢查 Amazon MWAA 環境網路 ACLs：**

     檢查 Amazon MWAA 環境中的 Amazon VPC 安全群組是否已正確設定。
   + **檢查 Amazon MWAA 環境子網路：**

     驗證 Amazon MWAA 環境的子網路是否為私有。
   + **檢查 Amazon MWAA 環境所需的端點連線：**

     驗證 Amazon MWAA 環境是否可以存取所需的端點。為此，自動化會叫用`AWSSupport-ConnectivityTroubleshooter`自動化。
   + **檢查 Amazon MWAA 環境 Amazon S3 儲存貯體：**

     檢查 Amazon MWAA 環境的 Amazon S3 儲存貯體是否`Block Public Access`已啟用，並檢閱帳戶的 Amazon S3 封鎖公開存取設定。
   + **檢查 Amazon MWAA 環境 CloudWatch 日誌群組錯誤：**

     剖析 Amazon MWAA 環境的現有 CloudWatch 日誌群組以找出錯誤。  
![\[Troubleshooting report for MMAA environment showing successful checks and connectivity tests.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-mwaa-environment-creation_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootMWAAEnvironmentCreation/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/)

# Neptune
<a name="automation-ref-neptune"></a>

 AWS Systems Manager 自動化為 Amazon Neptune 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json) 。

**Topics**
+ [`AWS-EnableNeptuneDbAuditLogsToCloudWatch`](AWS-EnableNeptuneDbAuditLogsToCloudWatch.md)
+ [`AWS-EnableNeptuneDbBackupRetentionPeriod`](AWS-EnableNeptuneDbBackupRetentionPeriod.md)
+ [`AWS-EnableNeptuneClusterDeletionProtection`](AWS-EnableNeptuneClusterDeletionProtection.md)

# `AWS-EnableNeptuneDbAuditLogsToCloudWatch`
<a name="AWS-EnableNeptuneDbAuditLogsToCloudWatch"></a>

 **Description** 

`AWS-EnableNeptuneDbAuditLogsToCloudWatch` Runbook 可協助您將 Amazon Neptune 資料庫叢集的稽核日誌傳送至 Amazon CloudWatch Logs。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableNeptuneDbAuditLogsToCloudWatch) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ DbClusterResourceId

  類型：字串

  描述：（必要） 您要為其啟用稽核日誌的 Neptune 資料庫叢集的資源 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:GetAutomationExecution` 
+  `ssm:StartAutomationExecution` 
+  `neptune:DescribeDBCluster` 
+  `neptune:ModifyDBCluster` 
+  `rds:DescribeDBClusters` 
+  `rds:ModifyDBCluster` 

 **文件步驟** 
+ GetNeptuneDbClusterIdentifier (`aws:executeAwsApi`) - 傳回 Neptune 資料庫叢集的 ID。
+ VerifyNeptuneDbEngine (`aws:assertAwsResourceProperty`) - 驗證 Neptune 資料庫引擎類型為 `neptune`。
+ EnableNeptuneDbAuditLogs (`aws:executeAwsApi`) - 允許傳送 Neptune 資料庫叢集的稽核日誌 CloudWatch Logs。
+ VerifyNeptuneDbStatus (`aws:waitAwsResourceProperty`) - 驗證 Neptune 資料庫叢集狀態為 `available`。
+ VerifyNeptuneDbAuditLogs (`aws:executeScript`) - 驗證稽核日誌已成功設定為傳送至 CloudWatch Logs。

# `AWS-EnableNeptuneDbBackupRetentionPeriod`
<a name="AWS-EnableNeptuneDbBackupRetentionPeriod"></a>

 **Description** 

`AWS-EnableNeptuneDbBackupRetentionPeriod` Runbook 可協助您為 Amazon Neptune 資料庫叢集啟用備份保留期介於 7 到 35 天的自動備份。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableNeptuneDbBackupRetentionPeriod) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ DbClusterResourceId

  類型：字串

  描述：（必要） 您要為其啟用備份的 Neptune 資料庫叢集的資源 ID。
+ BackupRetentionPeriod

  類型：整數

  有效值：7-35

  描述：（必要） 備份保留的天數。
+ PreferredBackupWindow

  類型：字串

  描述：（選用） 進行備份時，每天至少 30 分鐘的時段。該值必須是國際標準時間座標 (UTC)，並使用格式：`hh24:mm-hh24:mm`。備份保留期不能與偏好的維護時段衝突。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:GetAutomationExecution` 
+  `ssm:StartAutomationExecution` 
+  `neptune:DescribeDBCluster` 
+  `neptune:ModifyDBCluster` 
+  `rds:DescribeDBClusters` 
+  `rds:ModifyDBCluster` 

 **文件步驟** 
+ GetNeptuneDbClusterIdentifier (`aws:executeAwsApi`) - 傳回 Neptune 資料庫叢集的 ID。
+ VerifyNeptuneDbEngine (`aws:assertAwsResourceProperty`) - 驗證 Neptune 資料庫引擎類型為 `neptune`。
+ VerifyNeptuneDbStatus (`aws:waitAwsResourceProperty`) - 驗證 Neptune 資料庫叢集狀態為 `available`。
+ ModifyNeptuneDbRetentionPeriod (`aws:executeAwsApi`) - 設定 Neptune 資料庫叢集的保留期間。
+ VerifyNeptuneDbBackupsEnabled (`aws:executeScript`) - 驗證保留期間和備份時段已成功設定。

# `AWS-EnableNeptuneClusterDeletionProtection`
<a name="AWS-EnableNeptuneClusterDeletionProtection"></a>

 **Description** 

 `AWS-EnableNeptuneClusterDeletionProtection` Runbook 會為您指定的 Amazon Neptune 叢集啟用刪除保護。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ DbClusterResourceId

  類型：字串

  描述：（必要） 您要啟用刪除保護的 Neptune 叢集 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `neptune:DescribeDBCluster`
+ `neptune:ModifyDBCluster`
+ `rds:DescribeDBClusters`
+ `rds:ModifyDBCluster`

 **文件步驟** 
+ GetNeptuneDbClusterIdentifier (`aws:executeAwsApi`) - 傳回 Neptune 資料庫叢集的 ID。
+ VerifyNeptuneDbEngine (`aws:assertAwsResourceProperty`) - 驗證指定資料庫叢集的引擎類型為 `neptune`。
+ VerifyNeptuneStatus (`aws:waitForAwsResourceProperty`) - 驗證叢集的狀態為 `available`。
+ EnableNeptuneDbDeletionProtection (`aws:executeAwsApi`) - 在 Neptune 資料庫叢集上啟用刪除保護。
+ VerifyNeptuneDbDeletionProtection (`aws:assertAwsResourceProperty`) - 驗證資料庫叢集上已啟用刪除保護。

 **輸出** 
+ EnableNeptuneDbDeletionProtection.EnableNeptuneDbDeletionProtectionResponse - API 操作的輸出。

# Amazon RDS
<a name="automation-ref-rds"></a>

 AWS Systems Manager 自動化為 Amazon Relational Database Service 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-CreateEncryptedRdsSnapshot`](create-encrypted-rds-snapshot.md)
+ [`AWS-CreateRdsSnapshot`](automation-aws-createrdssnapshot.md)
+ [`AWSConfigRemediation-DeleteRDSCluster`](automation-aws-delete-rds-cluster.md)
+ [`AWSConfigRemediation-DeleteRDSClusterSnapshot`](automation-aws-delete-rds-cluster-snap.md)
+ [`AWSConfigRemediation-DeleteRDSInstance`](automation-aws-delete-rds-instance.md)
+ [`AWSConfigRemediation-DeleteRDSInstanceSnapshot`](automation-aws-delete-rds-snapshot.md)
+ [`AWSConfigRemediation-DisablePublicAccessToRDSInstance`](automation-aws-disable-rds-instance-public-access.md)
+ [`AWSConfigRemediation-EnableCopyTagsToSnapshotOnRDSCluster`](automation-aws-enable-tags-snapshot-rds-cluster.md)
+ [`AWSConfigRemediation-EnableCopyTagsToSnapshotOnRDSDBInstance`](automation-aws-enable-tags-snapshot-rds-instance.md)
+ [`AWSConfigRemediation-EnableEnhancedMonitoringOnRDSInstance`](automation-aws-enable-rds-monitoring.md)
+ [`AWSConfigRemediation-EnableMinorVersionUpgradeOnRDSDBInstance`](automation-aws-enable-rds-minor-version.md)
+ [`AWSConfigRemediation-EnableMultiAZOnRDSInstance`](automation-aws-multi-az-rds.md)
+ [`AWSConfigRemediation-EnablePerformanceInsightsOnRDSInstance`](automation-aws-enable-performance-insights-rds.md)
+ [`AWSConfigRemediation-EnableRDSClusterDeletionProtection`](automation-aws-enable-rds-cluster-deletion-protection.md)
+ [`AWSConfigRemediation-EnableRDSInstanceBackup`](automation-aws-enable-rds-instance-backup.md)
+ [`AWSConfigRemediation-EnableRDSInstanceDeletionProtection`](automation-aws-enable-rds-instance-deletion-protection.md)
+ [`AWSConfigRemediation-ModifyRDSInstancePortNumber`](automation-aws-modify-rds-port.md)
+ [`AWSSupport-ModifyRDSSnapshotPermission`](automation-awssupport-modifyrdssnapshotpermission.md)
+ [`AWSPremiumSupport-PostgreSQLWorkloadReview`](automation-aws-postgresqlworkloadreview.md)
+ [`AWS-RebootRdsInstance`](automation-aws-rebootrdsinstance.md)
+ [`AWSSupport-ShareRDSSnapshot`](automation-aws-sharerdssnapshot.md)
+ [`AWS-StartRdsInstance`](automation-aws-startrdsinstance.md)
+ [`AWS-StartStopAuroraCluster`](start-stop-aurora-cluster.md)
+ [`AWS-StopRdsInstance`](automation-aws-stoprdsinstance.md)
+ [`AWSSupport-TroubleshootConnectivityToRDS`](automation-awssupport-troubleshootconnectivitytords.md)
+ [`AWSSupport-TroubleshootRDSIAMAuthentication`](automation-aws-troubleshoot-rds-iam-authentication.md)
+ [`AWSSupport-ValidateRdsNetworkConfiguration`](automation-aws-validate-rds-network-configuration.md)

# `AWS-CreateEncryptedRdsSnapshot`
<a name="create-encrypted-rds-snapshot"></a>

**Description**

`AWS-CreateEncryptedRdsSnapshot` Runbook 會從未加密的 Amazon Relational Database Service (Amazon RDS) 執行個體建立加密快照。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateEncryptedRdsSnapshot)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DBInstanceIdentifier

  類型：字串

  描述：（必要） 您要建立快照的 Amazon RDS 執行個體 ID。
+ DBSnapshotIdentifier

  類型：字串

  描述：（選用） Amazon RDS 快照的名稱範本。預設名稱範本為 *DBInstanceIdentifier-yyyymmddhhmmss*。
+ EncryptedDBSnapshotIdentifier

  類型：字串

  描述：（選用） 加密快照的名稱。預設名稱是您為附加 的 `DBSnapshotIdentifier` 參數指定的值`-encrypted`。
+ InstanceTags

  類型：字串

  描述：（選用） 要新增至資料庫執行個體的標籤。（範例：Key=tagKey1，Value=tagValue1；Key=tagKey2，Value=tagValue2)'
+ KmsKeyId

  類型：字串

  預設：`alias/aws/rds`

  描述：（選用） 您要用來加密快照之客戶受管金鑰的 ARN、金鑰 ID 或 金鑰別名。
+ SnapshotTags

  類型：字串

  描述：（選用） 要新增至快照的標籤。（範例：Key=tagKey1，Value=tagValue1；Key=tagKey2，Value=tagValue2)'

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `rds:AddTagsToResource`
+ `rds:CopyDBSnapshot`
+ `rds:CreateDBSnapshot`
+ `rds:DeleteDBSnapshot`
+ `rds:DescribeDBSnapshots`

**文件步驟**
+ `aws:executeScript` - 建立您在 `DBInstanceIdentifier` 參數中指定的資料庫執行個體快照。
+ `aws:executeScript` - 驗證在上一個步驟中建立的快照是否存在，且為 `available`。
+ `aws:executeScript` - 將先前建立的快照複製到加密的快照。
+ `aws:executeScript` - 驗證上一個步驟中建立的加密快照是否存在。

**輸出**

CopyRdsSnapshotToEncryptedRdsSnapshot.EncryptedSnapshotId - 加密 Amazon RDS 快照的 ID。

# `AWS-CreateRdsSnapshot`
<a name="automation-aws-createrdssnapshot"></a>

 **Description** 

為 Amazon RDS 執行個體建立 Amazon Relational Database Service (Amazon RDS) 快照。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateRdsSnapshot) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DBInstanceIdentifier

  類型：字串

  描述：(必要) 要從中建立快照的 RDS 執行個體的 DBInstanceId ID。
+ DBSnapshotIdentifier

  類型：字串

  描述：(選用) 要建立的 RDS 快照集 DBSnapshotIdentifier ID。
+ InstanceTags

  類型：字串

  描述：(選用) 要為執行個體建立的標籤。
+ SnapshotTags

  類型：字串

  描述：(選用) 要為快照建立的標籤。

 **文件步驟** 

createRDSSnapshot – 建立 RDS 快照並傳回快照 ID。

verifyRDSSnapshot – 檢查上一個步驟中建立的快照是否存在。

 **輸出** 

createRDSSnapshot.SnapshotId – 已建立快照的 ID。

# `AWSConfigRemediation-DeleteRDSCluster`
<a name="automation-aws-delete-rds-cluster"></a>

 **Description** 

 `AWSConfigRemediation-DeleteRDSCluster` Runbook 會刪除您指定的 Amazon Relational Database Service (Amazon RDS) 叢集。 AWS Config 必須在您執行此自動化的 AWS 區域 中啟用 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteRDSCluster) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DBClusterId

  類型：字串

  描述：（必要） 您要啟用刪除保護之資料庫叢集的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `rds:DeleteDBCluster` 
+  `rds:DeleteDBInstance` 
+  `rds:DescribeDBClusters` 

 **文件步驟** 
+  `aws:executeScript` - 刪除您在 `DBClusterId` 參數中指定的資料庫叢集。

# `AWSConfigRemediation-DeleteRDSClusterSnapshot`
<a name="automation-aws-delete-rds-cluster-snap"></a>

 **Description** 

 `AWSConfigRemediation-DeleteRDSClusterSnapshot` Runbook 會刪除指定的 Amazon Relational Database Service (Amazon RDS) 叢集快照。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteRDSClusterSnapshot) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DBClusterSnapshotId

  類型：字串

  描述：（必要） 要刪除的 Amazon RDS 叢集快照識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `rds:DeleteDBClusterSnapshot` 
+  `rds:DescribeDBClusterSnapshots` 

 **文件步驟** 
+  `aws:branch` - 檢查叢集快照是否處於 `available` 狀態。如果無法使用，流程會結束。
+  `aws:executeAwsApi` - 使用資料庫 (DB) 叢集快照識別符刪除指定的 Amazon RDS 叢集快照。
+  `aws:executeScript` - 確認已刪除指定的 Amazon RDS 叢集快照。

# `AWSConfigRemediation-DeleteRDSInstance`
<a name="automation-aws-delete-rds-instance"></a>

 **Description** 

 `AWSConfigRemediation-DeleteRDSInstance` Runbook 會刪除您指定的 Amazon Relational Database Service (Amazon RDS) 執行個體。當您刪除資料庫 (DB) 執行個體時，該執行個體的所有自動備份都會遭到刪除，且無法復原。手動資料庫快照不會刪除。如果您要刪除的資料庫執行個體處於 `failed` 、 `incompatible-network` 或 `incompatible-restore` 狀態，您必須將 `SkipFinalSnapshot` 參數設定為 `true` 。

**注意**  
如果您要刪除的資料庫執行個體位於 Amazon Aurora 資料庫叢集中，如果資料庫執行個體是僅供讀取複本和資料庫叢集中唯一的執行個體，則 Runbook 不會刪除資料庫執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteRDSInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DbiResourceId

  類型：字串

  描述：（必要） 您要刪除之資料庫執行個體的資源識別符。
+ SkipFinalSnapshot

  類型：布林值

  預設：false

   描述：（選用） 如果設定為 `true` ，則在刪除資料庫執行個體之前不會建立最終快照。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `rds:DeleteDBInstance` 
+  `rds:DescribeDBInstances` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從您在 `DbiResourceId` 參數中指定的值收集資料庫執行個體名稱。
+  `aws:branch` - 根據您在 `SkipFinalSnapshot` 參數中指定的值進行分支。
+  `aws:executeAwsApi` - 刪除您在 `DbiResourceId` 參數中指定的資料庫執行個體。
+  `aws:executeAwsApi` - 建立最終快照後，刪除您在 `DbiResourceId` 參數中指定的資料庫執行個體。
+  `aws:assertAwsResourceProperty` - 驗證資料庫執行個體已刪除。

# `AWSConfigRemediation-DeleteRDSInstanceSnapshot`
<a name="automation-aws-delete-rds-snapshot"></a>

 **Description** 

 `AWSConfigRemediation-DeleteRDSInstanceSnapshot` Runbook 會刪除您指定的 Amazon Relational Database Service (Amazon RDS) 執行個體快照。只會刪除`available`狀態為 的快照。此 Runbook 不支援從 Amazon Aurora 資料庫執行個體刪除快照。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteRDSInstanceSnapshot) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DbSnapshotId

  類型：字串

  描述：（必要） 您要刪除的快照 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `rds:DeleteDBSnapshot` 
+  `rds:DescribeDBSnapshots` 

 **文件步驟** 
+  `aws:executeAwsApi` - 收集 `DbSnapshotId` 參數中指定的快照狀態。
+  `aws:assertAwsResourceProperty` - 確認快照的狀態為 `available` 。
+  `aws:executeAwsApi` - 刪除 `DbSnapshotId` 參數中指定的快照。
+  `aws:executeScript` - 驗證已刪除快照。

# `AWSConfigRemediation-DisablePublicAccessToRDSInstance`
<a name="automation-aws-disable-rds-instance-public-access"></a>

 **Description** 

 `AWSConfigRemediation-DisablePublicAccessToRDSInstance` Runbook 會停用您指定之 Amazon Relational Database Service (Amazon RDS) 資料庫 (DB) 執行個體的公有可存取性。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DisablePublicAccessToRDSInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DbiResourceId

  類型：字串

  描述：（必要） 您要停用公開可存取性之資料庫執行個體的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `rds:DescribeDBInstances` 
+  `rds:ModifyDBInstance` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從資料庫執行個體資源識別符收集資料庫執行個體識別符。
+  `aws:assertAwsResourceProperty` - 驗證資料庫執行個體處於 `AVAILABLE` 狀態。
+  `aws:executeAwsApi` - 停用資料庫執行個體上的公有可存取性。
+  `aws:waitForAwsResourceProperty` - 等待資料庫執行個體變更為 `MODIFYING` 狀態。
+  `aws:waitForAwsResourceProperty` - 等待資料庫執行個體變更為 `AVAILABLE` 狀態。
+  `aws:assertAwsResourceProperty` - 確認已停用資料庫執行個體上的公有可存取性。

# `AWSConfigRemediation-EnableCopyTagsToSnapshotOnRDSCluster`
<a name="automation-aws-enable-tags-snapshot-rds-cluster"></a>

 **Description** 

 `AWSConfigRemediation-EnableCopyTagsToSnapshotOnRDSCluster` Runbook 會在您指定的 Amazon Relational Database Service (Amazon RDS) 叢集上啟用 `CopyTagsToSnapshot`設定。啟用此設定會將資料庫叢集的所有標籤複製到資料庫叢集的快照。預設為不複製它們。 AWS Config 必須在您執行此自動化 AWS 區域 的 中啟用。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCopyTagsToSnapshotOnRDSCluster) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ 立即套用

  類型：布林值

  預設：false

   描述：（選用） 如果您`true`為此參數指定 ，無論資料庫叢集`PreferredMaintenanceWindow`的設定為何，都會盡快以非同步方式套用此請求中的修改和任何待定修改。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DbClusterResourceId

  類型：字串

   描述：（必要） 您要啟用`CopyTagsToSnapshot`設定之資料庫叢集的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `rds:DescribeDBClusters` 
+  `rds:ModifyDBCluster` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從資料庫叢集資源識別符收集資料庫叢集識別符。
+  `aws:assertAwsResourceProperty` - 確認資料庫叢集處於 `AVAILABLE` 狀態。
+  `aws:executeAwsApi` - 在資料庫叢集上啟用 `CopyTagsToSnapshot`設定。
+  `aws:assertAwsResourceProperty` - 確認已在資料庫叢集上啟用`CopyTagsToSnapshot`設定。

# `AWSConfigRemediation-EnableCopyTagsToSnapshotOnRDSDBInstance`
<a name="automation-aws-enable-tags-snapshot-rds-instance"></a>

 **Description** 

 `AWSConfigRemediation-EnableCopyTagsToSnapshotOnRDSDBInstance` Runbook 會在您指定的 Amazon Relational Database Service (Amazon RDS) 執行個體上啟用 `CopyTagsToSnapshot`設定。啟用此設定會將資料庫執行個體的所有標籤複製到資料庫執行個體的快照。預設為不複製它們。 AWS Config 必須在您執行此自動化 AWS 區域 的 中啟用。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCopyTagsToSnapshotOnRDSDBInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ 立即套用

  類型：布林值

  預設：false

   描述：（選用） 如果您`true`為此參數指定 ，無論資料庫執行個體`PreferredMaintenanceWindow`的設定為何，都會盡快以非同步方式套用此請求中的修改和任何待定修改。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DbiResourceId

  類型：字串

   描述：（必要） 您要啟用`CopyTagsToSnapshot`設定之資料庫執行個體的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `rds:DescribeDBInstances` 
+  `rds:ModifyDBInstance` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從資料庫執行個體資源識別符收集資料庫執行個體識別符。
+  `aws:assertAwsResourceProperty` - 確認資料庫執行個體處於 `AVAILABLE` 狀態。
+  `aws:executeAwsApi` - 在資料庫執行個體上啟用 `CopyTagsToSnapshot`設定。
+  `aws:assertAwsResourceProperty` - 確認已在資料庫執行個體上啟用`CopyTagsToSnapshot`設定。

# `AWSConfigRemediation-EnableEnhancedMonitoringOnRDSInstance`
<a name="automation-aws-enable-rds-monitoring"></a>

 **Description** 

 `AWSConfigRemediation-EnableEnhancedMonitoringOnRDSInstance` Runbook 會在您指定的 Amazon RDS 資料庫執行個體上啟用增強型監控。如需增強型監控的資訊，請參閱《*Amazon RDS 使用者指南*》中的[增強型監控](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableEnhancedMonitoringOnRDSInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ MonitoringInterval

  類型：整數

  有效值：1 \$1 5 \$1 10 \$1 15 \$1 30 \$1 60

  描述：（必要） 從資料庫執行個體收集增強型監控指標的間隔，以秒為單位。
+ MonitoringRoleArn

  類型：字串

  描述：（必要） 允許 Amazon RDS 將增強型監控指標傳送至 Amazon CloudWatch Logs 的 IAM 角色的 Amazon Resource Name (ARN)。
+ ResourceId

  類型：字串

  描述：（必要） 您要啟用增強型監控之資料庫執行個體的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `rds:DescribeDBInstances` 
+  `rds:ModifyDBInstance` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從資料庫執行個體資源識別符收集資料庫執行個體識別符。
+  `aws:assertAwsResourceProperty` - 確認資料庫執行個體處於 `AVAILABLE` 狀態。
+  `aws:executeAwsApi` - 在您的資料庫執行個體上啟用增強型監控。
+  `aws:executeScript` - 確認已在資料庫執行個體上啟用增強型監控。

# `AWSConfigRemediation-EnableMinorVersionUpgradeOnRDSDBInstance`
<a name="automation-aws-enable-rds-minor-version"></a>

 **Description** 

 `AWSConfigRemediation-EnableMinorVersionUpgradeOnRDS` Runbook 會在您指定的 Amazon RDS 資料庫執行個體上啟用 `AutoMinorVersionUpgrade`設定。啟用此設定表示次要版本升級會在維護時段期間自動套用至資料庫執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableMinorVersionUpgradeOnRDS) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DbiResourceId

  類型：字串

   描述：（必要） 您要`AutoMinorVersionUpgrade`設定之資料庫執行個體的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `rds:DescribeDBInstances` 
+  `rds:ModifyDBInstance` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從資料庫執行個體資源識別符收集資料庫執行個體識別符。
+  `aws:assertAwsResourceProperty` - 確認資料庫執行個體處於 `AVAILABLE` 狀態。
+  `aws:executeAwsApi` - 在資料庫執行個體上啟用 `AutoMinorVersionUpgrade`設定。
+  `aws:executeScript` - 確認已在資料庫執行個體上啟用`AutoMinorVersionUpgrade`設定。

# `AWSConfigRemediation-EnableMultiAZOnRDSInstance`
<a name="automation-aws-multi-az-rds"></a>

 **Description** 

 `AWSConfigRemediation-EnableMultiAZOnRDSInstance` Runbook 會將您的 Amazon Relational Database Service (Amazon RDS) 資料庫 (DB) 執行個體變更為異地同步備份部署。變更此設定不會導致中斷。除非您將 `ApplyImmediately` 參數設定為 ，否則變更會在下一個維護時段套用`true`。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableMultiAZOnRDSInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ 立即套用

  類型：布林值

  預設：false

   描述：（選用） 如果您`true`為此參數指定 ，無論資料庫執行個體`PreferredMaintenanceWindow`的設定為何，都會盡快以非同步方式套用此請求中的修改和任何待定修改。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DbiResourceId

  類型：字串

   描述：（必要） 資料庫執行個體的唯一不 AWS 區域可變識別符，以啟用 `MultiAZ`設定。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `rds:DescribeDBInstances` 
+  `rds:ModifyDBInstance` 
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 

 **文件步驟** 
+  `aws:executeAwsApi` - 使用 `DBInstanceId` 參數中提供的值擷取資料庫執行個體名稱。
+  `aws:executeAwsApi` - 驗證 `DBInstanceStatus`為 `available` 。
+  `aws:branch` - 檢查是否已在您在 `DbiResourceId` 參數中指定的資料庫執行個體`true`上`MultiAZ`將 設定為 。
+  `aws:executeAwsApi` - 在您於 `DbiResourceId` 參數中指定的資料庫執行個體`true`上，將 `MultiAZ` 設定變更為 。
+  `aws:assertAwsResourceProperty` - 確認您在 `DbiResourceId` 參數中指定的資料庫執行個體`true`上， `MultiAZ`設定為 。

# `AWSConfigRemediation-EnablePerformanceInsightsOnRDSInstance`
<a name="automation-aws-enable-performance-insights-rds"></a>

 **Description** 

 `AWSConfigRemediation-EnablePerformanceInsightsOnRDSInstance` Runbook 會在您指定的 Amazon RDS 資料庫執行個體上啟用績效詳情。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnablePerformanceInsightsOnRDSInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DbiResourceId

  類型：字串

  描述：（必要） 您要啟用績效詳情之資料庫執行個體的資源識別符。
+ PerformanceInsightsKMSKeyId

  類型：字串

   預設：`alias/aws/rds`

   描述：（選用） 您希望 Performance Insights 用來加密所有潛在敏感資料的 Amazon Resource Name (ARN)、金鑰 ID 或 AWS Key Management Service (AWS KMS) 客戶受管金鑰的金鑰別名。如果您輸入此參數的金鑰別名，請在值前面加上 **alias/** 。如果您未指定此參數的值， AWS 受管金鑰 則會使用 。
+ PerformanceInsightsRetentionPeriod

  類型：整數

  有效值：7， 731

  預設：7

  描述：（選用） 您想要保留績效詳情資料的天數。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `kms:CreateGrant` 
+  `kms:DescribeKey` 
+  `rds:DescribeDBInstances` 
+  `rds:ModifyDBInstance` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從資料庫執行個體資源識別符收集資料庫執行個體識別符。
+  `aws:assertAwsResourceProperty` - 確認資料庫執行個體狀態為 `available` 。
+  `aws:executeAwsApi` - 收集 `PerformanceInsightsKMSKeyId` 參數中指定之 AWS KMS 客戶受管金鑰的 ARN。
+  `aws:branch` - 檢查是否已將值指派給資料庫執行個體的 `PerformanceInsightsKMSKeyId` 屬性。
+  `aws:executeAwsApi` - 在您於 `DbiResourceId` 參數中指定的資料庫執行個體上啟用績效詳情。
+  `aws:assertAwsResourceProperty` - 確認為 `PerformanceInsightsKMSKeyId` 參數指定的值已用於在資料庫執行個體上啟用 Performance Insights 加密。
+  `aws:assertAwsResourceProperty` - 確認已在資料庫執行個體上啟用績效詳情。

# `AWSConfigRemediation-EnableRDSClusterDeletionProtection`
<a name="automation-aws-enable-rds-cluster-deletion-protection"></a>

 **Description** 

 `AWSConfigRemediation-EnableRDSClusterDeletionProtection` Runbook 會在您指定的 Amazon Relational Database Service (Amazon RDS) 叢集上啟用刪除保護。 AWS Config 必須在您執行此自動化 AWS 區域 的 中啟用。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableRDSClusterDeletionProtection) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+  ClusterId

  類型：字串

  描述：（必要） 您要啟用刪除保護之資料庫叢集的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `rds:DescribeDBClusters` 
+  `rds:ModifyDBCluster` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從資料庫叢集資源識別符收集資料庫叢集名稱。
+  `aws:assertAwsResourceProperty` - 驗證資料庫叢集狀態為 `available` 。
+  `aws:executeAwsApi` - 對您在 `ClusterId` 參數中指定的資料庫叢集啟用刪除保護。
+  `aws:assertAwsResourceProperty` - 驗證資料庫叢集上已啟用刪除保護。

# `AWSConfigRemediation-EnableRDSInstanceBackup`
<a name="automation-aws-enable-rds-instance-backup"></a>

 **Description** 

 `AWSConfigRemediation-EnableRDSInstanceBackup` Runbook 會為您指定的 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體啟用備份。此 Runbook 不支援啟用 Amazon Aurora 資料庫執行個體的備份。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableRDSInstanceBackup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ 立即套用

  類型：布林值

  預設：false

   描述：（選用） 如果您`true`為此參數指定 ，無論資料庫執行個體`PreferredMaintenanceWindow`的設定為何，都會盡快以非同步方式套用此請求中的修改和任何待定修改。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ BackupRetentionPeriod

  類型：整數

  有效值：1-35

  描述：（必要） 備份保留的天數。
+ DbiResourceId

  類型：字串

  描述：（必要） 您要為其啟用備份之資料庫執行個體的資源識別符。
+ PreferredBackupWindow

  類型：字串

  描述：（選用） 建立備份的每日時間範圍 (UTC)。

  限制條件：
  +  必須為 格式 `hh24:mi-hh24:mi` 
  + 必須為國際標準時間 (UTC)
  + 不得和慣用的維護時段衝突
  + 必須至少 30 分鐘

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `rds:DescribeDBInstances` 
+  `rds:ModifyDBInstance` 

 **文件步驟** 
+  `aws:executeScript` - 從資料庫執行個體資源識別符收集資料庫執行個體識別符。啟用資料庫執行個體的備份。確認已在資料庫執行個體上啟用備份。

# `AWSConfigRemediation-EnableRDSInstanceDeletionProtection`
<a name="automation-aws-enable-rds-instance-deletion-protection"></a>

 **Description** 

 `AWSConfigRemediation-EnableRDSInstanceDeletionProtection` Runbook 會在您指定的 Amazon RDS 資料庫執行個體上啟用刪除保護。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableRDSInstanceDeletionProtection) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ 立即套用

  類型：布林值

  預設：false

   描述：（選用） 如果您`true`為此參數指定 ，無論資料庫執行個體`PreferredMaintenanceWindow`的設定為何，都會盡快以非同步方式套用此請求中的修改和任何待定修改。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DbInstanceResourceId

  類型：字串

  描述：（必要） 您要啟用刪除保護之資料庫執行個體的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `rds:DescribeDBInstances` 
+  `rds:ModifyDBInstance` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從資料庫執行個體資源識別符收集資料庫執行個體識別符。
+  `aws:executeAwsApi` - 在您的資料庫執行個體上啟用刪除保護。
+  `aws:assertAwsResourceProperty` - 確認已在資料庫執行個體上啟用刪除保護。

# `AWSConfigRemediation-ModifyRDSInstancePortNumber`
<a name="automation-aws-modify-rds-port"></a>

 **Description** 

 `AWSConfigRemediation-ModifyRDSInstancePortNumber` Runbook 會修改 Amazon Relational Database Service (Amazon RDS) 執行個體接受連線的連接埠號碼。執行此自動化將會重新啟動資料庫。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-ModifyRDSInstancePortNumber) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ PortNumber

  類型：字串

  描述：（選用） 您希望資料庫執行個體接受連線的連接埠號碼。
+ RDSDBInstanceResourceId

  類型：字串

  描述：（必要） 您要修改其傳入連接埠號碼之資料庫執行個體的資源識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `rds:DescribeDBInstances` 
+  `rds:ModifyDBInstance` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從資料庫執行個體資源識別符收集資料庫執行個體識別符。
+  `aws:assertAwsResourceProperty` - 確認資料庫執行個體處於 `AVAILABLE` 狀態。
+  `aws:executeAwsApi` - 修改資料庫執行個體接受連線的傳入連接埠號碼。
+  `aws:waitForAwsResourceProperty` - 等待資料庫執行個體處於 `MODIFYING` 狀態。
+  `aws:waitForAwsResourceProperty` - 等待資料庫執行個體處於 `AVAILABLE` 狀態。

# `AWSSupport-ModifyRDSSnapshotPermission`
<a name="automation-awssupport-modifyrdssnapshotpermission"></a>

 **Description** 

 `AWSSupport-ModifyRDSSnapshotPermission` Runbook 可協助您修改多個 Amazon Relational Database Service (Amazon RDS) 快照的許可。使用此 Runbook，您可以建立快照`Public`或 `Private`，並與其他 共用 AWS 帳戶。使用此 Runbook 無法與其他帳戶共用使用預設 KMS 金鑰加密的快照。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ModifyRDSSnapshotPermission) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ AccountIds

  類型：StringList

  預設：none

   描述：（選用） 您要與其共用快照的帳戶 IDs。如果您`No`輸入 參數的值，則需要此`Private`參數。
+ AccountPermissionOperation

  類型：字串

  有效值：新增 \$1 移除

  預設：none

  描述：（選用） 要執行的操作類型。
+ 私有

  類型：字串

  有效值：是 \$1 否

   描述：（必要） 如果您想要與特定帳戶共用快照，請輸入 `No`作為值。
+ SnapshotIdentifiers

  類型：StringList

  描述：（必要） 您要修改其許可的 Amazon RDS 快照名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `rds:DescribeDBSnapshots` 
+  `rds:ModifyDBSnapshotAttribute` 

 **文件步驟** 

1.  `aws:executeScript` - 驗證 `SnapshotIdentifiers` 參數中提供的快照 IDs。驗證 IDs 之後，指令碼會檢查加密的快照，並在找到任何快照時輸出清單。

1.  `aws:branch` - 根據您為 `Private` 參數輸入的值來配置自動化。

1.  `aws:executeScript` - 修改指定快照的許可，以與指定的帳戶共用快照。

1.  `aws:executeScript` - 修改快照的許可，將快照從 變更為 `Public` `Private` 。

   

 **輸出** 

ValidateSnapshots.EncryptedSnapshots

SharewithOtherAccounts.Result

MakePrivate.Result

MakePrivate.Commands

# `AWSPremiumSupport-PostgreSQLWorkloadReview`
<a name="automation-aws-postgresqlworkloadreview"></a>

 **Description** 

 `AWSPremiumSupport-PostgreSQLWorkloadReview` Runbook 會擷取 Amazon Relational Database Service (Amazon RDS) PostgreSQL 資料庫用量統計資料的多個快照。An 支援 [Proactive Services](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/) 專家需要擷取的統計資料才能執行操作審查。系統會使用一組自訂 SQL 和 shell 指令碼來收集統計資料。這些指令碼會下載到 中由此 Runbook 建立 AWS 帳戶 的臨時 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。Runbook 要求您使用包含使用者名稱和密碼金鑰/值對的 AWS Secrets Manager 秘密來提供登入資料。使用者名稱必須具有查詢標準 PostgreSQL 統計資料檢視和函數的許可。

 此 Runbook AWS 帳戶 會自動使用 AWS CloudFormation 堆疊在 中建立下列 AWS 資源。您可以使用 CloudFormation 主控台監控堆疊建立。
+ 在 VPC 的私有子網路中啟動的虛擬私有雲端 (VPC) 和 Amazon EC2 執行個體，可使用 NAT 閘道選擇性連線至網際網路。
+ 連接至暫時 Amazon EC2 執行個體的 AWS Identity and Access Management (IAM) 角色，具有擷取 Secrets Manager 秘密值的許可。此角色也提供許可，將檔案上傳至您選擇的 Amazon Simple Storage Service (Amazon S3) 儲存貯體，以及選擇性地上傳至 支援 案例。
+ VPC 對等互連，允許資料庫執行個體與暫時 Amazon EC2 執行個體之間進行連線。
+ 連接到暫時 VPC 的 Systems Manager、Secrets Manager 和 Amazon S3 VPC 端點。
+ 具有已註冊任務的維護時段，可定期啟動和停止暫時 Amazon EC2 執行個體、執行資料收集指令碼，以及將檔案上傳至 Amazon S3 儲存貯體。維護時段也會建立 IAM 角色，提供執行已註冊任務的許可。

 當 Runbook 完成時，會刪除用於建立必要 AWS 資源的 CloudFormation 堆疊，並將報告上傳到您選擇的 Amazon S3 儲存貯體，以及選擇性的 支援 案例。

**注意**  
根據預設，會保留暫時 Amazon EC2 執行個體的根 Amazon EBS 磁碟區。您可以將 `EbsVolumeDeleteOnTermination` 參數設定為 來覆寫此選項`true`。

 **先決條件** 
+  **Enterprise Support 訂閱** 此 Runbook 和 Proactive Services 工作負載診斷和檢閱需要 Enterprise Support 訂閱。使用此 Runbook 之前，請聯絡您的技術客戶經理 (TAM) 或專家 TAM (STAM) 以取得指示。如需詳細資訊，請參閱 [支援 Proactive Services](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/)。
+  **帳戶和 AWS 區域 配額** 請確定您尚未達到在此執行手冊的帳戶和區域中可建立的 Amazon EC2 執行個體或 VPCs 數量上限。如果您需要請求提高限制，請參閱[服務提高限制表單](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase/)。
+  **資料庫組態** 

  1. 您在 `DatabaseName` 參數中指定的資料庫應設定 `pg_stat_statements` 延伸模組。如果您尚未在 `pg_stat_statements`中設定 `shared_preload_libraries`，則必須編輯資料庫參數群組中的值，並套用變更。變更 參數`shared_preload_libraries`需要重新啟動資料庫執行個體。如需詳細資訊，請參閱[使用參數群組](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)。`pg_stat_statements` 將 新增至 `shared_preload_libraries`會新增一些效能額外負荷。不過，這對於追蹤個別陳述式的效能很有用。如需 `pg_stat_statements`延伸模組的詳細資訊，請參閱 [PostgreSQL 文件](https://www.postgresql.org/docs/10/pgstatstatements.html)。如果您未設定`pg_stat_statements`延伸模組，或延伸模組不存在於用於統計資料收集的資料庫中，則不會在操作檢閱中顯示陳述式層級分析。

  1. 確定 `track_counts`和 `track_activities` 參數未關閉。如果在資料庫參數群組中關閉這些參數，則無法使用有意義的統計資料。變更這些參數需要您重新啟動資料庫執行個體。如需詳細資訊，請參閱[在 Amazon RDS for PostgreSQL 資料庫執行個體上使用參數](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Parameters.html)。

  1. 如果 `track_io_timing` 參數已關閉，則操作檢閱中不會包含 I/O 層級統計資料。變更 `track_io_timing` 需要您重新啟動資料庫執行個體，並會根據資料庫執行個體工作負載產生額外的效能額外負荷。儘管關鍵工作負載的效能額外負荷，此參數仍提供每個查詢的 I/O 時間相關實用資訊。

 **帳單和費用** 此自動化執行期間， AWS 帳戶 將針對暫時 Amazon EC2 執行個體、相關聯的 Amazon EBS 磁碟區、NAT 閘道和傳輸的資料，向您收取相關費用。根據預設，此 Runbook 會建立 `t3.micro` Amazon Linux 2 執行個體來收集統計資料。Runbook 會在步驟之間啟動和停止執行個體，以降低成本。

 **資料安全和控管** 此 Runbook 會透過查詢 [PostgreSQL 統計資料檢視和函數來收集統計資料](https://www.postgresql.org/docs/current/monitoring-stats.html)。請確定 `SecretId` 參數中提供的登入資料僅允許統計資料檢視和函數的唯讀許可。在自動化過程中，集合指令碼會上傳到您的 Amazon S3 儲存貯體，並且可以位於 中`s3://amzn-s3-demo-bucket/automation execution id/queries/`。

這些指令碼會收集 AWS 專家用來檢閱物件層級關鍵效能指標的資料。指令碼會收集資料表名稱、結構描述名稱和索引名稱等資訊。如果其中任何一種資訊包含敏感資訊，例如收入指標、使用者名稱、電子郵件地址或任何其他個人身分識別資訊，我們建議您停止此工作負載檢閱。請聯絡您的 AWS TAM 以討論工作負載檢閱的替代方法。

請確定您擁有必要的核准和許可，以共用此自動化所收集的統計資料和中繼資料 AWS。

 **安全考量** 如果您將 `UpdateRdsSecurityGroup` 參數設定為 `yes`，則 Runbook 會更新與資料庫執行個體相關聯的安全群組，以允許來自暫時 Amazon EC2 執行個體私有 IP 地址的傳入流量。

如果您將 `UpdateRdsRouteTable` 參數設定為 `yes`，則 Runbook 會更新與資料庫執行個體正在執行之子網路相關聯的路由表，以允許透過 VPC 對等互連將流量傳送至暫時 Amazon EC2 執行個體。

 **使用者建立** 若要允許集合指令碼連線至 Amazon RDS 資料庫，您必須設定具有讀取統計資料檢視許可的使用者。然後，您必須將登入資料存放在 Secrets Manager 中。建議您為此自動化建立新的專用使用者。建立個別使用者可讓您稽核和追蹤此自動化執行的活動。

1. 建立新的使用者。

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "CREATE USER <user_name> PASSWORD '<password>';"`

1. 請確定此使用者只能進行唯讀連線。

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "ALTER USER <user_name> SET default_transaction_read_only=true;"`

1. 設定使用者層級限制。

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "ALTER USER <user_name> SET work_mem=4096;"`

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "ALTER USER <user_name> SET statement_timeout=10000;"`

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "ALTER USER <user_name> SET idle_in_transaction_session_timeout=60000;"`

1. 將`pg_monitor`許可授予新使用者，使其可以存取資料庫統計資料。（此`pg_monitor`角色是 `pg_read_all_settings`、 `pg_read_all_stats`和 的成員`pg_stat_scan_table`。)

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "GRANT pg_monitor to <user_name>;"`

 **此 Systems Manager Automation 新增至暫時 Amazon EC2 執行個體描述檔的許可** 下列許可會新增至與暫時 Amazon EC2 執行個體相關聯的 IAM 角色。`AmazonSSMManagedInstanceCore` 受管政策也會與 IAM 角色建立關聯，以允許 Systems Manager 管理 Amazon EC2 執行個體。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ec2:DescribeTags"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/automation-execution-id/*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-id",
            "Effect": "Allow"
        },
        {
            "Action": [
                "support:AddAttachmentsToSet",
                "support:AddCommunicationToCase",
                "support:DescribeCases"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

 **此 Systems Manager Automation 新增至暫時維護時段的許可** 下列許可會自動新增至與維護 Windows 任務相關聯的 IAM 角色。維護 Windows 任務會啟動、停止命令，並將命令傳送至暫時 Amazon EC2 執行個體。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:GetAutomationExecution",
                "ssm:ListCommands",
                "ssm:ListCommandInvocations",
                "ssm:GetCommandInvocation",
                "ssm:GetCalendarState",
                "ssm:CancelCommand",
                "ec2:DescribeInstanceStatus"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssm:SendCommand",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ssm:StartAutomationExecution"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/temporary-instance-id",
                "arn:aws:ssm:*:*:document/AWS-RunShellScript",
                "arn:aws:ssm:*:*:document/AWS-StopEC2Instance",
                "arn:aws:ssm:*:*:document/AWS-StartEC2Instance",
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        },
        {
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "ssm.amazonaws.com"
                },
                "ArnLike": {
                    "iam:AssociatedResourceARN": "arn:aws:ssm:*:*:document/AWS-*"
                }
            },
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/SSM-*",
            "Effect": "Allow"
        }
    ]
}
```

------

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-PostgreSQLWorkloadReview) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DBInstanceIdentifier

  類型：字串

  描述：（必要） 資料庫執行個體的 ID。
+ DatabaseName

  類型：字串

  描述：（必要） 資料庫執行個體上託管的資料庫名稱。
+ SecretId

  類型：字串

  描述：（必要） Secrets Manager 秘密的 ARN，其中包含使用者名稱和密碼金鑰值對。 CloudFormation 堆疊會建立具有此 ARN `GetSecretValue`操作許可的 IAM 政策。登入資料用於允許臨時執行個體收集資料庫統計資料。請聯絡您的 TAM 或 STAM 以討論最低必要許可。
+ 確認

  類型：字串

  描述：（必要） **yes** 如果您確認此 Runbook 會在您的帳戶中建立臨時資源，以從資料庫執行個體收集統計資料，請輸入 。我們建議您先聯絡您的 TAM 或 STAM，再執行此自動化。
+ SupportCase

  類型：字串

  描述：（選用） TAM 或 STAM 提供的 支援 案例編號。如果提供， Runbook 會更新案例並連接收集的資料。此選項需要暫時 Amazon EC2 執行個體具備網際網路連線，才能存取 支援 API 端點。您必須將 `AllowVpcInternetAccess` 參數設定為 `true`。案例主旨必須包含片語 `AWSPremiumSupport-PostgreSQLWorkloadReview`。
+ S3BucketName

  類型：字串

  描述：（必要） 帳戶中您要上傳自動化所收集的資料的 Amazon S3 儲存貯體名稱。確認儲存貯體政策不會將任何不必要的讀取或寫入許可授予不需要存取儲存貯體內容的主體。基於此自動化目的，我們建議您建立新的暫時 Amazon S3 儲存貯體。Runbook 提供 `s3:PutObject` API 操作的許可給連接到暫時 Amazon EC2 執行個體的 IAM 角色。上傳的檔案將位於 。 `s3://bucket name/automation execution id/`
+ InstanceType

  類型：字串

  描述：（選用） 將執行自訂 SQL 和 shell 指令碼的暫時 Amazon EC2 執行個體類型。

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

  預設：t3.micro
+ VpcCidr

  類型：字串

  描述：（選用） 新 VPC CIDR 表示法中的 IP 地址範圍 （例如，`172.31.0.0/16`)。請確定您選取的 CIDR 不重疊或符合任何與資料庫執行個體連線的現有 VPC。您可以建立的最小 VPC 使用 /28 子網路遮罩，而最大的 VPC 使用 /16 子網路遮罩。

  預設：172.31.0.0/16
+ StackResourcesNamePrefix

  類型：字串

  描述：（選用） CloudFormation 堆疊資源名稱字首和標籤。Runbook 會使用此字首建立 CloudFormation 堆疊資源，做為套用至資源的名稱和標籤的一部分。標籤鍵/值對的結構為 `StackResourcesNamePrefix:{{automation:EXECUTION_ID}}`。

  預設：AWSPostgreSQLWorkloadReview
+ Schedule

  類型：字串

  描述：（選用） 維護時段排程。指定維護時段執行任務的頻率。預設值為每個 `1 hour`。

  有效值：15 分鐘 \$1 30 分鐘 \$1 1 小時 \$1 2 小時 \$1 4 小時 \$1 6 小時 \$1 12 小時 \$1 1 天 \$1 2 天 \$1 4 天 

  預設：1 小時
+ 持續時間

  類型：整數

  描述：（選用） 您希望允許自動化執行的最長持續時間，以分鐘為單位。支援的持續時間上限為 8，640 分鐘 (6 天）。預設值為 4，320 分鐘 (3 天）。

  有效值：30-8640

  預設：4320
+ UpdateRdsRouteTable

  類型：字串

  描述：（選用） 如果設定為 `true`，則 Runbook 會更新與資料庫執行個體執行所在子網路相關聯的路由表。新增 IPv4 路由，透過新建立的 VPC 互連連線，將流量路由到暫時 Amazon EC2 執行個體私有 IPV4 地址。

  有效值：true \$1 false

  預設：false
+ AllowVpcInternetAccess

  類型：字串

  描述：（選用） 如果設定為 `true`，則 Runbook 會建立 NAT 閘道，以提供暫時 Amazon EC2 執行個體的網際網路連線，以便與 支援 API 端點通訊。您可以保留此參數，就像只希望 Runbook 將輸出上傳到 Amazon S3 儲存貯體`false`一樣。

  有效值：true \$1 false 

  預設：false
+ UpdateRdsSecurityGroup

  類型：字串

  描述：（選用） 如果設定為 `true`，則 Runbook 會更新與資料庫執行個體相關聯的安全群組，以允許來自暫時執行個體私有 IP 地址的流量。

  有效值：false \$1 true

  預設：false
+ EbsVolumeDeleteOnTermination

  類型：字串

  描述：（選用） 如果設定為 `true`，則臨時 Amazon EC2 執行個體的根磁碟區會在 Runbook 完成並刪除 CloudFormation 堆疊後刪除。

  有效值：false \$1 true 

  預設：false

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStackEvents`
+ `cloudformation:DescribeStackResource`
+ `cloudformation:DescribeStacks`
+ `cloudformation:UpdateStack`
+ `ec2:AcceptVpcPeeringConnection`
+ `ec2:AllocateAddress`
+ `ec2:AssociateRouteTable`
+ `ec2:AssociateVpcCidrBlock`
+ `ec2:AttachInternetGateway`
+ `ec2:AuthorizeSecurityGroupEgress`
+ `ec2:AuthorizeSecurityGroupIngress`
+ `ec2:CreateEgressOnlyInternetGateway`
+ `ec2:CreateInternetGateway`
+ `ec2:CreateNatGateway`
+ `ec2:CreateRoute`
+ `ec2:CreateRouteTable`
+ `ec2:CreateSecurityGroup`
+ `ec2:CreateSubnet`
+ `ec2:CreateTags`
+ `ec2:CreateVpc`
+ `ec2:CreateVpcEndpoint`
+ `ec2:CreateVpcPeeringConnection`
+ `ec2:DeleteEgressOnlyInternetGateway`
+ `ec2:DeleteInternetGateway`
+ `ec2:DeleteNatGateway`
+ `ec2:DeleteRoute`
+ `ec2:DeleteRouteTable`
+ `ec2:DeleteSecurityGroup`
+ `ec2:DeleteSubnet`
+ `ec2:DeleteTags`
+ `ec2:DeleteVpc`
+ `ec2:DeleteVpcEndpoints`
+ `ec2:DescribeAddresses`
+ `ec2:DescribeEgressOnlyInternetGateways`
+ `ec2:DescribeImages`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceStatus`
+ `ec2:DescribeInternetGateways`
+ `ec2:DescribeNatGateways`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcEndpoints`
+ `ec2:DescribeVpcPeeringConnections`
+ `ec2:DescribeVpcs`
+ `ec2:DetachInternetGateway`
+ `ec2:DisassociateRouteTable`
+ `ec2:DisassociateVpcCidrBlock`
+ `ec2:ModifySubnetAttribute`
+ `ec2:ModifyVpcAttribute`
+ `ec2:RebootInstances`
+ `ec2:ReleaseAddress`
+ `ec2:RevokeSecurityGroupEgress`
+ `ec2:RevokeSecurityGroupIngress`
+ `ec2:StartInstances`
+ `ec2:StopInstances`
+ `ec2:RunInstances`
+ `ec2:TerminateInstances`
+ `iam:AddRoleToInstanceProfile`
+ `iam:AttachRolePolicy`
+ `iam:CreateInstanceProfile`
+ `iam:CreateRole`
+ `iam:DeleteInstanceProfile`
+ `iam:DeleteRole`
+ `iam:DeleteRolePolicy`
+ `iam:DetachRolePolicy`
+ `iam:GetInstanceProfile`
+ `iam:GetRole`
+ `iam:GetRolePolicy`
+ `iam:PassRole`
+ `iam:PutRolePolicy`
+ `iam:RemoveRoleFromInstanceProfile`
+ `iam:TagPolicy`
+ `iam:TagRole`
+ `rds:DescribeDBInstances`
+ `s3:GetAccountPublicAccessBlock`
+ `s3:GetBucketAcl`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:ListBucket`
+ `ssm:AddTagsToResource`
+ `ssm:CancelMaintenanceWindowExecution`
+ `ssm:CreateDocument`
+ `ssm:CreateMaintenanceWindow`
+ `ssm:DeleteDocument`
+ `ssm:DeleteMaintenanceWindow`
+ `ssm:DeregisterTaskFromMaintenanceWindow`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:DescribeDocument`
+ `ssm:DescribeInstanceInformation`
+ `ssm:DescribeMaintenanceWindowExecutions`
+ `ssm:GetCalendarState`
+ `ssm:GetDocument`
+ `ssm:GetMaintenanceWindowExecution`
+ `ssm:GetParameters`
+ `ssm:ListCommandInvocations`
+ `ssm:ListCommands`
+ `ssm:ListTagsForResource`
+ `ssm:RegisterTaskWithMaintenanceWindow`
+ `ssm:RemoveTagsFromResource`
+ `ssm:SendCommand`
+ `support:AddAttachmentsToSet`
+ `support:AddCommunicationToCase`
+ `support:DescribeCases`

 **文件步驟** 

1. `aws:assertAwsResourceProperty` - 確認資料庫執行個體處於 `available` 狀態。

1. `aws:executeAwsApi` - 收集資料庫執行個體的詳細資訊。

1. `aws:executeScript` - 檢查 中指定的 Amazon S3 儲存貯體是否`S3BucketName`允許匿名或公有讀取或寫入存取許可。

1. `aws:executeScript` - 從用於在 中建立臨時 AWS 資源的 Automation Runbook 附件取得 CloudFormation 範本內容 AWS 帳戶。

1. `aws:createStack` - 建立 CloudFormation 堆疊資源。

1. `aws:waitForAwsResourceProperty` - 等待範本建立的 Amazon EC2 執行個體 CloudFormation 執行。

1. `aws:executeAwsApi` - 取得由 建立的暫時 Amazon EC2 執行個體和 VPC 對等互連的 IDs CloudFormation。

1. `aws:executeAwsApi` - 取得暫時 Amazon EC2 執行個體的 IP 地址，以設定與資料庫執行個體的連線。

1. `aws:executeAwsApi` - 標記連接到暫時 Amazon EC2 執行個體的 Amazon EBS 磁碟區。

1. `aws:waitForAwsResourceProperty` - 等到暫時 Amazon EC2 執行個體通過狀態檢查。

1. `aws:waitForAwsResourceProperty` - 等到暫時 Amazon EC2 執行個體由 Systems Manager 管理。如果此步驟逾時或失敗，則 Runbook 會重新啟動執行個體。

   1. `aws:executeAwsApi` - 如果上一個步驟失敗或逾時，則重新啟動暫時 Amazon EC2 執行個體。

   1. `aws:waitForAwsResourceProperty` - 等到暫時 Amazon EC2 執行個體在重新啟動後由 Systems Manager 管理。

1. `aws:runCommand` - 在暫時 Amazon EC2 執行個體上安裝中繼資料收集器應用程式需求。

1. `aws:runCommand` - 透過在暫時 Amazon EC2 執行個體上建立組態檔案來設定資料庫執行個體的存取權。

1. `aws:executeAwsApi` - 建立維護時段，以使用 Run Command 定期執行中繼資料收集器應用程式。維護時段會在命令之間啟動和停止執行個體。

1. `aws:waitForAwsResourceProperty` - 等待 CloudFormation 範本建立的維護時段就緒。

1. `aws:executeAwsApi` - 取得維護時段IDs，並變更 建立的行事曆 CloudFormation。

1. `aws:sleep` - 等到維護時段的結束日期。

1. `aws:executeAwsApi` - 關閉維護時段。

1. `aws:executeScript` - 取得維護時段期間執行的任務結果。

1. `aws:waitForAwsResourceProperty` - 等待維護時段完成最後一個任務，然後再繼續。

1. `aws:branch` - 根據您是否提供 `SupportCase` 參數的值來配置工作流程。

   1. `aws:changeInstanceState` - 啟動暫時 Amazon EC2 執行個體，並等待狀態檢查通過，再上傳報告。

   1. `aws:waitForAwsResourceProperty` - 等到暫時 Amazon EC2 執行個體由 Systems Manager 管理。如果此步驟逾時或失敗，則 Runbook 會重新啟動執行個體。

      1. `aws:executeAwsApi` - 如果上一個步驟失敗或逾時，則重新啟動暫時 Amazon EC2 執行個體。

      1. `aws:waitForAwsResourceProperty` - 等到暫時 Amazon EC2 執行個體在重新啟動後由 Systems Manager 管理。

   1. `aws:runCommand` - 如果您提供 `SupportCase` 參數的值，則將中繼資料報告連接到 支援 案例。指令碼會壓縮報告並將其分割為 5 MB 檔案。指令碼連接至 支援 案例的檔案數目上限為 12。

1. `aws:changeInstanceState` - 停止暫時 Amazon EC2 執行個體，以防 CloudFormation 堆疊無法刪除。

1. `aws:executeAwsApi` - 說明 Runbook 無法建立或更新 CloudFormation 堆疊時的 CloudFormation 堆疊事件。

1. `aws:waitForAwsResourceProperty` - 等到 CloudFormation 堆疊處於終端機狀態後再刪除。

1. `aws:executeAwsApi` - 刪除不包含維護時段的 CloudFormation 堆疊。如果`EbsVolumeDeleteOnTermination`參數值設定為 ，則會保留與暫時 Amazon EC2 執行個體相關聯的根 Amazon EBS 磁碟區`false`。

# `AWS-RebootRdsInstance`
<a name="automation-aws-rebootrdsinstance"></a>

 **Description** 

 如果尚未重新啟動，則 `AWS-RebootRdsInstance` Runbook 會重新啟動 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-RebootRdsInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ InstanceId

  類型：字串

  描述：（必要） 您要重新啟動的 Amazon RDS 資料庫執行個體 ID。

 **文件步驟** 

RebootInstance - 如果資料庫執行個體尚未重新啟動，請將其重新啟動。

WaitForAvailableState - 等待資料庫執行個體完成重新啟動程序。

 **輸出** 

此自動化沒有輸出。

# `AWSSupport-ShareRDSSnapshot`
<a name="automation-aws-sharerdssnapshot"></a>

 **Description** 

 `AWSSupport-ShareRDSSnapshot` Runbook 為 知識中心文章中概述的程序提供自動化解決方案 [如何與其他帳戶共用加密的 Amazon RDS 資料庫快照？](https://aws.amazon.com/premiumsupport/knowledge-center/share-encrypted-rds-snapshot-kms-key/) 如果您的 Amazon Relational Database Service (Amazon RDS) 快照是使用預設值加密 AWS 受管金鑰，則無法共用快照。在這種情況下，您必須使用客戶受管金鑰複製快照，然後與目標帳戶共用快照。此自動化會使用您在 `SnapshotName` 參數中指定的值，或所選 Amazon RDS 資料庫執行個體或叢集的最新快照來執行這些步驟。

**注意**  
 如果您未指定 `KMSKey` 參數的值，自動化會在您的帳戶中建立新的 AWS KMS 客戶受管金鑰，用來加密快照。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ShareRDSSnapshot) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AccountIds

  類型：StringList

  描述：（必要） 共用快照的帳戶 IDs 逗號分隔清單。
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ 資料庫

  類型：字串

   描述：（必要） 您要共用其快照的 Amazon RDS 資料庫執行個體或叢集名稱。如果您指定 參數的值，則此`SnapshotName`參數為選用。
+ KMSKey

  類型：字串

  描述：（選用） 用於加密快照的客戶受管金鑰的完整 Amazon Resource Name (ARN) AWS KMS 。
+ SnapshotName

  類型：字串

  描述：（選用） 您要使用的資料庫叢集或執行個體快照 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `rds:DescribeDBInstances` 
+  `rds:DescribeDBSnapshots` 
+  `rds:CopyDBSnapshot` 
+  `rds:ModifyDBSnapshotAttribute` 

 `AutomationAssumeRole` 需要下列動作，才能成功啟動資料庫叢集的 Runbook。
+  `ssm:StartAutomationExecution` 
+  `rds:DescribeDBClusters` 
+  `rds:DescribeDBClusterSnapshots` 
+  `rds:CopyDBClusterSnapshot` 
+  `rds:ModifyDBClusterSnapshotAttribute` 

 用來執行自動化的 IAM 角色必須新增為金鑰使用者，才能使用 `ARNKmsKey` 參數中指定的 KMS 金鑰。如需有關將金鑰使用者新增至 KMS 金鑰的資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[變更金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)。

 如果您未指定 `KMSKey` 參數的值， `AutomationAssumeRole`需要下列其他動作才能成功啟動 Runbook。
+  `kms:CreateKey` 
+  `kms:ScheduleKeyDeletion` 
+  `kms:CreateGrant` 
+  `kms:DescribeKey` 

 **文件步驟** 

1.  `aws:executeScript` - 檢查是否為 `KMSKey` 參數提供值，如果找不到值，則建立 AWS KMS 客戶受管金鑰。

1.  `aws:branch` - 檢查是否已相應地為 `SnapshotName` 參數和分支提供值。

1.  `aws:executeAwsApi` - 檢查提供的快照是否來自資料庫執行個體。

1.  `aws:executeScript` - 格式化`SnapshotName`參數，以連字號取代冒號。

1.  `aws:executeAwsApi` - 使用指定的 `KMSKey` 複製快照。

1.  `aws:waitForAwsResourceProperty` - 等待複製快照操作完成。

1.  `aws:executeAwsApi` - 與`AccountIds`指定的 共用新的快照。

1.  `aws:executeAwsApi` - 檢查提供的快照是否來自資料庫叢集。

1.  `aws:executeScript` - 格式化`SnapshotName`參數，以連字號取代冒號。

1.  `aws:executeAwsApi` - 使用指定的 `KMSKey` 複製快照。

1.  `aws:waitForAwsResourceProperty` - 等待複製快照操作完成。

1.  `aws:executeAwsApi` - 與`AccountIds`指定的 共用新的快照。

1.  `aws:executeAwsApi` - 檢查為 `Database` 參數提供的值是否為資料庫執行個體。

1.  `aws:executeAwsApi` - 檢查為 `Database` 參數提供的值是否為資料庫叢集。

1.  `aws:executeAwsApi` - 擷取指定 的快照清單`Database`。

1.  `aws:executeScript` - 從上一個步驟中組合的清單中確定可用的最新快照。

1.  `aws:executeAwsApi` - 使用指定的 複製資料庫執行個體快照`KMSKey`。

1.  `aws:waitForAwsResourceProperty` - 等待複製快照操作完成。

1.  `aws:executeAwsApi` - 與`AccountIds`指定的 共用新的快照。

1.  `aws:executeAwsApi` - 擷取指定 的快照清單`Database`。

1.  `aws:executeScript` - 從上一個步驟中組合的清單中確定可用的最新快照。

1.  `aws:executeAwsApi` - 使用指定的 複製資料庫執行個體快照`KMSKey`。

1.  `aws:waitForAwsResourceProperty` - 等待複製快照操作完成。

1.  `aws:executeAwsApi` - 與`AccountIds`指定的 共用新的快照。

1.  `aws:executeScript` - 如果您未指定 `KMSKey` 參數的值且自動化失敗，則刪除自動化建立 AWS KMS 的客戶受管金鑰。

# `AWS-StartRdsInstance`
<a name="automation-aws-startrdsinstance"></a>

 **Description** 

啟動 Amazon Relational Database Service (Amazon RDS) 執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-StartRdsInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ InstanceId

  類型：字串

  描述：（必要） 要啟動的 Amazon RDS 執行個體 ID。

# `AWS-StartStopAuroraCluster`
<a name="start-stop-aurora-cluster"></a>

**Description**

此 Runbook 會啟動或停止 Amazon Aurora 叢集。

**注意**  
若要啟動叢集，它必須處於 `stopped` 狀態。若要停止叢集，它必須處於 `available` 狀態。此 Runbook 無法用來啟動或停止 Aurora Serverless v1 叢集、Aurora 多主機叢集、Aurora 全域資料庫的一部分，或使用 Aurora 平行查詢的叢集。Runbook 可用來停止和啟動 Aurora Serverless v2 叢集。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-StartStopAuroraCluster)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） 您要停止或啟動的 Aurora 叢集名稱。
+ Action

  類型：字串

  有效值：開始 \$1 停止

  預設：開始

  描述：（必要） 您要停止或啟動的 Aurora 叢集名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `rds:DescribeDBClusters`
+ `rds:StartDBCluster`
+ `rds:StopDBCluster`

**文件步驟**
+ `aws:executeScript` - 根據您為 指定的值啟動或停止叢集。

**輸出**

StartStopAuroraCluster.ClusterName - Aurora 叢集的名稱

StartStopAuroraCluster.CurrentStatus - Aurora 叢集的目前狀態

StartStopAuroraCluster.Message - 自動化的詳細資訊

# `AWS-StopRdsInstance`
<a name="automation-aws-stoprdsinstance"></a>

 **Description** 

停止 Amazon Relational Database Service (Amazon RDS) 執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-StopRdsInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ InstanceId

  類型：字串

  描述：（必要） 要停止的 Amazon RDS 執行個體 ID。

# `AWSSupport-TroubleshootConnectivityToRDS`
<a name="automation-awssupport-troubleshootconnectivitytords"></a>

 **Description** 

 `AWSSupport-TroubleshootConnectivityToRDS` Runbook 會診斷 EC2 執行個體與 Amazon Relational Database Service 執行個體之間的連線問題。自動化會確認資料庫執行個體可用，然後會檢查關聯的安全群組規則、網路存取控制清單 (網路 ACL)，以及路由表來檢查是否有潛在的連線能力問題。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootConnectivityToRDS) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DBInstanceIdentifier

  類型：字串

  描述：(必要) 要測試連線能力的目標資料庫執行個體 ID。
+ SourceInstance

  類型：字串

  允許的模式：^i-[a-z0-9]\$18,17\$1\$1

  描述：(必要) 要測試連線能力的來源 EC2 執行個體 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:DescribeInstances` 
+  `ec2:DescribeNetworkAcls` 
+  `ec2:DescribeRouteTables` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeSubnets` 
+  `rds:DescribeDBInstances` 

 **文件步驟** 
+  `aws:assertAwsResourceProperty` - 確認資料庫執行個體狀態為 `available` 。
+  `aws:executeAwsApi` - 取得資料庫執行個體的相關資訊。
+  `aws:executeAwsApi` - 取得資料庫執行個體網路 ACLs的相關資訊。
+  `aws:executeAwsApi` - 取得資料庫執行個體子網路 CIDR。
+  `aws:executeAwsApi` - 取得 EC2 執行個體的相關資訊。
+  `aws:executeAwsApi` - 取得 EC2 執行個體網路 ACLs的相關資訊。
+  `aws:executeAwsApi` - 取得與 EC2 執行個體相關聯之安全群組的相關資訊。
+  `aws:executeAwsApi` - 取得與資料庫執行個體相關聯之安全群組的相關資訊。
+  `aws:executeAwsApi` - 取得與 EC2 執行個體相關聯之路由表的相關資訊。
+  `aws:executeAwsApi` - 取得與 EC2 執行個體的 Amazon VPC 相關聯之主要路由表的相關資訊。
+  `aws:executeAwsApi` - 取得與資料庫執行個體相關聯之路由表的相關資訊。
+  `aws:executeAwsApi` - 取得與資料庫執行個體的 Amazon VPC 相關聯的主要路由表相關資訊。
+  `aws:executeScript` - 評估安全群組規則。
+  `aws:executeScript` - 評估網路 ACLs。
+  `aws:executeScript` - 評估路由表。
+  `aws:sleep` - 結束自動化。

 **輸出** 

getRDSInstanceProperties.DBInstanceIdentifier - 自動化中使用的資料庫執行個體。

getRDSInstanceProperties.DBInstanceStatus ‒ 資料庫執行個體目前的狀態。

 evalSecurityGroupRules.SecurityGroupEvaluation ‒ 比較 `SourceInstance` 安全群組規則與資料庫執行個體安全群組規則的結果。

 evalNetworkAclRules.NetworkAclEvaluation ‒ 比較 `SourceInstance` 網路 ACL 與資料庫執行個體網路 ACL 的結果。

 evalRouteTableEntries.RouteTableEvaluation ‒ 比較 `SourceInstance` 路由表與資料庫執行個體路由的結果。

# `AWSSupport-TroubleshootRDSIAMAuthentication`
<a name="automation-aws-troubleshoot-rds-iam-authentication"></a>

 **Description** 

 `AWSSupport-TroubleshootRDSIAMAuthentication` 有助於疑難排解 Amazon RDS for PostgreSQL、Amazon RDS for MySQL、Amazon RDS for MariaDB、Amazon Aurora PostgreSQL 和 Amazon Aurora MySQL 執行個體的 AWS Identity and Access Management (IAM) 身分驗證。使用此 Runbook 來驗證使用 Amazon RDS 執行個體或 Aurora 叢集進行 IAM 身分驗證所需的組態。它也提供步驟來修正 Amazon RDS 執行個體或 Aurora 叢集的連線問題。

**重要**  
 此 Runbook 不支援 Amazon RDS for Oracle 或 Amazon RDS for Microsoft SQL Server。

**重要**  
 如果提供來源 Amazon EC2 執行個體且目標資料庫為 Amazon RDS，`AWSSupport-TroubleshootConnectivityToRDS`則會叫用子自動化來疑難排解 TCP 連線。輸出也提供您可以在 Amazon EC2 執行個體或來源機器上執行的命令，以使用 IAM 身分驗證連線至 Amazon RDS 執行個體。

 **如何運作？** 

此 Runbook 包含六個步驟：
+ **步驟 1： validateInputs：**驗證自動化的輸入。
+ **步驟 2： branchOnSourceEC2Provided：**驗證輸入參數中是否提供來源 Amazon EC2 執行個體 ID。
+ **步驟 3：validateRDSConnectivity：**如果提供，則從來源 Amazon EC2 執行個體驗證 Amazon RDS 連線。
+ **步驟 4： validateRDSIAMAuthentication：**驗證 IAM 驗證功能是否已啟用。
+ **步驟 5： validateIAMPolicies：**驗證所提供的 IAM 使用者/角色中是否存在所需的 IAM 許可。
+ **步驟 6： generateReport：**產生先前執行步驟結果的報告。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDSIAMAuthentication) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ RDSType

  類型：字串

  描述：（必要）：選取您嘗試連線和驗證的關聯式資料庫類型。

  允許的值： `Amazon RDS` 或 `Amazon Aurora Cluster.` 
+ DBInstanceIdentifier

  類型：字串

  描述：（必要） 目標 Amazon RDS 資料庫執行個體或 Aurora 資料庫叢集的識別符。

  允許模式： `^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$`

  最大字元數：63
+ SourceEc2InstanceIdentifier

  類型：`AWS::EC2::Instance::Id`

  描述：（選用） 如果您要從相同帳戶和區域中執行的 Amazon EC2 執行個體連線至 Amazon RDS 資料庫執行個體，則為 Amazon EC2 執行個體 ID。如果來源不是 Amazon EC2 執行個體或目標 Amazon RDS 類型是 Aurora 資料庫叢集，請勿指定此參數。

  預設：`""`
+ DBIAMRoleName

  類型：字串

  描述：（選用） 用於 IAM 型身分驗證的 IAM 角色名稱。只有在`DBIAMUserName`未提供 參數時才提供，否則請將其保留空白。必須提供 `DBIAMRoleName` 或 `DBIAMUserName`。

  允許模式： `^[a-zA-Z0-9+=,.@_-]{1,64}$|^$`

  最大字元數：64

  預設：`""`
+ DBIAMUserName

  類型：字串

  描述：（選用） 用於 IAM 型身分驗證的 IAM 使用者名稱。只有在未提供 `DBIAMRoleName` 參數時才提供，否則請將其保留空白。必須提供 `DBIAMRoleName` 或 `DBIAMUserName`。

  允許模式： `^[a-zA-Z0-9+=,.@_-]{1,64}$|^$`

  最大字元數：64

  預設：`""`
+ DBUserName

  類型：字串

  描述：（選用） 映射至 IAM 角色/使用者的資料庫使用者名稱，以在資料庫中進行 IAM 型身分驗證。預設選項會`*`評估資料庫中所有使用者是否允許 `rds-db:connect`許可。

  允許模式： `^[a-zA-Z0-9+=,.@*_-]{1,64}$`

  最大字元數：64

  預設：`*`

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:DescribeInstances`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `iam:GetPolicy`
+ `iam:GetRole`
+ `iam:GetUser`
+ `iam:ListAttachedRolePolicies`
+ `iam:ListAttachedUserPolicies`
+ `iam:ListRolePolicies`
+ `iam:ListUserPolicies`
+ `iam:SimulatePrincipalPolicy`
+ `rds:DescribeDBClusters`
+ `rds:DescribeDBInstances`
+ `ssm:DescribeAutomationStepExecutions`
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`

 **指示** 

1. 導覽至 AWS Systems Manager 主控台中的 [AWSSupport-TroubleshootRDSIAMAuthentication](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDSIAMAuthentication)。

1. 選取**執行自動化**

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **RDSType （必要）：**

     選取您嘗試連線和驗證的 Amazon RDS 類型。從兩個允許的值中選擇： `Amazon RDS` 或 `Amazon Aurora Cluster.`
   + **DBInstanceIdentifier （必要）：**

     輸入您嘗試連線的目標 Amazon RDS 資料庫執行個體或 Aurora 叢集的識別符，並使用 IAM 登入資料進行身分驗證。
   + **SourceEc2InstanceIdentifier （選用）：**

     如果您要從位於相同帳戶和區域的 Amazon EC2 執行個體連線至 Amazon RDS 資料庫執行個體，請提供 Amazon EC2 執行個體 ID。如果來源不是 Amazon EC2 或目標 Amazon RDS 類型是 Aurora 叢集，請保留空白。
   + **DBIAMRoleName （選用）：**

     輸入用於 IAM 型身分驗證的 IAM 角色名稱。只有在`DBIAMUserName`未提供 時才提供；否則，請保留空白。必須提供 `DBIAMRoleName` 或 `DBIAMUserName`。
   + **DBIAMUserName （選用）：**

      輸入用於 IAM 型身分驗證的 IAM 使用者。只有在`DBIAMRoleName`未提供 時才提供 ，否則請保留空白。必須提供 `DBIAMRoleName` 或 `DBIAMUserName`。
   + **DBUserName （選用）：**

     輸入映射至 IAM 角色/使用者的資料庫使用者，以在資料庫中進行以 IAM 為基礎的身分驗證。預設選項`*`用於評估；此欄位未提供任何內容。  
![\[Input parameters form for AWS Systems Manager with fields for EC2 instance and database configuration.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-rds-iam-authentication_input_parameters.png)

1. 選取**執行**。

1. 請注意，自動化會啟動。

1. 文件會執行下列步驟：
   + **步驟 1： validateInputs：**

     驗證自動化的輸入 - `SourceEC2InstanceIdentifier`（選用）、 `DBInstanceIdentifier`或 `ClusterID`，以及 `DBIAMRoleName`或 `DBIAMUserName`。它會驗證輸入的輸入參數是否存在於您的帳戶和區域中。它也會驗證使用者是否輸入其中一個 IAM 參數 （例如 `DBIAMRoleName`或 `DBIAMUserName`)。此外，它會執行其他驗證，例如，如果提及的資料庫處於可用狀態。
   + **步驟 2： branchOnSourceEC2Provided：**

     驗證來源 Amazon EC2 是否在輸入參數中提供，而資料庫是 Amazon RDS。如果是，它會繼續進行步驟 3。如果沒有，它會略過步驟 3，即 Amazon EC2-Amazon RDS 連線驗證，並繼續進行步驟 4。
   + **步驟 3： validateRDSConnectivity：**

     如果在輸入參數中提供來源 Amazon EC2，且資料庫是 Amazon RDS，則步驟 2 會啟動步驟 3。在此步驟中，`AWSSupport-TroubleshootConnectivityToRDS`會叫用子自動化，以驗證來源 Amazon EC2 的 Amazon RDS 連線能力。子自動化 Runbook `AWSSupport-TroubleshootConnectivityToRDS` 會驗證所需的網路組態 (Amazon Virtual Private Cloud 【Amazon VPC】、安全群組、網路存取控制清單 【NACL】、Amazon RDS 可用性） 是否已到位，以便您可以從 Amazon EC2 執行個體連線至 Amazon RDS 執行個體。
   + **步驟 4： validateRDSIAMAuthentication：**

     驗證是否已在 Amazon RDS 執行個體或 Aurora 叢集上啟用 IAM 身分驗證功能。
   + **步驟 5：validateIAMPolicies：**

     驗證傳遞的 IAM 使用者/角色中是否存在必要的 IAM 許可，以讓 IAM 登入資料能夠驗證指定資料庫使用者的 Amazon RDS 執行個體 （如果有的話）。
   + **步驟 6： generateReport：**

     從先前的步驟取得所有資訊，並列印每個步驟的結果或輸出。它還列出了使用 IAM 登入資料連接到 Amazon RDS 執行個體的參考和執行步驟。

1. 自動化完成後，請檢閱**輸出**區段以取得詳細結果：
   + **檢查連線至資料庫的 IAM 使用者/角色許可：**

     驗證傳遞的 IAM 使用者/角色中是否存在所需的 IAM 許可，讓 IAM 登入資料能夠向指定資料庫使用者的 Amazon RDS 執行個體進行身分驗證 （如果有的話）。
   + **檢查資料庫的 IAM 型身分驗證屬性：**

     驗證是否已為指定的 Amazon RDS 資料庫/Aurora 叢集啟用 IAM 身分驗證功能。
   + **檢查從 Amazon EC2 執行個體到 Amazon RDS 執行個體的連線：**

     驗證所需的網路組態 (Amazon VPC、安全群組、NACL、Amazon RDS 可用性） 是否已就緒，以便從 Amazon EC2 執行個體連線至 Amazon RDS 執行個體。
   + **後續步驟:**

     列出使用 IAM 登入資料連接到 Amazon RDS 執行個體的參考和執行命令和步驟。  
![\[Troubleshooting results for IAM permissions and authentication for an Aurora MySQL database.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-rds-iam-authentication_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDSIAMAuthentication)
+ [執行自動化](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-ValidateRdsNetworkConfiguration`
<a name="automation-aws-validate-rds-network-configuration"></a>

 **Description** 

 `AWSSupport-ValidateRdsNetworkConfiguration` 自動化有助於在執行 `ModifyDBInstance`或 `StartDBInstance`操作之前，避免現有 Amazon Relational Database Service (Amazon RDS)/Amazon Aurora/Amazon DocumentDB 執行個體的不相容網路狀態。如果執行個體已處於不相容的網路狀態，則 Runbook 將提供原因。

 **如何運作？** 

此 Runbook 會判斷您的 Amazon RDS 資料庫執行個體是否會進入不相容的網路狀態，或者，如果它具有，則判斷它是否處於不相容的網路狀態。

Runbook 會對 Amazon RDS 資料庫執行個體執行下列檢查：
+ 每個區域的 Amazon Elastic Network Interface (ENI) 配額。
+ 資料庫子網路群組中的所有子網路都存在。
+ 子網路有足夠的可用 IP 地址 （可用）。
+ （適用於可公開存取的 Amazon RDS 執行個體） VPC 屬性的設定 (`enableDnsSupport` 和 `enableDnsHostnames`)。

**重要**  
針對 Amazon Aurora / Amazon DocumentDB 叢集使用本文件時，請確定您使用 `DBInstanceIdentifier`而非 `ClusterIdentifier`。否則，文件會在第一個步驟失敗。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ValidateRdsNetworkConfiguration) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `rds:DescribeDBInstances`
+ `servicequotas:GetServiceQuota`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeVpcAttribute`
+ `ec2:DescribeSubnets`

範例政策：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ValidateRdsNetwork",
            "Effect": "Allow",
            "Action": [
                "rds:DescribeDBInstances",
                "servicequotas:GetServiceQuota",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeSubnets"
            ],
            "Resource": [
                "arn:aws:rds:us-east-1:111122223333:db:db-instance-name"
            ]
        }
    ]
}
```

------

 **指示** 

1. 導覽至 AWS Systems Manager 主控台中的 [AWSSupport-ValidateRdsNetworkConfiguration](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ValidateRdsNetworkConfiguration)。

1. 選取**執行自動化**

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **DBInstanceIdentifier （必要）：**

     輸入 Amazon Relational Database Service 執行個體識別符。  
![\[Input parameters form with AutomationAssumeRole and DBInstanceIdentifier fields.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-validate-rds-network-configuration_input_parameters.png)

1. 選取**執行**。

1. 請注意，自動化會啟動。

1. 文件會執行下列步驟：
   + **步驟 1：assertRdsState：**

     檢查提供的執行個體識別符是否存在，並具有下列任何狀態：`available`、 `stopped`或 `incompatible-network`。
   + **步驟 2：gatherRdsInformation：**

     收集有關 Amazon RDS 執行個體的必要資訊，以供稍後在自動化中使用。
   + **步驟 3：checkEniQuota：**

     檢查區域目前可用的 Amazon ENI 配額。
   + **步驟 4： validateVpcAttributes：**

     驗證 Amazon VPC 的 DNS 參數 (`enableDnsSupport` 和 `enableDnsHostnames`) 是否設為 true （如果 Amazon RDS 執行個體為 則不是 `PubliclyAccessible`)。
   + **步驟 5： validateSubnetAttributes：**

     驗證 中是否存在子網路，`DBSubnetGroup`並檢查每個子網路的可用 IPs。
   + **步驟 6： generateReport：**

     從先前的步驟取得所有資訊，並列印每個步驟的結果或輸出。它還列出了使用 IAM 憑證連接到 Amazon RDS 執行個體的參考和執行步驟。

1. 自動化完成時，請檢閱**輸出**區段以取得詳細結果：

   具有有效網路組態的 Amazon RDS 執行個體：  
![\[Report showing successful AWS RDS network configuration checks with all items passed.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-validate-rds-network-configuration_outputs_valid_network.png)

   網路組態不正確的 Amazon RDS 執行個體 (VPC 屬性 enableDnsHostnames 設定為 false)：  
![\[Network configuration report showing issues and troubleshooting results for an RDS instance.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-validate-rds-network-configuration_outputs_invalid_network.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ValidateRdsNetworkConfiguration)
+ [執行自動化](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 RDS 資料庫的問題？](https://repost.aws/knowledge-center/rds-incompatible-network)
+ [如何解決處於不相容網路狀態之 Amazon DocumentDB 執行個體的問題？](https://repost.aws/knowledge-center/documentdb-incompatible-network)

# Amazon Redshift
<a name="automation-ref-rs"></a>

 AWS Systems Manager 自動化為 Amazon Redshift 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-DeleteRedshiftCluster`](automation-aws-delete-redshift.md)
+ [`AWSConfigRemediation-DisablePublicAccessToRedshiftCluster`](automation-aws-disable-redshift-public-access.md)
+ [`AWSConfigRemediation-EnableRedshiftClusterAuditLogging`](automation-aws-enable-redshift-audit.md)
+ [`AWSConfigRemediation-EnableRedshiftClusterAutomatedSnapshot`](automation-aws-enable-redshift-snapshot.md)
+ [`AWSConfigRemediation-EnableRedshiftClusterEncryption`](automation-aws-enable-redshift-encrypt.md)
+ [`AWSConfigRemediation-EnableRedshiftClusterEnhancedVPCRouting`](automation-aws-enable-redshift-enhanced-routing.md)
+ [`AWSConfigRemediation-EnforceSSLOnlyConnectionsToRedshiftCluster`](automation-aws-enforce-redshift-ssl-only.md)
+ [`AWSConfigRemediation-ModifyRedshiftClusterMaintenanceSettings`](automation-aws-modify-redshift-maintenance.md)
+ [`AWSConfigRemediation-ModifyRedshiftClusterNodeType`](automation-aws-modify-redshift-cluster-node.md)

# `AWSConfigRemediation-DeleteRedshiftCluster`
<a name="automation-aws-delete-redshift"></a>

 **Description** 

 `AWSConfigRemediation-DeleteRedshiftCluster` Runbook 會刪除您指定的 Amazon Redshift 叢集。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteRedshiftCluster) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ ClusterIdentifier

  類型：字串

  描述：（必要） 您要刪除的 Amazon Redshift 叢集 ID。
+ SkipFinalClusterSnapshot

  類型：布林值

  預設：false

   描述：（選用） 如果設定為 `false` ，自動化會在刪除 Amazon Redshift 叢集之前建立快照。如果設定為 `true` ，則不會建立最終叢集快照。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `redshift:DeleteCluster` 
+  `redshift:DescribeClusters` 

 **文件步驟** 
+  `aws:branch` - 根據您為 `SkipFinalClusterSnapshot` 參數指定的值進行分支。
+  `aws:executeAwsApi` - 刪除 `ClusterIdentifier` 參數中指定的 Amazon Redshift 叢集。
+  `aws:assertAwsResourceProperty` - 驗證已刪除 Amazon Redshift 叢集。

# `AWSConfigRemediation-DisablePublicAccessToRedshiftCluster`
<a name="automation-aws-disable-redshift-public-access"></a>

 **Description** 

 `AWSConfigRemediation-DisablePublicAccessToRedshiftCluster` Runbook 會停用您指定之 Amazon Redshift 叢集的公有可存取性。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DisablePublicAccessToRedshiftCluster) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ ClusterIdentifier

  類型：字串

  描述：（必要） 您要停用公開可存取性之叢集的唯一識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `redshift:DescribeClusters` 
+  `redshift:ModifyCluster` 

 **文件步驟** 
+  `aws:executeAwsApi` - 停用 `ClusterIdentifier` 參數中指定之叢集的公有可存取性。
+  `aws:waitForAwsResourceProperty` - 等待叢集的狀態變更為 `available` 。
+  `aws:assertAwsResourceProperty` - 確認叢集上已停用公有可存取性設定。

# `AWSConfigRemediation-EnableRedshiftClusterAuditLogging`
<a name="automation-aws-enable-redshift-audit"></a>

 **Description** 

 `AWSConfigRemediation-EnableRedshiftClusterAuditLogging` Runbook 會為您指定的 Amazon Redshift 叢集啟用稽核記錄。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableRedshiftClusterAuditLogging) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ BucketName

  類型：字串

  描述：（必要） 您要上傳日誌的 Amazon Simple Storage Service (Amazon S3) 儲存貯體名稱。
+ ClusterIdentifier

  類型：字串

  描述：（必要） 您要啟用稽核記錄之叢集的唯一識別符。
+ S3KeyPrefix

  類型：字串

  描述：（選用） 您要上傳日誌的 Amazon S3 金鑰字首 （子資料夾）。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `redshift:DescribeLoggingStatus` 
+  `redshift:EnableLogging` 
+  `s3:GetBucketAcl` 
+  `s3:PutObject` 

 **文件步驟** 
+  `aws:branch` - 根據是否已為 `S3KeyPrefix` 參數指定值進行分支。
+  `aws:executeAwsApi` - 在 `ClusterIdentifier` 參數中指定的叢集上啟用稽核記錄。
+  `aws:assertAwsResourceProperty` - 驗證是否已在叢集上啟用稽核記錄。

# `AWSConfigRemediation-EnableRedshiftClusterAutomatedSnapshot`
<a name="automation-aws-enable-redshift-snapshot"></a>

 **Description** 

 `AWSConfigRemediation-EnableRedshiftClusterAutomatedSnapshot` Runbook 會為您指定的 Amazon Redshift 叢集啟用自動快照。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableRedshiftClusterAutomatedSnapshot) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ AutomatedSnapshotRetentionPeriod

  類型：整數

  有效值：1-35

  描述：（必要） 自動化快照保留的天數。
+ ClusterIdentifier

  類型：字串

  描述：（必要） 您要啟用自動快照之叢集的唯一識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `redshift:DescribeClusters` 
+  `redshift:ModifyCluster` 

 **文件步驟** 
+  `aws:executeAwsApi` - 在 `ClusterIdentifier` 參數中指定的叢集上啟用自動化快照。
+  `aws:waitForAwsResourceProperty` - 等待叢集的狀態變更為 `available` 。
+  `aws:executeScript` - 確認已在叢集上啟用自動快照。

# `AWSConfigRemediation-EnableRedshiftClusterEncryption`
<a name="automation-aws-enable-redshift-encrypt"></a>

 **Description** 

 `AWSConfigRemediation-EnableRedshiftClusterEncryption` Runbook 會在您使用 AWS Key Management Service (AWS KMS) 客戶受管金鑰指定的 Amazon Redshift 叢集上啟用加密。此 Runbook 應僅用作基準，以確保您的 Amazon Redshift 叢集根據最低建議的安全最佳實務進行加密。我們建議使用不同的客戶受管金鑰加密多個叢集。此 Runbook 無法變更已加密叢集上使用 AWS KMS 的客戶受管金鑰。若要變更用於加密叢集 AWS KMS 的客戶受管金鑰，您必須先停用叢集上的加密。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableRedshiftClusterEncryption) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ ClusterIdentifier

  類型：字串

  描述：（必要） 您要啟用加密之叢集的唯一識別符。
+ KMSKeyARN

  類型：字串

  描述：（必要） 您要用來加密叢集資料的 客戶受管金鑰的 AWS KMS Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `redshift:DescribeClusters` 
+  `redshift:ModifyCluster` 

 **文件步驟** 
+  `aws:executeAwsApi` - 在 `ClusterIdentifier` 參數中指定的 Amazon Redshift 叢集上啟用加密。
+  `aws:assertAwsResourceProperty` - 驗證叢集上已啟用加密。

# `AWSConfigRemediation-EnableRedshiftClusterEnhancedVPCRouting`
<a name="automation-aws-enable-redshift-enhanced-routing"></a>

 **Description** 

 `AWSConfigRemediation-EnableRedshiftClusterEnhancedVPCRouting` Runbook 會為您指定的 Amazon Redshift 叢集啟用增強型虛擬私有雲端 (VPC) 路由。如需增強型 VPC 路由的相關資訊，請參閱《[Amazon Redshift 管理指南》中的 Amazon Redshift 增強型 VPC 路由](https://docs.aws.amazon.com/redshift/latest/gsg/enhanced-vpc-routing.html)。 **

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableRedshiftClusterEnhancedVPCRouting) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ ClusterIdentifier

  類型：字串

  描述：（必要） 您要啟用增強型 VPC 路由之叢集的唯一識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `redshift:DescribeClusters` 
+  `redshift:ModifyCluster` 

 **文件步驟** 
+  `aws:executeAwsApi` - 在 `ClusterIdentifier` 參數中指定的叢集上啟用增強型 VPC 路由。
+  `assertAwsResourceProperty` - 確認已在叢集上啟用增強型 VPC 路由。

# `AWSConfigRemediation-EnforceSSLOnlyConnectionsToRedshiftCluster`
<a name="automation-aws-enforce-redshift-ssl-only"></a>

 **Description** 

 `AWSConfigRemediation-EnforceSSLOnlyConnectionsToRedshiftCluster` Runbook 需要傳入連線，才能為您指定的 Amazon Redshift 叢集使用 SSL。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnforceSSLOnlyConnectionsToRedshiftCluster) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ ClusterIdentifier

  類型：字串

  描述：（必要） 您要啟用增強型 VPC 路由之叢集的唯一識別符。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `redshift:DescribeClusters` 
+  `redshift:DescribeClusterParameters` 
+  `redshift:ModifyClusterParameterGroup` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從 參數中指定的叢集收集`ClusterIdentifier`參數詳細資訊。
+  `aws:executeAwsApi` - 在 `ClusterIdentifier` 參數中指定的叢集上啟用 `require_ssl`設定。
+  `aws:assertAwsResourceProperty` - 確認已在叢集上啟用`require_ssl`設定。
+  `aws:executeScript` - 驗證叢集`require_ssl`的設定。

# `AWSConfigRemediation-ModifyRedshiftClusterMaintenanceSettings`
<a name="automation-aws-modify-redshift-maintenance"></a>

 **Description** 

 `AWSConfigRemediation-ModifyRedshiftClusterMaintenanceSettings` Runbook 會修改您指定的 Amazon Redshift 叢集的維護設定。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-ModifyRedshiftClusterMaintenanceSettings) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AllowVersionUpgrade

  類型：布林值

   描述：（必要） 如果設定為 `true` ，主要版本升級會在維護時段期間自動套用至叢集。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ AutomatedSnapshotRetentionPeriod

  類型：整數

  有效值：1-35

  描述：（必要） 保留自動快照的天數。
+ ClusterIdentifier

  類型：字串

  描述：（必要） 您要啟用增強型 VPC 路由之叢集的唯一識別符。
+ PreferredMaintenanceWindow

  類型：字串

  描述：（必要） 系統維護可能發生的每週時間範圍 (UTC)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `redshift:DescribeClusters` 
+  `redshift:ModifyCluster` 

 **文件步驟** 
+  `aws:executeAwsApi` - 修改 `ClusterIdentifier` 參數中指定叢集的維護設定。
+  `aws:assertAwsResourceProperty` - 確認已為叢集設定修改後的維護設定。

# `AWSConfigRemediation-ModifyRedshiftClusterNodeType`
<a name="automation-aws-modify-redshift-cluster-node"></a>

 **Description** 

 `AWSConfigRemediation-ModifyRedshiftClusterNodeType` Runbook 會修改您指定之 Amazon Redshift 叢集的節點類型和節點數量。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-ModifyRedshiftClusterNodeType) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ 傳統

  類型：布林值

   描述：（選用） 如果設定為 `true` ，調整大小操作會使用傳統調整大小程序。
+ ClusterIdentifier

  類型：字串

  描述：（必要） 您要修改其節點類型之叢集的唯一識別符。
+ ClusterType

  類型：字串

  有效值：單一節點 \$1 多節點

  描述：（必要） 您要指派給叢集的叢集類型。
+ NodeType

  類型：字串

  有效值：ds2.xlarge \$1 ds2.8xlarge \$1 dc1.large \$1 dc1.8xlarge \$1 dc2.large \$1 dc2.8xlarge \$1 ra3.4xlarge \$1 ra3.16xlarge

  描述：（必要） 您要指派給叢集的節點類型。
+ NumberOfNodes

  類型：整數

  有效值：2-100

   描述：（選用） 您要指派給叢集的節點數量。如果您的叢集是 `single-node`類型，請勿為此參數指定值。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `redshift:DescribeClusters` 
+  `redshift:ResizeCluster` 

 **文件步驟** 
+  `aws:executeScript` - 修改 `ClusterIdentifier` 參數中指定之叢集的節點類型和節點數量。

# Amazon S3
<a name="automation-ref-s3"></a>

 AWS Systems Manager 自動化為 Amazon Simple Storage Service 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-ArchiveS3BucketToIntelligentTiering`](automation-aws-archives3buckettointelligenttiering.md)
+ [`AWS-ConfigureS3BucketLogging`](automation-aws-configures3bucketlogging.md)
+ [`AWS-ConfigureS3BucketVersioning`](automation-aws-configures3bucketversioning.md)
+ [`AWSConfigRemediation-ConfigureS3BucketPublicAccessBlock`](automation-aws-block-public-s3-bucket.md)
+ [`AWSConfigRemediation-ConfigureS3PublicAccessBlock`](automation-aws-block-public-s3.md)
+ [`AWS-CreateS3PolicyToExpireMultipartUploads`](AWS-CreateS3PolicyToExpireMultipartUploads.md)
+ [`AWS-DisableS3BucketPublicReadWrite`](automation-aws-disables3bucketpublicreadwrite.md)
+ [`AWS-EnableS3BucketEncryption`](automation-aws-enableS3bucketencryption.md)
+ [`AWS-EnableS3BucketKeys`](automation-aws-enableS3bucketkeys.md)
+ [`AWSConfigRemediation-RemovePrincipalStarFromS3BucketPolicy`](automation-aws-remove-s3-wildcard.md)
+ [`AWSConfigRemediation-RestrictBucketSSLRequestsOnly`](automation-aws-s3-deny-http.md)
+ [`AWSSupport-TroubleshootS3PublicRead`](automation-awssupport-troubleshoots3publicread.md)
+ [`AWSSupport-ConfigureS3ReplicationSameAndCrossAccount`](automation-aws-configures3replicationsameandcrossaccount.md)
+ [`AWSSupport-EmptyS3Bucket`](automation-aws-empty-s3-bucket.md)
+ [`AWSSupport-TroubleshootS3EventNotifications`](awssupport-troubleshoot-s3-event-notifications.md)
+ [`AWSSupport-ContainS3Resource`](automation-awssupport-contains3resource.md)

# `AWS-ArchiveS3BucketToIntelligentTiering`
<a name="automation-aws-archives3buckettointelligenttiering"></a>

 **Description** 

`AWS-ArchiveS3BucketToIntelligentTiering` Runbook 會為您指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體建立或取代智慧型分層組態。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ArchiveS3BucketToIntelligentTiering) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ BucketName

  類型：字串

  描述：（必要） 您要為其建立智慧型分層組態的 S3 儲存貯體名稱。
+ ConfigurationId

  類型：字串

   描述：（必要） 智慧型分層組態的 ID。這可以是新的組態 ID，或現有組態的 ID。
+ NumberOfDaysToArchive

  類型：字串

  有效值：90-730

  描述：（必要） 儲存貯體中物件符合轉換為 Archive Access 層的資格後的連續天數。
+ NumberOfDaysToDeepArchive

  類型：字串

  有效值：180-730

  描述：（必要） 儲存貯體中物件符合轉換至 Deep Archive Access 層的資格後的連續天數。
+ S3Prefix

  類型：字串

  描述：（選用） 您要套用組態之物件的金鑰名稱字首。
+ Tags (標籤)

  類型：MapList

  描述：（選用） 指派給您要套用組態之物件的中繼資料。標籤由使用者定義的索引鍵和值組成。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `s3:GetIntelligentTieringConfiguration`
+ `s3:PutIntelligentTieringConfiguration`

 **文件步驟** 
+ PutsBucketIntelligentTieringConfiguration (aws：executeScript) - 建立或更新指定儲存貯體的 Amazon S3 Intelligent-Tiering 組態。
+ VerifyBucketIntelligentTieringConfiguration (aws：assertAwsResourceProperty) - 驗證 S3 儲存貯體智慧型組態已套用至指定的儲存貯體。

# `AWS-ConfigureS3BucketLogging`
<a name="automation-aws-configures3bucketlogging"></a>

 **Description** 

在 Amazon Simple Storage Service (Amazon S3) 儲存貯體上啟用記錄。

**重要**  
請注意下列有關此 Runbook 所使用的 Amazon S3 [PutBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) API 的電子郵件承授者 ACL 的重要資訊：  
終止支援通知：自 2025 年 10 月 1 日起，Amazon S3 將停止支援建立新電子郵件承授者存取控制清單 (ACL)。在此日期之前建立的電子郵件承授者 ACLs 將繼續運作，並可透過 AWS 管理主控台、 AWS CLI (CLI)、 SDKs 和 REST API 存取。不過，您將無法再建立新的電子郵件承授者 ACL。在 2025 年 7 月 15 日至 2025 年 10 月 1 日期間，當嘗試建立新的電子郵件承授者 ACLs 時，您會開始看到 Amazon S3 請求的 HTTP 405 錯誤率增加。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ConfigureS3BucketLogging) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ BucketName

  類型：字串

  描述：（必要） 您要為其設定記錄的 Amazon S3 儲存貯體名稱。
+ GrantedPermission

  類型：字串

  有效值：FULL\$1CONTROL \$1 READ \$1 WRITE

  描述：(選用) 指派給儲存貯體之被授予者的記錄許可。
+ GranteeEmailAddress

  類型：字串

  (選用) 被授予者的電子郵件地址。
+ GranteeId

  類型：字串

  描述：(選用) 被授予者的正式使用者 ID。
+ GranteeType

  類型：字串

  有效值：CanonicalUser \$1 AmazonCustomerByEmail \$1 群組

  描述：(必要) 被授予者的類型。
+ GranteeUri

  類型：字串

  描述：(選用) 被授予者群組的 URI。
+ TargetBucket

  類型：字串

  描述：（必要） 指定您希望 Amazon S3 存放伺服器存取日誌的儲存貯體。您可以將日誌傳送到您擁有的任何儲存貯體。您也可以設定多個儲存貯體，以將其日誌傳送至相同的目標儲存貯體。在此情況下，您應該針對各個來源儲存貯體選擇不同的 TargetPrefix，讓傳送的日誌檔案能夠以索引鍵區分。
+ TargetPrefix

  類型：字串

  預設：/

  描述：(選用) 為索引鍵指定字首，而日誌檔案將會存放於索引鍵之下。

# `AWS-ConfigureS3BucketVersioning`
<a name="automation-aws-configures3bucketversioning"></a>

 **Description** 

設定 Amazon Simple Storage Service (Amazon S3) 儲存貯體的版本控制。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ConfigureS3BucketVersioning) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ BucketName

  類型：字串

  描述：（必要） 您要設定版本控制的 Amazon S3 儲存貯體名稱。
+ VersioningState

  類型：字串

  有效值：已啟用 \$1 已暫停

  預設：Enabled

   描述：(選用) 套用至 VersioningConfiguration.Status。設為「Enabled」(啟用) 時，此程序會啟用儲存貯體之物件的版本控制，而所有新增至儲存貯體的物件都會收到唯一的版本 ID。設為 `Suspended` 時，此程序會停用儲存貯體中物件的版本控制。新增至儲存貯體的所有物件都會收到版本 ID `null` 。

# `AWSConfigRemediation-ConfigureS3BucketPublicAccessBlock`
<a name="automation-aws-block-public-s3-bucket"></a>

 **Description** 

 Runbook 會根據您在 `AWSConfigRemediation-ConfigureS3BucketPublicAccessBlock` Runbook 參數中指定的值，設定 Amazon S3 儲存貯體的 Amazon Simple Storage Service (Amazon S3) 公有存取區塊設定。 Amazon S3 

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-ConfigureS3BucketPublicAccessBlock) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ BlockPublicAcls

  類型：布林值

  預設：true

   描述：（選用） 如果設為 `true` ，Amazon S3 會封鎖 S3 儲存貯體的公有存取控制清單 (ACLs)，以及存放在您在 `BucketName` 參數中指定的 S3 儲存貯體中的物件。
+ BlockPublicPolicy

  類型：布林值

  預設：true

   描述：（選用） 如果設定為 `true` ，Amazon S3 會針對您在 `BucketName` 參數中指定的 S3 儲存貯體封鎖公有儲存貯體政策。
+ BucketName

  類型：字串

  描述：（必要） 您要設定的 S3 儲存貯體名稱。
+ IgnorePublicAcls

  類型：布林值

  預設：true

   描述：（選用） 如果設定為 `true` ，Amazon S3 會忽略您在 `BucketName` 參數中指定之 S3 儲存貯體的所有公ACLs。
+ RestrictPublicBuckets

  類型：布林值

  預設：true

   描述：（選用） 如果設定為 `true` ，Amazon S3 會限制您在 `BucketName` 參數中指定的 S3 儲存貯體的公有儲存貯體政策。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `s3:GetAccountPublicAccessBlock` 
+  `s3:PutAccountPublicAccessBlock` 
+  `s3:GetBucketPublicAccessBlock` 
+  `s3:PutBucketPublicAccessBlock` 

 **文件步驟** 
+  `aws:executeAwsApi` - 建立或修改 `BucketName` 參數中指定之 S3 儲存貯體的`PublicAccessBlock`組態。
+  `aws:executeScript` - 傳回 `BucketName` 參數中指定之 S3 儲存貯體的`PublicAccessBlock`組態，並根據 Runbook 參數中指定的值驗證已成功進行變更。

# `AWSConfigRemediation-ConfigureS3PublicAccessBlock`
<a name="automation-aws-block-public-s3"></a>

 **Description** 

 Runbook 會根據您在 `AWSConfigRemediation-ConfigureS3PublicAccessBlock` Runbook 參數中指定的值，設定 AWS 帳戶的 Amazon Simple Storage Service (Amazon S3) 公有存取區塊設定。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-ConfigureS3PublicAccessBlock) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AccountId

  類型：字串

  描述：（必要） AWS 帳戶 擁有您正在設定的 S3 儲存貯體的 ID。
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ BlockPublicAcls

  類型：布林值

  預設：true

   描述：（選用） 如果設定為 `true` ，Amazon S3 會針對 AWS 帳戶 您在 `AccountId` 參數中指定的 所擁有的 S3 儲存貯體，封鎖其公開存取控制清單 (ACLs)。
+ BlockPublicPolicy

  類型：布林值

  預設：true

   描述：（選用） 如果設定為 `true` ，Amazon S3 會針對 AWS 帳戶 您在 `AccountId` 參數中指定的 所擁有的 S3 儲存貯體，封鎖其公有儲存貯體政策。
+ IgnorePublicAcls

  類型：布林值

  預設：true

   描述：（選用） 如果設定為 `true` ，Amazon S3 會忽略 AWS 帳戶 您在 `AccountId` 參數中指定之 擁有的 S3 儲存貯體的所有公有 ACLs。
+ RestrictPublicBuckets

  類型：布林值

  預設：true

   描述：（選用） 如果設定為 `true` ，Amazon S3 會限制 AWS 帳戶 您在 `AccountId` 參數中指定之 擁有的 S3 儲存貯體的公有儲存貯體政策。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `s3:GetAccountPublicAccessBlock` 
+  `s3:PutAccountPublicAccessBlock` 

 **文件步驟** 
+  `aws:executeAwsApi` - 建立或修改 `AccountId` 參數中指定 AWS 帳戶 的`PublicAccessBlock`組態。
+  `aws:executeScript` - 傳回 `AccountId` 參數中 AWS 帳戶 指定 的`PublicAccessBlock`組態，並根據 Runbook 參數中指定的值驗證已成功進行變更。

# `AWS-CreateS3PolicyToExpireMultipartUploads`
<a name="AWS-CreateS3PolicyToExpireMultipartUploads"></a>

 **Description** 

`AWS-CreateS3PolicyToExpireMultipartUploads` Runbook 會為指定的儲存貯體建立生命週期政策，該政策會在定義的天數後過期未完成的分段上傳進行中。此 Runbook 會將新的生命週期政策與已存在的任何現有生命週期儲存貯體政策合併。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateS3PolicyToExpireMultipartUploads) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ BucketName

  類型：字串

  描述：（必要） 您要設定的 S3 儲存貯體名稱。
+ DaysUntilExpire

  類型：整數

   描述：（必要） Amazon S3 在永久移除上傳的所有部分之前等待的天數。
+ RuleId

  類型：字串

   描述：（必要） 用於識別生命週期儲存貯體規則的 ID。這必須是唯一的值。
+ S3Prefix

  類型：字串

   描述：（選用） 您要套用組態之物件的金鑰名稱字首。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `s3:GetLifecycleConfiguration`
+ `s3:PutLifecycleConfiguration`

 **文件步驟** 
+ ConfigureExpireMultipartUploads (aws：executeScript) - 設定儲存貯體的生命週期政策。
+ VerifyExpireMultipartUploads (aws：executeScript) - 驗證已為儲存貯體設定生命週期政策。

 **輸出** 
+ `VerifyExpireMultipartUploads.VerifyExpireMultipartUploadsResponse`
+ `VerifyExpireMultipartUploads.LifecycleConfigurationRule`

# `AWS-DisableS3BucketPublicReadWrite`
<a name="automation-aws-disables3bucketpublicreadwrite"></a>

 **Description** 

 使用 Amazon Simple Storage Service (Amazon S3) `Block Public Access` 停用公有 S3 儲存貯體的讀取和寫入存取權。如需詳細資訊，請參閱[《Amazon Simple Storage Service 使用者指南》中的使用 Amazon S3 封鎖公開存取](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html)。 **

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DisableS3BucketPublicReadWrite) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ S3BucketName

  類型：字串

  描述：(必要) 您想要限制存取的 S3 儲存貯體。

# `AWS-EnableS3BucketEncryption`
<a name="automation-aws-enableS3bucketencryption"></a>

 **Description** 

設定 Amazon Simple Storage Service (Amazon S3) 儲存貯體的預設加密。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableS3BucketEncryption) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ BucketName

  類型：字串

  描述：(必要) 您想要加密內容的 S3 儲存貯體之名稱。
+ SSEAlgorithm

  類型：字串

  預設：AES256

  描述：(選用) 用於預設加密的伺服器端加密演算法。

# `AWS-EnableS3BucketKeys`
<a name="automation-aws-enableS3bucketkeys"></a>

 **Description** 

`AWS-EnableS3BucketKeys` Runbook 會在您指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體上啟用儲存貯體金鑰。此儲存貯體層級金鑰會在其生命週期期間為新物件建立資料金鑰。如果您未指定 `KmsKeyId` 參數的值，則使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密會用於預設加密組態。

**注意**  
使用 AWS Key Management Service (AWS KMS) 金鑰 (DSSE-KMS) 的雙層伺服器端加密不支援 Amazon S3 儲存貯體金鑰。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableS3BucketKeys) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ BucketName

  類型：字串

  描述：（必要） 您要為其啟用儲存貯體金鑰的 S3 儲存貯體名稱。
+ KMSKeyId

  類型：字串

   描述：（選用） 要用於伺服器端加密的 Amazon Resource Name (ARN)、金鑰 ID 或 AWS Key Management Service (AWS KMS) 客戶受管金鑰的金鑰別名。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `s3:GetEncryptionConfiguration`
+ `s3:PutEncryptionConfiguration`

 **文件步驟** 
+ ChooseEncryptionType (aws：branch) - 評估為 `KmsKeyId` 參數提供的值，以判斷是否將使用 SSE-S3 (AES256) 或 SSE-KMS。
+ PutBucketKeysKMS (aws：executeAwsApi) - 使用指定的 ，將指定 S3 儲存貯`true`體的 `BucketKeyEnabled` 屬性設定為 `KmsKeyId`。
+ PutBucketKeysAES256 (aws：executeAwsApi) - 使用 AES256 加密將指定 S3 儲存貯`true`體的 `BucketKeyEnabled` 屬性設定為 。
+ VerifyS3BucketKeysEnabled (aws：assertAwsResourceProperty) - 驗證已在目標 S3 儲存貯體上啟用儲存貯體金鑰。

# `AWSConfigRemediation-RemovePrincipalStarFromS3BucketPolicy`
<a name="automation-aws-remove-s3-wildcard"></a>

 **Description** 

 `AWSConfigRemediation-RemovePrincipalStarFromS3BucketPolicy` Runbook 會從 Amazon Simple Storage Service (Amazon S3) 儲存貯體政策中移除具有萬用字元 ( `Principal: *`或 `Principal: "AWS": *` ) `Allow`動作的主體政策陳述式。具有條件的政策陳述式也會移除。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-RemovePrincipalStarFromS3BucketPolicy) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ BucketName

  類型：字串

  描述：（必要） 您要修改其政策的 Amazon S3 儲存貯體名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `s3:DeleteBucketPolicy` 
+  `s3:GetBucketPolicy` 
+  `s3:PutBucketPolicy` 

 **文件步驟** 
+  `aws:executeScript` - 修改儲存貯體政策，並驗證使用萬用字元的主體政策陳述式已從您在 `BucketName` 參數中指定的 Amazon S3 儲存貯體中移除。

# `AWSConfigRemediation-RestrictBucketSSLRequestsOnly`
<a name="automation-aws-s3-deny-http"></a>

 **Description** 

 `AWSConfigRemediation-RestrictBucketSSLRequestsOnly` Runbook 會建立 Amazon Simple Storage Service (Amazon S3) 儲存貯體政策陳述式，明確拒絕對您所指定 Amazon S3 儲存貯體的 HTTP 請求。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-RestrictBucketSSLRequestsOnly) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ BucketName

  類型：字串

  描述：（必要） 您要拒絕 HTTP 請求的 S3 儲存貯體名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `s3:DeleteBucketPolicy` 
+  `s3:GetBucketPolicy` 
+  `s3:PutEncryptionConfiguration` 
+  `s3:PutBucketPolicy` 

 **文件步驟** 
+  `aws:executeScript` - 為 `BucketName` 參數中指定的 S3 儲存貯體建立儲存貯體政策，以明確拒絕 HTTP 請求。

# `AWSSupport-TroubleshootS3PublicRead`
<a name="automation-awssupport-troubleshoots3publicread"></a>

 **Description** 

 `AWSSupport-TroubleshootS3PublicRead` Runbook 會診斷從您在 `S3BucketName` 參數中指定的公有 Amazon Simple Storage Service (Amazon S3) 儲存貯體讀取物件的問題。也會分析 S3 儲存貯體中物件的設定子集。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootS3PublicRead) 

 **限制** 
+ 此自動化不會檢查允許公開存取物件的存取點。
+ 此自動化不會評估 S3 儲存貯體政策中的條件索引鍵。
+ 如果您使用的是 AWS Organizations，則此自動化不會評估服務控制政策，以確認允許存取 Amazon S3。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ CloudWatchLogGroupName

  類型：字串

  描述：（選用） 您要傳送自動化輸出的 Amazon CloudWatch Logs 日誌群組。如果找不到符合您指定值的日誌群組，自動化將會使用此參數值建立日誌群組。此自動化所建立之日誌群組的保留期間為 14 天。
+ CloudWatchLogStreamName

  類型：字串

   描述：（選用） 您要傳送自動化輸出的 CloudWatch Logs 日誌串流。如果找不到符合您指定值的日誌串流，自動化將會使用此參數值建立日誌串流。如果您未指定此參數的值，自動化將使用 `ExecutionId`做為日誌串流的名稱。
+ HttpGet

  類型：布林值

  有效值：true \$1 false

  預設：true

   描述：（選用） 如果此參數設定為 `true` ，自動化會對`S3BucketName`您指定的 中的物件提出部分 HTTP 請求。使用 Range HTTP 標頭只會傳回物件的第一個位元組。
+ IgnoreBlockPublicAccess

  類型：布林值

  有效值：true \$1 false

  預設：false

   描述：（選用） 如果此參數設為 `true` ，自動化會忽略您在 `S3BucketName` 參數中指定的 S3 儲存貯體的公有存取區塊設定。不建議從預設值變更此參數。
+ MaxObjects

  類型：整數

  有效值：1-25

  預設：5

   描述：（選用） 您在 `S3BucketName` 參數中指定的 S3 儲存貯體中要分析的物件數量。
+ S3BucketName

  類型：字串

  描述：（必要） 要故障診斷的 S3 儲存貯體名稱。
+ S3PrefixName

  類型：字串

   描述：（選用） 您要在 S3 儲存貯體中分析之物件的金鑰名稱字首。如需詳細資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的[物件金鑰](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html#object-keys)。
+ StartAfter

  類型：字串

  描述：（選用） 您希望自動化開始分析 S3 儲存貯體中物件的物件金鑰名稱。
+ ResourcePartition

  類型：字串

   有效值：`aws` \$1 `aws-us-gov` \$1 `aws-cn` 

   預設：`aws`

  描述：（必要） S3 儲存貯體所在的分割區。
+ 詳細資訊

  類型：布林值

  有效值：true \$1 false

  預設：false

   描述：（選用） 若要在自動化期間傳回更多詳細資訊，請將此參數設定為 `true` 。如果 參數設定為 `false` ，則只會傳回警告和錯誤訊息。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

 只有在您希望自動化將日誌資料傳送至 CloudWatch Logs 時，才需要 `logs:CreateLogGroup` `logs:CreateLogStream` 、 和 `logs:PutLogEvents`許可。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:SimulateCustomPolicy",
                "iam:GetContextKeysForCustomPolicy",
                "s3:ListAllMyBuckets",
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:PutRetentionPolicy",
                "s3:GetAccountPublicAccessBlock"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetBucketRequestPayment",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPolicy",
                "s3:GetBucketAcl"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
            "Effect": "Allow"
        }
    ]
}
```

------

 **文件步驟** 
+  `aws:assertAwsResourceProperty` - 確認 S3 儲存貯體存在且可存取。
+  `aws:executeScript` - 傳回 S3 儲存貯體位置和正式使用者 ID。
+  `aws:executeScript` - 傳回您帳戶的公有存取區塊設定和 S3 儲存貯體。
+  `aws:assertAwsResourceProperty` - 確認 S3 儲存貯體付款人設定為 `BucketOwner` 。如果在 S3 儲存貯體上啟用 `Requester Pays` ，則自動化會結束。
+  `aws:executeScript` - 傳回 S3 儲存貯體政策狀態，並判斷其是否被視為公有。如需公有 S3 儲存貯體的詳細資訊，請參閱[《Amazon Simple Storage Service 使用者指南》中的「公」意義](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html#access-control-block-public-access-policy-status)。 **
+  `aws:executeAwsApi` - 傳回 S3 儲存貯體政策。
+  `aws:executeAwsApi` - 傳回 S3 儲存貯體政策中找到的所有內容索引鍵。
+  `aws:assertAwsResourceProperty` - 確認 `GetObject` API 動作的 S3 儲存貯體政策中是否有明確拒絕。
+  `aws:executeAwsApi` - 傳回 S3 儲存貯體的存取控制清單 (ACL)。
+  `aws:executeScript` - 如果您指定 `CloudWatchLogGroupName` 參數的值，則建立 CloudWatch Logs 日誌群組和日誌串流。
+  `aws:executeScript` - 根據您在 Runbook 輸入參數中指定的值， 會評估自動化期間收集的任何 S3 儲存貯體設定是否阻止公有存取物件。此指令碼會執行下列函數：
  + 評估公有存取區塊設定
  +  根據您在 、 `S3PrefixName` 和 `StartAfter` 參數中指定的值，從 S3 `MaxObjects` 儲存貯體傳回物件。
  + 傳回 S3 儲存貯體政策，以模擬從 S3 儲存貯體傳回之物件的自訂 IAM S3政策。
  +  如果 `HttpGet` 參數設定為 ，則對傳回的物件執行部分 HTTP `true` 請求。使用 Range HTTP 標頭只會傳回物件的第一個位元組。
  + 檢查傳回物件的金鑰名稱，以確認其結尾是一或兩個句點。無法從 Amazon S3 主控台下載以句點結尾的物件金鑰名稱。
  + 檢查傳回物件的擁有者是否與 S3 儲存貯體的擁有者相符。
  +  檢查物件的 ACL 是否授予匿名使用者`READ`或`FULL_CONTROL`許可。
  + 傳回與物件相關聯的標籤。
  +  使用模擬 IAM 政策來確認 `GetObject` API 動作的 S3 儲存貯體政策中是否明確拒絕此物件。
  + 傳回物件的中繼資料，以確認支援儲存體方案。
  + 檢查物件的伺服器端加密設定，以確認是否使用 a AWS Key Management Service (AWS KMS) 客戶受管金鑰來加密物件。

 **輸出** 

AnalyzeObjects.bucket

AnalyzeObjects.object

# `AWSSupport-ConfigureS3ReplicationSameAndCrossAccount`
<a name="automation-aws-configures3replicationsameandcrossaccount"></a>

 **Description** 

`AWSSupport-ConfigureS3ReplicationSameAndCrossAccount` 自動化 Runbook 會為相同或跨帳戶設定來源與目的地儲存貯體之間的 Amazon Simple Storage Service (Amazon S3) 儲存貯體複寫。此自動化支援複寫使用 Amazon S3-Managed管金鑰 (SSE-S3) 進行伺服器端加密和使用 AWS Key Management Service (SSE-KMS) 進行伺服器端加密的儲存貯體。它還支援字首和標籤型選擇性複寫篩選、具有 15 分鐘 SLA 的 Amazon S3 複寫時間控制 (Amazon S3 RTC)，以及刪除標記複寫。自動化會執行下列動作：
+ 驗證輸入參數和儲存貯體組態的相容性。
+ 檢查來源和目的地儲存貯體上的加密設定。
+ 如果未提供 作為輸入，則建立具有適當複寫許可的新 AWS Identity and Access Management (IAM) 角色。
+ 根據指定的參數 （字首、標籤或整個儲存貯體） 設定複寫規則。
+ 如果尚未啟用，請啟用儲存貯體版本控制。
+ 使用複寫時間控制 (RTC) 和刪除標記複寫等選用功能來設定複寫組態。

**重要**  
**此自動化不支援具有現有複寫規則的儲存貯體。**來源儲存貯體不得有任何現有的複寫組態。
如果未提供 S3ReplicationRole 輸入，則**此自動化會建立具有適當複寫許可的新 IAM 角色**。
**此自動化不會複寫現有的物件。**Amazon S3 複寫僅適用於啟用複寫組態後上傳/建立的物件。
對於跨帳戶複寫，您必須為目的地帳戶中的 IAM 角色提供適當的 Amazon S3 操作和 AWS KMS 操作許可 （如果儲存貯體使用 AWS KMS 加密）。
此自動化使用 `aws:approve`動作，這會暫時暫停執行，直到指定的委託人核准組態變更為止。如需詳細資訊[，請參閱使用核准者執行自動化](https://docs.aws.amazon.com//systems-manager/latest/userguide/running-automations-require-approvals.html)。

 **如何運作？** 

Runbook 會執行下列步驟：
+ **ValidateInputParameters**：驗證所有輸入參數的正確性和相容性，以確保適當的複寫組態。
+ **PrepareApprovalMessage**：準備包含所有複寫組態參數的核准訊息以供使用者檢閱。
+ **RequestApproval**：在來源儲存貯體上新增 Amazon S3 複寫組態之前，請求授權使用者的核准。
+ **CheckBucketEncryption**：檢查來源和目的地 Amazon S3 儲存貯體的加密組態，以判斷相容的複寫設定。
+ **BranchOnEncryptionType**：根據 Amazon S3 儲存貯體加密類型分支執行，以套用 SSE-S3 或 SSE-KMS 加密儲存貯體的適當複寫組態。
+ **ConfigureSSES3Replication**：為使用伺服器端加密搭配 Amazon S3 S3-Managed3 複寫，包括 IAM 角色和複寫規則。
+ **ConfigureSSEKMSReplication**：為使用伺服器端加密 AWS KMS (SSE-KMS) 加密的儲存貯體設定 Amazon S3 複寫，包括 IAM 角色、KMS 金鑰許可和複寫規則。
+ **CleanupResources**：當未提供 S3ReplicationRole 做為輸入時，清除在複寫組態失敗期間建立的 IAM 角色。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ConfigureS3ReplicationSameAndCrossAccount) 

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ s3:ListBucket
+ s3:GetBucketVersioning
+ s3:GetEncryptionConfiguration
+ s3:GetBucketLocation
+ s3:GetReplicationConfiguration
+ s3:PutBucketVersioning
+ s3:PutReplicationConfiguration
+ iam:ListRoles
+ iam:GetRole
+ iam:GetRolePolicy
+ iam：ListRoleTags
+ iam:ListAttachedRolePolicies
+ iam:ListRolePolicies
+ iam:SimulatePrincipalPolicy
+ iam:CreateRole
+ iam：TagRole
+ iam:PassRole
+ iam:DeleteRole
+ iam:DeleteRolePolicy
+ iam:DetachRolePolicy
+ iam：PutRolePolicy
+ sts:GetCallerIdentity
+ sns:Publish
+ kms:GetKeyPolicy （當儲存貯體使用 SSE-KMS 時，相同帳戶複寫）
+ kms:DescribeKey （當儲存貯體使用 SSE-KMS 時，相同帳戶複寫）
+ kms:PutKeyPolicy （當儲存貯體使用 SSE-KMS 時，相同帳戶複寫）
+ sts：AssumeRole （用於跨帳戶複寫）

**CrossAccountReplicationRole （適用於跨帳戶案例）：**

對於跨帳戶複寫，您必須在目的地帳戶中提供具有下列許可的 CrossAccountReplicationRole：
+ s3:ListBucket
+ s3:GetBucketVersioning
+ s3:GetBucketLocation
+ s3:GetBucketPolicy
+ s3:GetEncryptionConfiguration
+ s3:PutBucketVersioning
+ s3:PutBucketPolicy
+ kms:GetKeyPolicy （跨帳戶目的地儲存貯體使用 SSE-KMS 時）
+ kms:DescribeKey （跨帳戶目的地儲存貯體使用 SSE-KMS 時）
+ kms:PutKeyPolicy （跨帳戶目的地儲存貯體使用 SSE-KMS 時）

**S3ReplicationRole （客戶提供的角色）：**

如果您提供現有的 S3ReplicationRole，則必須具有下列許可：
+ s3:ListBucket
+ s3:GetBucketLocation
+ s3:GetReplicationConfiguration
+ s3：GetObjectVersionAcl
+ s3：GetObjectVersionTagging
+ s3：GetObjectVersionForReplication
+ s3：GetObjectTagging
+ s3：ReplicateObject
+ s3：ReplicateDelete
+ s3：ReplicateTags
+ s3：ObjectOwnerOverrideToBucketOwner
+ kms:Decrypt （對於 SSE-KMS 案例，來源 KMS 金鑰）
+ kms:Encrypt （適用於 SSE-KMS 案例、目的地 KMS 金鑰）
+ kms:GenerateDataKey （適用於 SSE-KMS 案例、目的地 KMS 金鑰）
+ kms:ReEncrypt\$1 （適用於 SSE-KMS 案例、目的地 KMS 金鑰）

**相同帳戶複寫**的範例 **AutomationAssumeRole** 政策：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketVersioning",
                "s3:GetEncryptionConfiguration",
                "s3:GetBucketLocation",
                "s3:GetReplicationConfiguration",
                "s3:ListBucket",
                "s3:PutBucketVersioning",
                "s3:PutReplicationConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::SOURCE_BUCKET",
                "arn:aws:s3:::DESTINATION_BUCKET"
            ]
        },
        {
            "Sid": "IAMReadOperations",
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:ListRoleTags",
                "iam:ListAttachedRolePolicies",
                "iam:ListRolePolicies",
                "iam:SimulatePrincipalPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IAMListRolesForCleanup",
            "Effect": "Allow",
            "Action": "iam:ListRoles",
            "Resource": "*"
        },
        {
            "Sid": "IAMCreateAndTagRole",
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:TagRole"
            ],
            "Resource": "arn:aws:iam::ACCOUNT_ID:role/S3RepRole-*",
            "Condition": {
                "StringLike": {
                    "aws:RequestTag/AWSSupport-ConfigureS3ReplicationSameAndCrossAccount": "*"
                }
            }
        },
        {
            "Sid": "IAMPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::ACCOUNT_ID:role/S3RepRole-*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "s3.amazonaws.com"
                }
            }
        },
        {
            "Sid": "TaggedIAMRoleModifyAndDeleteOperations",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::ACCOUNT_ID:role/S3RepRole-*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/AWSSupport-ConfigureS3ReplicationSameAndCrossAccount": "*"
                }
            }
        },
        {
            "Sid": "STSGetCallerIdentity",
            "Effect": "Allow",
            "Action": "sts:GetCallerIdentity",
            "Resource": "*"
        },
        {
            "Sid": "SNSPublish",
            "Effect": "Allow",
            "Action": "sns:Publish",
            "Resource": "SNS_TOPIC_ARN"
        },
        {
            "Sid": "KMSKeyReadOperations",
            "Effect": "Allow",
            "Action": [
                "kms:GetKeyPolicy",
                "kms:DescribeKey"
            ],
            "Resource": [
                "arn:aws:kms:REGION:ACCOUNT_ID:key/SOURCE_KMS_KEY_ID",
                "arn:aws:kms:REGION:ACCOUNT_ID:key/DESTINATION_KMS_KEY_ID"
            ]
        },
        {
            "Sid": "KMSKeyMutatingOperations",
            "Effect": "Allow",
            "Action": "kms:PutKeyPolicy",
            "Resource": [
                "arn:aws:kms:REGION:ACCOUNT_ID:key/SOURCE_KMS_KEY_ID",
                "arn:aws:kms:REGION:ACCOUNT_ID:key/DESTINATION_KMS_KEY_ID"
            ],
            "Condition": {
                "StringEquals": {
                    "kms:CallerAccount": "ACCOUNT_ID"
                }
            }
        }
    ]
}
```

**注意**  
只有在儲存貯體使用 SSE-KMS 加密時，才需要政策陳述式 (KMSKeyReadOperations 和 KMSKeyMutatingOperations)。

**跨帳戶複寫**的範例 **AutomationAssumeRole** 政策：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3SourceBucketOperations",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketVersioning",
                "s3:GetEncryptionConfiguration",
                "s3:GetBucketLocation",
                "s3:GetReplicationConfiguration",
                "s3:ListBucket",
                "s3:PutBucketVersioning",
                "s3:PutReplicationConfiguration"
            ],
            "Resource": "arn:aws:s3:::SOURCE_BUCKET"
        },
        {
            "Sid": "IAMReadOperations",
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:ListRoleTags",
                "iam:ListAttachedRolePolicies",
                "iam:ListRolePolicies",
                "iam:SimulatePrincipalPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IAMListRolesForCleanup",
            "Effect": "Allow",
            "Action": "iam:ListRoles",
            "Resource": "*"
        },
        {
            "Sid": "IAMCreateAndTagRole",
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:TagRole"
            ],
            "Resource": "arn:aws:iam::SOURCE_ACCOUNT_ID:role/S3RepRole-*",
            "Condition": {
                "StringLike": {
                    "aws:RequestTag/AWSSupport-ConfigureS3ReplicationSameAndCrossAccount": "*"
                }
            }
        },
        {
            "Sid": "IAMPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::SOURCE_ACCOUNT_ID:role/S3RepRole-*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "s3.amazonaws.com"
                }
            }
        },
        {
            "Sid": "TaggedIAMRoleModifyAndDeleteOperations",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::SOURCE_ACCOUNT_ID:role/S3RepRole-*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/AWSSupport-ConfigureS3ReplicationSameAndCrossAccount": "*"
                }
            }
        },
        {
            "Sid": "CrossAccountRoleAssumption",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "CROSS_ACCOUNT_REPLICATION_ROLE_ARN"
        },
        {
            "Sid": "STSGetCallerIdentity",
            "Effect": "Allow",
            "Action": "sts:GetCallerIdentity",
            "Resource": "*"
        },
        {
            "Sid": "SNSPublish",
            "Effect": "Allow",
            "Action": "sns:Publish",
            "Resource": "SNS_TOPIC_ARN"
        },
        {
            "Sid": "KMSSourceKeyReadOperations",
            "Effect": "Allow",
            "Action": [
                "kms:GetKeyPolicy",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:SOURCE_REGION:SOURCE_ACCOUNT_ID:key/SOURCE_KMS_KEY_ID"
        },
        {
            "Sid": "KMSSourceKeyMutatingOperations",
            "Effect": "Allow",
            "Action": "kms:PutKeyPolicy",
            "Resource": "arn:aws:kms:SOURCE_REGION:SOURCE_ACCOUNT_ID:key/SOURCE_KMS_KEY_ID",
            "Condition": {
                "StringEquals": {
                    "kms:CallerAccount": "SOURCE_ACCOUNT_ID"
                }
            }
        }
    ]
}
```

**注意**  
只有在來源儲存貯體使用 SSE-KMS 加密時，才需要政策陳述式 (KMSSourceKeyReadOperations 和 KMSSourceKeyMutatingOperations)。
將 CROSS\$1ACCOUNT\$1REPLICATION\$1ROLE\$1ARN 取代為您提供給自動化的實際 CrossAccountReplicationRole 參數值。

**CrossAccountReplicationRole** 政策範例：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3DestinationBucketReadOperations",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketVersioning",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicy",
                "s3:GetEncryptionConfiguration",
                "s3:ListBucket",
                "s3:PutBucketVersioning",
                "s3:PutBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::DESTINATION_BUCKET"
        },
        {
            "Sid": "KMSDestinationKeyReadOperations",
            "Effect": "Allow",
            "Action": [
                "kms:GetKeyPolicy",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:DESTINATION_REGION:DESTINATION_ACCOUNT_ID:key/DESTINATION_KMS_KEY_ID"
        },
        {
            "Sid": "KMSDestinationKeyMutatingOperations",
            "Effect": "Allow",
            "Action": "kms:PutKeyPolicy",
            "Resource": "arn:aws:kms:DESTINATION_REGION:DESTINATION_ACCOUNT_ID:key/DESTINATION_KMS_KEY_ID",
            "Condition": {
                "StringEquals": {
                    "kms:CallerAccount": "DESTINATION_ACCOUNT_ID"
                }
            }
        }
    ]
}
```

**注意**  
只有在目的地儲存貯體使用 SSE-KMS 加密時，才需要 KMS 陳述式 (KMSDestinationKeyReadOperations 和 KMSDestinationKeyMutatingOperations)。針對 SSE-S3 案例移除這些陳述式。

CrossAccountReplicationRole 信任政策範例：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "AUTOMATION_ASSUME_ROLE_ARN"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

**注意**  
以您提供給自動化的實際 AutomationAssumeRole 參數值取代 AUTOMATION\$1ASSUME\$1ROLE\$1ARN。

**S3ReplicationRole** 政策範例：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3SourceBucketPermissions",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:GetReplicationConfiguration",
                "s3:GetObjectVersionAcl",
                "s3:GetObjectVersionTagging",
                "s3:GetObjectVersionForReplication",
                "s3:GetObjectTagging"
            ],
            "Resource": [
                "arn:aws:s3:::SOURCE_BUCKET",
                "arn:aws:s3:::SOURCE_BUCKET/*"
            ]
        },
        {
            "Sid": "S3DestinationBucketPermissions",
            "Effect": "Allow",
            "Action": [
                "s3:ReplicateObject",
                "s3:ReplicateDelete",
                "s3:ReplicateTags"
            ],
            "Resource": "arn:aws:s3:::DESTINATION_BUCKET/*"
        },
        {
            "Sid": "S3CrossAccountPermissions",
            "Effect": "Allow",
            "Action": "s3:ObjectOwnerOverrideToBucketOwner",
            "Resource": "arn:aws:s3:::DESTINATION_BUCKET/*"
        },
        {
            "Sid": "KMSSourceKeyPermissions",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:SOURCE_REGION:SOURCE_ACCOUNT_ID:key/SOURCE_KMS_KEY_ID"
        },
        {
            "Sid": "KMSDestinationKeyPermissions",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:GenerateDataKey",
                "kms:ReEncrypt*"
            ],
            "Resource": "arn:aws:kms:DESTINATION_REGION:DESTINATION_ACCOUNT_ID:key/DESTINATION_KMS_KEY_ID"
        }
    ]
}
```

**注意**  
只有在儲存貯體使用 SSE-KMS 加密時，才需要 KMS 陳述式 (KMSSourceKeyPermissions 和 KMSDestinationKeyPermissions)。
只有跨帳戶儲存貯體複寫需要 S3CrossAccountPermissions 陳述式。

S3ReplicationRole 信任政策範例：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ConfigureS3ReplicationSameAndCrossAccount/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ConfigureS3ReplicationSameAndCrossAccount/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （必要）：**
     + 描述：（必要） (IAM) 角色的 Amazon Resource Name AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **SourceBucket （必要）：**
     + 描述：（必要） 建立或更新複寫規則的來源 Amazon S3 儲存貯體名稱。
     + 類型：`AWS::S3::Bucket::Name`
   + **DestinationBucket （必要）：**
     + 描述：（必要） 將複寫物件的目標 Amazon S3 儲存貯體名稱。
     + 類型：`String`
     + 允許模式： `^[0-9a-z][a-z0-9\\-\\.]{3,63}$`
   + **SourceAccountId （必要）：**
     + 描述：（必要） 來源儲存貯體所在的 AWS 帳戶 ID。
     + 類型：`String`
     + 允許模式： `^[0-9]{12,13}$`
   + **DestinationAccountId （必要）：**
     + 描述：（必要） 目的地儲存貯體所在的 AWS 帳戶 ID。
     + 類型：`String`
     + 允許模式： `^[0-9]{12,13}$`
   + **SnsNotificationArn （必要）：**
     + 描述：（必要） 自動化核准的 Amazon Simple Notification Service (Amazon SNS) 主題 ARN。
     + 類型：`String`
     + 允許模式： `^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):sns:[a-z]{2}(-gov)?(-iso[a-z]?)?-[a-z]{2,10}-[0-9]{1,2}:\\d{12}:[0-9a-zA-Z-_]{1,256}(.fifo)?$`
   + **核准者 （必要）：**
     + 描述：（必要） 授權核准自動化執行的 IAM 使用者/角色 ARNs 清單。
     + 類型：`StringList`
     + 允許模式： `^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::\\d{12}:(user|role)/[\\w+=,.@\\-/]+$`
   + **S3ReplicationRole （選用）：**
     + 描述：（選用） 用於 Amazon S3 複寫操作的現有 IAM 角色的 ARN。如果儲存貯體使用 SSE-KMS 加密，此角色必須具有從來源儲存貯體讀取和寫入目的地儲存貯體的許可，包括 KMS 許可。如果未提供，自動化將建立具有適當許可的新角色。
     + 類型：`String`
     + 允許模式： `^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::\\d{12}:role/[\\w+=,.@\\-/]+$`
     + 預設：`""`
   + **CrossAccountReplicationRole （選用）：**
     + 描述：（選用） 自動化可擔任之目的地帳戶中 IAM 角色的 ARN。這是跨帳戶複寫的必要項目。對於相同帳戶複寫，請將此保留空白。
     + 類型：`String`
     + 允許模式： `^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::\\d{12}:role/[\\w+=,.@\\-/]+$`
     + 預設：`""`
   + **ReplicateEntireBucket （選用）：**
     + 描述：（選用） 如果設定為 `true`，則會複寫整個儲存貯體，且字首和標籤都必須空白。如果為 false，複寫將以指定的字首或標籤為基礎。
     + 類型：`Boolean`
     + 允許的值： `[true, false]`
     + 預設：`true`
   + **ReplicationRuleStatus （選用）：**
     + 描述：（選用） 如果設定為 `true`，則會啟用建立的複寫規則。如果設為 `false`，則建立的複寫規則將設為**已停用**。
     + 類型：`Boolean`
     + 允許的值： `[true, false]`
     + 預設：`true`
   + **DeleteMarkerReplicationStatus （選用）：**
     + 描述：（選用） 如果設定為 `true`，自動化會啟用刪除標記複寫。
     + 類型：`Boolean`
     + 允許的值： `[true, false]`
     + 預設：`false`
   + **ReplicationTimeControl （選用）：**
     + 描述：（選用） 如果設定為 `true`， 會使用 15 分鐘的 SLA 啟用 Amazon S3 複寫時間控制 (Amazon S3 RTC)，以取得可預測的複寫時間。
     + 類型：`Boolean`
     + 允許的值： `[true, false]`
     + 預設：`false`
   + **ReplicaModifications （選用）：**
     + 描述：（選用） 如果設定為 `true`，則啟用複寫對複本物件所做的中繼資料變更，允許對複寫物件的修改同步回來源。
     + 類型：`Boolean`
     + 允許的值： `[true, false]`
     + 預設：`false`
   + **字首 （選用）：**
     + 描述：（選用） 用於選擇性複寫具有特定金鑰字首之物件的字首篩選條件。字首必須以斜線 (/) 結尾，才能正確篩選 Amazon S3 字首。
     + 類型：`String`
     + 允許模式： `^$|^[a-zA-Z0-9!_'()\\-]*/+$`
     + 預設：`""`
   + **標籤 （選用）：**
     + 描述：（選用） 用於篩選要複寫之物件的標籤 JSON 陣列。單一標籤的格式：【\$1"Key"："TagKey"，"Value"："TagValue"\$1】 和多個標籤的格式：【\$1"Key"："TagKey1"，"Value"："TagValue1"\$1，\$1"Key"："TagKey2"，"Value"："TagValue2"\$1】。
     + 類型：`String`
     + 允許模式： `^\\[((\\{\"Key\":\"[a-zA-Z0-9+\\-=.:/ @\\s]{1,128}\",\"Value\":\"[a-zA-Z0-9+\\-=.:/@\\s]{0,256}\"\\})(,\\{\"Key\":\"[a-zA-Z0-9+\\-=.:/ @\\s]{1,128}\",\"Value\":\"[a-zA-Z0-9+\\-=.:/@\\s]{0,256}\"\\})*)?\\]$`
     + 預設：`[]`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **ValidateInputParameters**：

     驗證所有輸入參數的正確性和相容性，以確保適當的複寫組態。
   + **PrepareApprovalMessage**：

     使用所有複寫組態參數準備核准訊息以供使用者檢閱。
   + **RequestApproval**：

     在繼續進行 Amazon S3 複寫組態變更之前，請求授權使用者的核准。
   + **CheckBucketEncryption**：

     檢查來源和目的地 Amazon S3 儲存貯體的加密組態，以判斷相容的複寫設定。
   + **BranchOnEncryptionType**：

     根據 Amazon S3 儲存貯體加密類型分支執行，以套用 SSE-S3 或 SSE-KMS 加密儲存貯體的適當複寫組態。
   + **ConfigureSSES3Replication**：

     為使用伺服器端加密搭配 Amazon S3 S3-Managed 複寫，包括 IAM 角色和複寫規則。
   + **ConfigureSSEKMSReplication**：

     針對使用伺服器端加密 AWS KMS (SSE-KMS) 加密的儲存貯體設定 Amazon S3 複寫，包括 IAM 角色、KMS 金鑰許可和複寫規則。
   + **CleanupResources**：

     當客戶未提供 S3ReplicationRole 時，清除在複寫組態失敗期間建立的 IAM 角色。

1. 完成後，請檢閱 **ConfigureSSES3Replication** 步驟 （適用於 SSE-S3 加密儲存貯體） 或 **ConfigureSSEKMSReplication** 步驟 （適用於 SSE-KMS 加密儲存貯體） 的輸出以取得執行結果，包括複寫組態狀態以及用於複寫的 IAM 角色。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ConfigureS3ReplicationSameAndCrossAccount/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-EmptyS3Bucket`
<a name="automation-aws-empty-s3-bucket"></a>

 **Description** 

 `AWSSupport-EmptyS3Bucket` 自動化 Runbook 會使用生命週期過期組態規則來清空現有的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。

**重要**  
不支援啟用多重要素驗證 (MFA) 的 Amazon S3 儲存貯體。
 此 Runbook 修改的生命週期規則會永久刪除指定 Amazon S3 儲存貯體中的所有物件及其版本。您無法復原永久刪除的物件。如需詳細資訊，請參閱[即將過期的物件](https://docs.aws.amazon.com//AmazonS3/latest/userguide/lifecycle-expire-general-considerations.html)。

 **如何運作？** 

 Runbook 會`AWSSupport-EmptyS3Bucket`執行下列高階步驟：
+ 如果啟用，暫停儲存貯體版本控制。
+ 更新儲存貯體政策以拒絕任何 `s3:PutObject` API 呼叫 （以防止在清空時新上傳）。
+ 更新生命週期規則，根據輸入參數中指定的過期日期刪除所有物件。

**注意**  
生命週期組態不會刪除或覆寫受 Amazon S3 物件鎖定保護的物件版本。
刪除程序是非同步的，在執行手冊執行完成後可能需要一些時間才能完成。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-EmptyS3Bucket) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

 AutomationAssumeRole 參數需要下列動作，才能成功使用 Runbook：
+ ssm:DescribeAutomationExecutions
+ ssm:GetAutomationExecution
+ s3:GetBucketVersioning
+ s3:PutBucketVersioning
+ s3:GetBucketPolicy
+ s3:GetBucketLifecycleConfiguration
+ s3:GetLifecycleConfiguration
+ s3:PutBucketPolicy
+ s3：PutBucketLifecycleConfiguration
+ s3:PutLifecycleConfiguration
+ s3:DeleteBucketPolicy
+ s3：DeleteBucketLifecycle

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-EmptyS3Bucket/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-EmptyS3Bucket/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **S3BucketName：**

     您要清空的 Amazon S3 儲存貯體名稱。
   + **SNSTopicArn：**

     提供 Amazon SNS 主題的 ARN 以進行核准通知。此 Amazon SNS 主題用於在自動化執行期間所需的期間傳送核准通知。
   + **ApproverIAM：**

     提供能夠核准或拒絕動作的已 AWS 驗證主體清單。核准者數目上限為 `10`。您可以使用任何這些格式、 AWS Identity and Access Management (IAM) 使用者名稱、IAM 使用者 ARN、IAM 角色 ARN 或 IAM 擔任角色使用者 ARN 來指定主體。
   + **MinimumRequiredApprovals （選用）：**

     繼續自動化所需的核准數量下限。如果您未指定值，系統會預設為 `1`。此參數的值必須為正數。此參數的值不能超過 ApproverIAM 參數定義的核准者數目。
   + **NoncurrentVersionExpirationDays （選用）：**

     指定非目前物件版本過期的天數。過期時，Amazon S3 會永久刪除非目前的物件版本。
     + 預設：`1`
     + 最大值： `365`
   + **ExpirationDays （選用）：**

     以天數形式指定物件生命週期的過期時間。
     + 預設：`1`
     + 最大值： `365`
   + **AbortIncompleteMultipartUpload （選用）：**

     指定自啟動未完成分段上傳以來，Amazon S3 將等待的天數，然後再永久移除上傳的所有部分。
     + 預設：`1`
     + 最大值： `365`
   + **確認：**

     請閱讀此自動化 Runbook 所執行動作的完整詳細資訊，並在您確認步驟`Yes, I understand and acknowledge`時提供同意。  
![\[包含 AWSSupport-EmptyS3Bucket 文件範例輸入參數的影像。\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-empty-s3-bucket_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **`checkConcurrency`**:

     確保只有一個針對指定 Amazon S3 儲存貯體的 Runbook 執行。如果 Runbook 找到另一個以相同儲存貯體名稱為目標的進行中執行，則會傳回錯誤並結束。
   + **`getBucketVersioningConfiguration`**:

     擷取指定 Amazon S3 儲存貯體的版本控制狀態。
   + **`branchOnStoppingIfMFADeleteEnabled`** （條件式）：

     如果在指定的 Amazon S3 儲存貯體上啟用多重要素驗證 (MFA)，則停止自動化。
   + **`approvalToMakeChangesToTheProvidedS3Bucket`**:

     等待指定的委託人核准，以停用儲存貯體版本控制，並更新指定 Amazon S3 儲存貯體的儲存貯體政策和生命週期規則組態。
   + **`branchOnBucketVersioningStatus`** （條件式）：

     如果在指定的 Amazon S3 儲存貯體上啟用版本控制，請將其停用，否則請繼續更新儲存貯體政策和生命週期組態。
   + **`suspendBucketVersioning`**:

     暫停指定 Amazon S3 儲存貯體的版本控制狀態。
   + **`updateBucketPolicyAndLifeCycleConfiguration`**:

     新增或更新儲存貯體政策以拒絕所有`s3:PutObject`請求，並更新生命週期組態以根據使用者提供的輸入參數使物件過期。
   + **`branchOnFailingIfBucketPropertiesNotUpdated`** （條件式）：

     檢查`updateBucketPolicyAndLifeCycleConfiguration`步驟的狀態，並嘗試在自動化變更時還原原始儲存貯體版本控制狀態。
   + **`branchOnFailureOriginalVersioningStatus`** （有條件）：

     失敗時， 分支會判斷原始版本控制狀態。如果 已由此自動化啟用和暫停， 會嘗試再次啟用它。
   + **`onFailureRestoreBucketVersioning`**

     還原指定 Amazon S3 儲存貯體的已啟用版本控制狀態。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：  
![\[包含 AWSSupport-EmptyS3Bucket 文件執行輸出的影像，顯示成功的執行和設定的生命週期政策。\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-empty-s3-bucket_outputs.png)
   + **成功執行**

     此工作流程會更新儲存貯體的生命週期規則。物件將根據`Delete-All-AWSSupport-EmptyS3-Bucket`生命週期政策刪除。  
![\[包含已設定 Delete-All-AWSSupport-EmptyS3-Bucket 生命週期政策的影像。\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-empty-s3-bucket_outputs_lifecycle_policy.png)
   + **失敗執行**

     不會執行部分刪除。如果執行失敗，生命週期和其他儲存貯體設定會復原。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-EmptyS3Bucket/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/)

如需管理 Amazon S3 儲存貯體和物件的詳細資訊，請參閱[清空儲存貯體](https://docs.aws.amazon.com//AmazonS3/latest/userguide/empty-bucket.html)。

# `AWSSupport-TroubleshootS3EventNotifications`
<a name="awssupport-troubleshoot-s3-event-notifications"></a>

 **Description** 

 `AWSSupport-TroubleshootS3EventNotifications` AWS Systems Manager 自動化 Runbook 可協助疑難排解使用 AWS Lambda 函數、Amazon Simple Notification Service (Amazon S3) 儲存貯體事件通知。 Amazon SNS Amazon SQS 它提供使用 Amazon S3 儲存貯體設定為目的地事件通知之不同資源的組態設定報告。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 檢查 Amazon S3 儲存貯體是否存在於`AWSSupport-TroubleshootS3EventNotifications`執行 的相同帳戶中。
+ 使用 [GetBucketNotificationConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) API 擷取設定為 Amazon S3 儲存貯體事件通知的目的地資源 (AWS Lambda 函數或 Amazon SNS 主題或 Amazon SQS 佇列）。
+ 驗證目的地資源是否存在，然後檢閱目的地資源的資源型政策，以判斷是否允許 Amazon S3 發佈至目的地。
+ 如果您使用 AWS Key Management Service (AWS KMS) 金鑰加密目的地，則會檢查金鑰政策，以判斷是否允許 Amazon S3 存取。
+ 產生所有目的地資源檢查的報告。

**重要**  
只有在 Amazon S3 儲存貯體擁有者與執行自動化 Runbook 的 AWS 帳戶 擁有者相同時，此 Runbook 才能評估事件通知組態。
此外，此 Runbook 無法評估在另一個 中託管之目的地資源的政策 AWS 帳戶。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootS3EventNotifications) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ S3BucketName

  類型：`AWS::S3::Bucket::Name`

  描述：（必要） 使用事件通知設定的 Amazon S3 儲存貯體名稱 （含）。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `s3:GetBucketLocation`
+ `s3:ListAllMyBuckets`
+ `s3:GetBucketNotification`
+ `sqs:GetQueueAttributes`
+ `sqs:GetQueueUrl`
+ `sns:GetTopicAttributes `
+ `kms:GetKeyPolicy`
+ `kms:DescribeKey`
+ `kms:ListAliases`
+ `lambda:GetPolicy`
+ `lambda:GetFunction`
+ `iam:GetContextKeysForCustomPolicy`
+ `iam:SimulateCustomPolicy`
+ `iam:ListRoles`
+ `ssm:DescribeAutomationStepExecutions`

 **自動化擔任角色的 IAM 政策範例** 

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

****  

```
                    {
                        "Version":"2012-10-17",		 	 	 
                        "Statement": [
                            {   
                                "Sid": "S3Permission",
                                "Effect": "Allow",
                                "Action": [
                                    "s3:GetBucketLocation",
                                    "s3:ListAllMyBuckets"
                                ],
                                "Resource": "*"
                            },
                            {   
                                "Sid": "S3PermissionGetBucketNotification",
                                "Effect": "Allow",
                                "Action": [
                                    "s3:GetBucketNotification"
                                ],
                                "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
                            },
                            {
                                "Sid": "SQSPermission",
                                "Effect": "Allow",
                                "Action": [
                                    "sqs:GetQueueAttributes",
                                    "sqs:GetQueueUrl"
                                ],
                                "Resource": "arn:aws:sqs:us-east-1:111122223333:*"
                            },
                            {
                                "Sid": "SNSPermission",
                                "Effect": "Allow",
                                "Action": [
                                    "sns:GetTopicAttributes"
                                ],
                                "Resource": "arn:aws:sns:us-east-1:111122223333:*"
                            },
                            {   
                            "Sid": "KMSPermission",
                                "Effect": "Allow",
                                "Action": [
                                    "kms:GetKeyPolicy",
                                    "kms:DescribeKey",
                                    "kms:ListAliases"
                                ],
                                "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id"
                            },
                            {
                                "Sid": "LambdaPermission",
                                "Effect": "Allow",
                                "Action": [
                                    "lambda:GetPolicy",
                                    "lambda:GetFunction"
                                ],
                                "Resource": "arn:aws:lambda:us-east-1:111122223333:function:*"
                            },
                            {
                                "Sid": "IAMPermission",
                                "Effect": "Allow",
                                "Action": [
                                    "iam:GetContextKeysForCustomPolicy",
                                    "iam:SimulateCustomPolicy",
                                    "iam:ListRoles"
                                ],
                                "Resource": "*"
                            },
                            {
                                "Sid": "SSMPermission",
                                "Effect": "Allow",
                                "Action": [
                                    "ssm:DescribeAutomationStepExecutions"
                                ],
                                "Resource": "*"
                            }
                        ]
                    }
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootS3EventNotifications/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootS3EventNotifications/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **S3BucketName （必要）：**

     使用事件通知 (Amazon S3) 設定的 Amazon S3 儲存貯體名稱。  
![\[AWSSupport-TroubleshootS3EventNotification Runbook 執行輸入參數。\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-s3-event-notifications_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **ValidateInputs**

     驗證提供的 Amazon S3 儲存貯體屬於執行自動化的相同帳戶，並擷取儲存貯體託管的區域。
   + **GetBucketNotificationConfiguration**

     呼叫 `GetBucketNotificationConfiguration` API 來檢閱使用 Amazon S3 儲存貯體設定的事件通知，並格式化輸出。
   + **BranchOnSQSResourcePolicy**

     有關事件通知中是否有 Amazon SQS 資源的分支。
   + **ValidateSQSResourcePolicy**

     驗證 Amazon SQS 佇列屬性上的資源政策具有 Amazon S3 的`sqs:SendMessage`許可。如果 Amazon SQS 資源已加密， 會檢查加密是否未使用預設 AWS KMS 金鑰，即 ，`aws/sqs`並檢查 AWS KMS 金鑰政策是否具有 Amazon S3 的許可。
   + **BranchOnSNSResourcePolicy**

     有關事件通知中是否有 Amazon SNS 資源的分支。
   + **ValidateSNSResourcePolicy**

     驗證 Amazon SNS 主題屬性上的資源政策具有 Amazon S3 的`sns:Publish`許可。如果 Amazon SNS 資源已加密， 會檢查加密是否未使用預設 AWS KMS 金鑰，即 ，`aws/sns`並檢查 AWS KMS 金鑰政策是否具有 Amazon S3 的許可。
   + **BranchOnLambdaFunctionResourcePolicy**

     有關事件通知中是否有 AWS Lambda 函數的分支。
   + **ValidateLambdaFunctionResourcePolicy**

     驗證 AWS Lambda 函數上的資源政策具有 Amazon S3 的`lambda:InvokeFunction`許可。
   + **GenerateReport**

     傳回 Runbook 步驟輸出的詳細資訊，以及解決使用 Amazon S3 儲存貯體設定之事件通知的任何問題的建議。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：
   + **Amazon SQS 事件通知**

     如果使用 Amazon SQSAmazon S3 目的地通知，Amazon SQS 佇列的清單會與檢查結果一起顯示。報告包括 Amazon SQS 資源檢查、Amazon SQS 存取政策檢查、 AWS KMS 金鑰檢查、 AWS KMS 金鑰狀態檢查和 AWS KMS 金鑰政策檢查。
   + **Amazon SNS 事件通知**

     如果有使用 Amazon S3 儲存貯體設定的 Amazon SNS 目的地通知，Amazon SNS 主題清單會與檢查結果一起顯示。 Amazon S3 報告包含 Amazon SNS 資源檢查、Amazon SNS 存取政策檢查、 AWS KMS 金鑰檢查、 AWS KMS 金鑰狀態檢查和 AWS KMS 金鑰政策檢查。
   + **AWS Lambda 事件通知**

     如果有使用 Amazon S3 儲存貯體設定的 AWS Lambda 目的地通知，則 Lambda 函數清單會與檢查結果一起顯示。報告包含 Lambda 資源檢查和 Lambda 存取政策檢查。  
![\[AWSSupport-TroubleshootS3EventNotification Runbook 範例執行輸出。\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-s3-event-notifications_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootS3EventNotifications/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-ContainS3Resource`
<a name="automation-awssupport-contains3resource"></a>

 **Description** 

 `AWSSupport-ContainS3Resource` Runbook 為[支援自動化工作流程 (SAW) Runbook：包含遭入侵的 AWS Amazon S3 儲存貯體](https://repost.aws/articles/ARhGc0hDqKRIKAVCbmF1GmuQ)中所述的程序提供自動化解決方案 

**重要**  
此 Runbook 會執行需要提高權限的各種操作，例如修改 Amazon S3 儲存貯體政策、標籤和公有存取組態。這些動作可能會導致權限提升，或影響依賴目標 Amazon S3 儲存貯體的其他工作負載。您應該檢閱授予 `AutomationAssumeRole` 參數所指定角色的許可，並確保這些許可適用於預期的使用案例。如需 IAM 許可的詳細資訊，請參閱下列 AWS 文件：[https://docs.aws.amazon.com//IAM/latest/UserGuide/access_controlling.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_controlling.html)[https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup-iam.html](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup-iam.html)。
此 Runbook 會執行可能導致工作負載無法使用或中斷的變動動作。具體而言， `Contain`動作會封鎖對指定 Amazon S3 儲存貯體的所有存取， `SecureRoles` 參數中指定的角色除外。這可能會影響依賴目標 Amazon S3 儲存貯體的任何應用程式或服務。
在`Contain`動作期間，如果原始儲存貯體的組態尚未存在，此 Runbook 可能會建立額外的 Amazon S3 儲存貯體 （由 `BackupS3BucketName` 參數指定） 來存放其備份。
如果 `Action` 參數設定為 `Restore`，此 Runbook 會嘗試根據存放在儲存貯體中的備份，將 Amazon S3 儲存`BackupS3BucketName`貯體的組態還原為其原始狀態。不過，還原程序可能會失敗，使 Amazon S3 儲存貯體處於不一致狀態。Runbook 提供在發生此類失敗時手動還原的說明，但您應該準備好在還原過程中處理潛在問題。
建議您徹底檢閱 Runbook、了解其潛在影響，並在非生產環境中進行測試，然後再在您的生產環境中執行。

 **如何運作？** 

此 Runbook 的運作方式會根據資源類型和動作而有所不同：
+ 對於 Amazon S3 一般用途儲存貯體 `Containment`：自動化會封鎖對儲存貯體的公開存取、停用 ACL 組態、強制執行儲存貯體擁有者物件擁有權，並將拒絕所有 Amazon S3 動作的限制儲存貯體政策放入儲存貯體，但允許列出的 IAM 角色除外。
+ 對於 Amazon S3 一般用途物件 `Containment`：自動化會封鎖對儲存貯體的公開存取、停用 ACL 組態、強制執行儲存貯體擁有者物件擁有權，並將限制性儲存貯體政策放在物件上拒絕所有 Amazon S3 動作，但允許列出的 IAM 角色除外。
+ 對於 Amazon S3 Directory Bucket `Containment`：自動化會將拒絕所有 Amazon S3 動作的限制儲存貯體政策放入儲存貯體，但允許列出的 IAM 角色除外。
+ 對於 Amazon S3 一般用途儲存貯體 `Restore`：自動化會在遏制之前將封鎖公開存取組態、儲存貯體 ACL 組態、儲存貯體擁有者物件擁有權和儲存貯體政策還原至初始組態。
+ 對於 Amazon S3 一般用途物件 `Restore`：自動化會在遏制之前，將封鎖公開存取組態、儲存貯體 ACL 組態、物件 ACL 組態、儲存貯體擁有者物件擁有權和儲存貯體政策還原至初始組態。
+ 對於 Amazon S3 Directory Bucket `Restore`：自動化會在遏制之前將儲存貯體政策還原至初始組態。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ContainS3Resource) 

 **文件類型** 

  自動化 

 **擁有者** 

 Amazon 

 **平台** 

 / 

 **所需的 IAM 許可** 

 `AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ s3:CreateBucket
+ s3:DeleteBucketPolicy
+ s3：DeleteObjectTagging
+ s3:GetAccountPublicAccessBlock
+ s3:GetBucketAcl
+ s3:GetBucketLocation
+ s3:GetBucketOwnershipControls
+ s3:GetBucketPolicy
+ s3:GetBucketPolicyStatus
+ s3：GetBucketTagging
+ s3:GetEncryptionConfiguration
+ s3:GetObject
+ s3：GetObjectAcl
+ s3：GetObjectTagging
+ s3:GetReplicationConfiguration
+ s3:ListBucket
+ s3:PutAccountPublicAccessBlock
+ s3：PutBucketACL
+ s3:PutBucketOwnershipControls
+ s3:PutBucketPolicy
+ s3:PutBucketPublicAccessBlock
+ s3：PutBucketTagging
+ s3:PutBucketVersioning
+ s3:PutObject
+ s3：PutObjectAcl
+ s3express：CreateSession
+ s3express：DeleteBucketPolicy
+ s3express：GetBucketPolicy
+ s3express：PutBucketPolicy
+ ssm:DescribeAutomationExecutions

 以下是授予 必要許可的 IAM 政策範例`AutomationAssumeRole`：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucketPolicy",
                "s3:DeleteObjectTagging",
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketOwnershipControls",
                "s3:GetBucketPolicy",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketTagging",
                "s3:GetEncryptionConfiguration",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectTagging",
                "s3:GetReplicationConfiguration",
                "s3:ListBucket",
                "s3:PutAccountPublicAccessBlock",
                "s3:PutBucketACL",
                "s3:PutBucketOwnershipControls",
                "s3:PutBucketPolicy",
                "s3:PutBucketPublicAccessBlock",
                "s3:PutBucketTagging",
                "s3:PutBucketVersioning",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "*"
        },
        {
            "Sid": "S3ExpressPermissions",
            "Effect": "Allow",
            "Action": [
                "s3express:CreateSession",
                "s3express:DeleteBucketPolicy",
                "s3express:GetBucketPolicy",
                "s3express:PutBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SSMPermissions",
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeAutomationExecutions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainS3Resource/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainS3Resource/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **BucketName （必要）：**
     + 描述：（必要） Amazon S3 儲存貯體的名稱。
     + 類型：`AWS::S3::Bucket::Name`
   + **動作 （必要）：**
     + 描述：（必要） 選取 `Contain` 以隔離 Amazon S3 資源`Restore`，或嘗試從先前的備份將資源組態還原為其原始狀態。
     + 類型：字串
     + 允許的值： `Contain|Restore`
   + **DryRun （選用）：**
     + 描述：（選用） 當設定為 true 時，自動化不會對目標 Amazon S3 資源進行任何變更，而是輸出嘗試變更的內容。預設值： true。
     + 類型：布林值
     + 允許的值： `true|false`
   + **BucketKeyName （選用）：**
     + 描述：（選用） 您要包含或還原之 Amazon S3 物件的金鑰。在物件層級遏制期間使用。
     + 類型：字串
     + 允許模式： `^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$`
   + **BucketRestrictAccess （條件式）：**
     + 描述：（條件式） 在執行遏制動作後，允許存取目標 Amazon S3 資源的 IAM 使用者或角色 ARN。當 設為 時`Action`，此參數為必要`Contain`。
     + 類型：StringList
     + 允許模式： `^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$`
   + **TagIdentifier （選用）：**
     + 描述：（選用） Key=BatchId，Value=78925 格式的標籤，將在遏制工作流程期間新增至此 Runbook 建立或修改的資源。
     + 類型：字串
     + 允許模式： `^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$`
   + **BackupS3BucketName （條件式）：**
     + 描述：（條件式） `Action`將 設定為 時要備份目標資源組態的 Amazon S3 儲存貯體，`Contain`或將 `Action`設定為 時要從 還原組態`Restore`。
     + 類型：`AWS::S3::Bucket::Name`
   + **BackupS3KeyName （條件式）：**
     + 描述：（條件式） 如果 `Action` 設定為 `Restore`，這會指定自動化用來嘗試還原目標資源組態的 Amazon S3 金鑰。
     + 類型：字串
     + 允許模式： `^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$`

     
   + **BackupS3BucketAccess （條件式）：**
     + 描述：（條件式） 在執行遏制動作後，允許存取備份 Amazon S3 儲存貯體的 IAM 使用者或角色 ARN。當 `Action`為 時，此參數為必要`Contain`。
     + 類型：StringList
     + 允許模式： `^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$`
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 IAM 角色的 Amazon Resource Name (ARN)。
     + 類型：`AWS::IAM::Role::Arn`

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **validateRequiredInputs**

     根據指定的動作驗證所需的自動化輸入參數。
   + **assertBucketExists**

     檢查目標 Amazon S3 儲存貯體是否存在並可存取。
   + **backupBucketPreChecks**

     檢查備份 Amazon S3 儲存貯體是否可能授予對其物件的公開讀取或寫入存取權。
   + **backupTargetBucketMetadata**

     描述目標 Amazon S3 儲存貯體的目前組態，並將備份上傳至指定的備份 Amazon S3 儲存貯體。
   + **containBucket**

     執行儲存貯體層級操作，以包含目標 Amazon S3 儲存貯體。
   + **BranchOnActionAndMode**

     根據輸入參數 Action 和 DryRun 分支自動化。
   + **RestoreInstanceConfiguration**

     從備份還原 Amazon S3 儲存貯體組態。
   + **containFinalOutput**

     以可讀取的格式整合遏制活動。
   + **ReportContain**

     輸出遏制動作的試轉詳細資訊。
   + **ReportRestore**

     輸出還原動作的試轉詳細資訊。
   + **ReportRestoreFailure**

     提供在還原工作流程失敗案例期間還原 Amazon S3 儲存貯體原始組態的說明。
   + **ReportContainmentFailure**

     提供在遏制工作流程失敗情況下還原 Amazon S3 儲存貯體原始組態的說明。
   + **FinalOutput**

     輸出遏制動作的詳細資訊。

1. 執行完成後，請檢閱輸出區段以取得執行的詳細結果：
   + **ContainFinalOutput.Output**

     當 `DryRun` 設定為 False 時，輸出此 Runbook 所執行之遏制動作的詳細資訊。
   + **RestoreFinalOutput.Output**

     當 `DryRun` 設定為 False 時，輸出此 Runbook 所執行還原動作的詳細資訊。
   + **ContainS3ResourceDryRun.Output**

     將 `DryRun` 設定為 True 時，輸出此 Runbook 所執行之遏制動作的詳細資訊。
   + **RestoreS3ResourceDryRun.Output**

     將 `DryRun` 設定為 True 時，輸出此 Runbook 所執行還原動作的詳細資訊。
   + **ReportContainmentFailure.Output**

     提供在遏制工作流程失敗案例期間還原目標 Amazon S3 資源原始組態的指示。
   + **ReportRestoreFailure.Output**

     提供在還原工作流程失敗案例期間還原目標 Amazon S3 資源原始組態的說明。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainS3Resource/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/)

# Amazon SES
<a name="automation-ref-ses"></a>

 AWS Systems Manager 自動化為 Amazon Simple Email Service 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-AnalyzeSESMessageSendingStatus`](awssupport-analyze-ses-message-sending-status.md)
+ [`AWSSupport-DeploySESSendingLogsToCloudWatchLogs`](automation-awssupport-deploysessendinglogstocloudwatchlogs.md)

# `AWSSupport-AnalyzeSESMessageSendingStatus`
<a name="awssupport-analyze-ses-message-sending-status"></a>

**Description**  
 `AWSSupport-AnalyzeSESMessageSendingStatus` 自動化 Runbook 摘要未交付電子郵件訊息的電子郵件交付狀態，並為您提供建議，以解決未交付的原因。Runbook 會擷取存放在 Amazon SES 發佈的 Amazon CloudWatch Logs 群組中的 Amazon Simple Email Service (Amazon SES電子郵件傳送事件。如需 Amazon SES 事件發佈詳細資訊，請參閱[使用 Amazon Simple Email Service 事件發佈進行監控](https://docs.aws.amazon.com/ses/latest/dg/monitor-using-event-publishing.html)。Runbook 也提供摘要和電子郵件傳遞的時間軸，以及可能影響未傳遞電子郵件訊息的建議。您可以在每個執行的輸出區段中找到這些訊息。請注意，此 Runbook 只能在事件存放區部署之後對事件進行疑難排解。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 檢查相同 CloudWatch Logs 群組的並行自動化執行。
+ 分析與自動化參數提供的訊息 IDs對應的 Amazon SES 事件。
+ 自動化執行的輸出區段輸出交付摘要。

**重要**  
執行此 Runbook 之前，您必須將發佈的 Amazon SES 事件儲存到自動化參數指定的 CloudWatch Logs 日誌群組。此 Runbook 只會分析存放在日誌群組中的 Amazon SES 事件。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-AnalyzeSESMessageSendingStatus) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `logs:StartQuery`
+ `logs:GetQueryResults`
+ `ses:GetIdentityMailFromDomainAttributes`
+ `ses:GetSendQuota`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:GetAutomationExecution`

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-AnalyzeSESMessageSendingStatus/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-AnalyzeSESMessageSendingStatus/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **MessageIds （必要）**

     您想要分析之 Amazon Simple Email Service 事件的逗號分隔 Amazon Simple Email Service 訊息 IDs。
   + **CloudWatchLogsGroup （選用）**

     存放 Amazon Simple Email Service 事件的 Amazon CloudWatch Logs 群組。預設日誌群組名稱為 `/ses/sending\$1event\$1logs`。如果您想要使用預設日誌群組以外的其他日誌群組，請在此欄位輸入您的日誌群組名稱。」，
   + **QueryStartTime （選用）**

     事件分析時間範圍的開始時間。有效時間格式為 ISO8601 （例如 `yyyy-MM-ddTHH：mm：ss`、`1970-01-01T00：00：00`)。預設日期時間為 30 天前。
   + **QueryEndTime （選用）**

      事件分析時間範圍的結束時間。有效時間格式為 ISO8601 （例如 `yyyy-MM-ddTHH：mm：ss`、`1970-01-01T00：00：00`)。預設日期時間是目前時間。  
![\[管理主控台上的輸入參數區段，顯示上述五個參數的文字方塊。\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-analyze-ses-message-sending-status_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **`CheckConcurrency:`**

     確保只有一個針對 Amazon CloudWatch Logs 群組的 Runbook 執行。如果 Runbook 找到另一個以相同日誌群組為目標的執行，則會傳回錯誤並結束。
   + **`AnalyzeSesEvents:`**

     分析存放在自動化參數所指定 Amazon CloudWatch Logs 群組中的 Amazon Simple Email Service 事件。
   + **`OutputFailureReason:`**

     步驟失敗時的輸出執行`AnalyzeSESMessageSendingStatus`步驟失敗訊息。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：
   + **因退信而未傳遞電子郵件訊息的分析輸出**

     電子郵件訊息因退信而無法到達目的地信箱的自動化執行輸出。  
![\[從目的地電子郵件伺服器收到退信的訊息 ID 自動化執行輸出範例。\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-analyze-ses-message-sending-status_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-AnalyzeSESMessageSendingStatus/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-DeploySESSendingLogsToCloudWatchLogs`
<a name="automation-awssupport-deploysessendinglogstocloudwatchlogs"></a>

 **Description** 

 **AWSSupport-DeploySESSendingLogsToCloudWatchLogs ** 自動化 Runbook 可協助設定 Amazon Simple Email Service Amazon SES) 事件發佈至 Amazon CloudWatch Logs (CloudWatch Logs) 所需的基礎設施。此 Runbook 會設定擷取電子郵件傳送事件所需的元件，並將其存放在 CloudWatch Logs 中以進行監控和分析。如需 Amazon SES 事件發佈的詳細資訊，請參閱[使用 Amazon SES 事件發佈監控電子郵件傳送](https://docs.aws.amazon.com/ses/latest/dg/monitor-using-event-publishing.html)。

 當 `ApproveDeployAnalyticEnvironment` 參數設定為 時`approve`，此 Runbook 會在您的帳戶中建立新的 AWS 資源 AWS 。除非設定為 ，否則 CloudFormation 堆疊會在 `SleepTime` 參數中指定的時間之後自動刪除`0`。

 **如何運作？** 

此 Runbook 會執行下列動作：
+ 列出已針對 Amazon Simple Notification Service (Amazon SNS) 主題或交付串流設定事件目的地的現有組態集。
+ 當 `ApproveDeployAnalyticEnvironment` 參數設定為 時，建立 Amazon SES 事件發佈至 CloudWatch Logs 所需的基礎設施`approve`。

當 `ApproveDeployAnalyticEnvironment` 參數設定為 時`approve`， Runbook 會建立下列資源：
+ 名為 的 CloudFormation 堆疊`AWSSupport-SESSendingLogsToCloudWatchLogs`，其中包含：
  + 使用 AWS Key Management Service (AWS KMS) 加密的 Amazon SNS 主題
  + Amazon Simple Queue Service (Amazon SQS) 佇列
  + AWS Lambda 處理電子郵件傳送事件的 函數
  + AWS Identity and Access Management 具有 Amazon SQS 和 CloudWatch Logs 許可的 (IAM) 執行角色
  + CloudWatch Logs 日誌群組
  + AWS KMS 用於加密的金鑰
  + 具有事件目的地的 Amazon SES 組態設定
+ 基礎設施會在下列流程中處理電子郵件傳送事件：Amazon SES 電子郵件傳送事件 → Amazon SES 組態設定 → Amazon SNS 主題 → Amazon SQS 佇列 → Lambda 函數 → CloudWatch Logs
+ 提供 `SesIdentity` 參數時，將建立的組態集建立關聯為指定 Amazon SES 身分的預設組態集。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-DeploySESSendingLogsToCloudWatchLogs) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStackEvents`
+ `cloudformation:DescribeStacks`
+ `iam:CreateRole`
+ `iam:AttachRolePolicy`
+ `iam:PassRole`
+ `kms:CreateKey`
+ `kms:CreateAlias`
+ `lambda:CreateFunction`
+ `lambda:AddPermission`
+ `logs:CreateLogGroup`
+ `logs:PutRetentionPolicy`
+ `ses:CreateConfigurationSet`
+ `ses:CreateConfigurationSetEventDestination`
+ `ses:ListConfigurationSets`
+ `ses:PutEmailIdentityConfigurationSetAttributes`
+ `sns:CreateTopic`
+ `sns:Subscribe`
+ `sqs:CreateQueue`
+ `sqs:SetQueueAttributes`
+ `ssm:DescribeAutomationExecutions`

範例政策：

```
{
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
           "Effect": "Allow",
           "Action": [
               "cloudformation:CreateStack",
               "cloudformation:DeleteStack",
               "cloudformation:DescribeStackEvents",
               "cloudformation:DescribeStacks",
               "iam:CreateRole",
               "iam:AttachRolePolicy",
               "iam:PassRole",
               "kms:CreateKey",
               "kms:CreateAlias",
               "lambda:CreateFunction",
               "lambda:AddPermission",
               "logs:CreateLogGroup",
               "logs:PutRetentionPolicy",
               "ses:CreateConfigurationSet",
               "ses:CreateConfigurationSetEventDestination",
               "ses:ListConfigurationSets",
               "ses:PutEmailIdentityConfigurationSetAttributes",
               "sns:CreateTopic",
               "sns:Subscribe",
               "sqs:CreateQueue",
               "sqs:SetQueueAttributes",
               "ssm:DescribeAutomationExecutions"
           ],
           "Resource": "*"
           }
       ]
       }
```

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-DeploySESSendingLogsToCloudWatchLogs/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-DeploySESSendingLogsToCloudWatchLogs/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 IAM 角色的 Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **ApproveDeployAnalyticEnvironment （選用）：**
     + 描述：（選用） 部署 Amazon SES 事件發佈基礎設施的核准。輸入 `approve` 以建立 CloudFormation 堆疊和相關資源。如果保留空白，則 Runbook 只會顯示目前區域中具有 或 Amazon SNS 事件目的地的現有組態設定。
     + 類型：`String`
     + 允許模式： `^$|^approve$`
     + 預設：`""`
   + **SesIdentity （選用）：**
     + 描述：（選用） 要與新建立的組態集建立關聯的 Amazon SES 身分 （電子郵件地址或網域） 作為預設組態集。這將覆寫指定身分的任何現有預設組態設定。
     + 類型：`String`
     + 預設：`""`
   + **CloudWatchLogGroupName （選用）：**
     + 描述：（選用） 為儲存 Amazon SES 電子郵件傳送事件而建立的 CloudWatch Logs 日誌群組名稱。
     + 類型：`String`
     + 允許模式： `^[0-9a-zA-Z_.#/\\-]{1,512}$`
     + 預設：`/ses/sending_event_logs`
   + **MaskPIIData （選用）：**
     + 描述：（選用） 指定是否在 CloudWatch Logs 中遮罩個人身分識別資訊 (PII) 資料，例如目的地電子郵件地址和電子郵件主旨。設定為 `False` 以在日誌中包含此資訊。
     + 類型：`String`
     + 允許的值： `[True, False]`
     + 預設：`True`
   + **SleepTime （選用）：**
     + 描述：（選用） 在自動刪除 CloudFormation 堆疊之前等待的分鐘數。預設值為 24 小時 (1，440 分鐘），上限為 7 天 (10，080 分鐘）。設定為 `0` 以防止自動刪除。
     + 類型：`String`
     + 允許模式： `^(?:[0-9]|[1-9]\\d{1,3}|100[0-7][0-9])$`
     + 預設：`1440`
   + **RetainCloudWatchLogsOnDeletion （選用）：**
     + 描述：（選用） 指定是否在刪除 CloudFormation 堆疊時保留 CloudWatch Logs 日誌群組。設定為 `False`以刪除日誌群組與堆疊。
     + 類型：`String`
     + 允許的值： `[True, False]`
     + 預設：`True`
   + **UniqueId （選用）：**
     + 描述：(選用) 工作流程的唯一識別符。
     + 類型：`String`
     + 允許模式： `\\{\\{ automation:EXECUTION_ID \\}\\}|[a-zA-Z0-9-]+`
     + 預設：`{{ automation:EXECUTION_ID }}`
     + 軸字元： `64`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **BranchOnValueOfParameterApproveDeployAnalyticEnvironment**

     決定是否要根據`ApproveDeployAnalyticEnvironment`參數值部署 Amazon SES 事件發佈基礎設施。
   + **GetEligibleConfigurationSets**

     擷取現有的 Amazon SES 組態集，並識別已針對交付串流或 Amazon SNS 主題設定事件目的地的組態集。
   + **CheckConcurrency**

     確認不存在現有堆疊，而且沒有此 Runbook 的其他並行執行正在建立相同的堆疊。
   + **DeploySesEventDestinations**

     建立包含 Amazon SES 事件發佈基礎設施的 CloudFormation 堆疊，包括 Amazon SNS 主題、Amazon SQS 佇列、Lambda 函數和 CloudWatch Logs 日誌群組。
   + **RelateConfigurationSetAsDefaultConfigurationSet**

     將新建立的 Amazon SES 組態設定關聯為指定 Amazon SES 身分的預設組態設定 （如果提供）。
   + **SleepBeforeDeleteCloudFormationStack**

     等待 SleepTime 參數中指定的持續時間，然後繼續刪除 CloudFormation 堆疊。
   + **DeleteCloudFormationStack**

     在指定的時段之後刪除 CloudFormation 堆疊。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果。

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-DeploySESSendingLogsToCloudWatchLogs/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/)

# SageMaker AI
<a name="automation-ref-sm"></a>

 AWS Systems Manager 自動化為 Amazon SageMaker AI 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-DisableSageMakerNotebookRootAccess`](AWS-DisableSageMakerNotebookRootAccess.md)

# `AWS-DisableSageMakerNotebookRootAccess`
<a name="AWS-DisableSageMakerNotebookRootAccess"></a>

 **Description** 

`AWS-DisableSageMakerNotebookRootAccess` Runbook 會在 Amazon SageMaker AI 筆記本執行個體上停用根存取。在自動化期間，筆記本執行個體會停止以進行必要的變更。不支援 SageMaker AI Studio 筆記本執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DisableSageMakerNotebookRootAccess) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ NotebookInstanceName

  類型：字串

  描述：（必要） 要停用根存取的 SageMaker AI 筆記本執行個體名稱。
+ StartInstanceAfterUpdate

  類型：布林值

  預設：true

  描述：（選用） 決定筆記本執行個體是否在停用根存取後啟動。此參數的預設設定為 `true`。如果設定為 `true`，執行個體會在停用根存取後啟動。如果設定為 `false`，則停用根存取後，執行個體會保持 `stopped` 狀態。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `sagemaker:DescribeNotebookInstance`
+ `sagemaker:StartNotebookInstance`
+ `sagemaker:StopNotebookInstance`
+ `sagemaker:UpdateNotebookInstance`

 **文件步驟** 
+ CheckNotebookInstanceStatus (aws：executeAwsApi)：檢查筆記本執行個體的目前狀態。
+ StopOrUpdateNotebookInstance (aws：branch)：根據筆記本執行個體狀態的分支。
+ StopNotebookInstance (aws：executeAwsApi)：如果狀態為 ，則啟動執行個體`stopped`。
+ WaitForInstanceToStop (aws：waitForAwsResourceProperty)：驗證執行個體為 `stopped`。
+ UpdateNotebookInstance (aws：executeAwsApi)：停用筆記本執行個體的根存取權。
+ WaitForNotebookUpdate (aws：waitForAwsResourceProperty)：確認根存取已停用且執行個體的狀態`stopped`。
+ ChooseInstanceStart (aws：branch)：根據執行個體是否應啟動的分支。
+ StartNotebookInstance (aws：executeAwsApi)：啟動筆記本執行個體。
+ VerifyNotebookInstanceStatus (aws：waitForAwsResourceProperty)：驗證執行個體是否在停用根存取`available`之前。
+ VerifyNotebookInstanceRootAccess (aws：assertAwsResourceProperty)：確認筆記本執行個體根存取設定已成功停用。

# Secrets Manager
<a name="automation-ref-asm"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Secrets Manager。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-DeleteSecret`](automation-aws-delete-secret.md)
+ [`AWSConfigRemediation-RotateSecret`](automation-aws-rotate-secret.md)

# `AWSConfigRemediation-DeleteSecret`
<a name="automation-aws-delete-secret"></a>

 **Description** 

 `AWSConfigRemediation-DeleteSecret` Runbook 會刪除秘密和所有存放在其中的版本 AWS Secrets Manager。您可以選擇性地指定復原時段，在此期間可以還原秘密。如果您未指定 `RecoveryWindowInDays` 參數的值，則操作預設為 30 天。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteSecret) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ RecoveryWindowInDays

  類型：整數

  有效值：7-30

  預設：30

  描述：（選用） 您可以還原秘密的天數。
+ SecretId

  類型：字串

  描述：（必要） 您要刪除之秘密的 Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `secretsmanager:DeleteSecret` 
+  `secretsmanager:DescribeSecret` 

 **文件步驟** 
+  `aws:executeAwsApi` - 刪除您在 `SecretId` 參數中指定的秘密。
+  `aws:executeScript` - 驗證秘密已排定刪除。

# `AWSConfigRemediation-RotateSecret`
<a name="automation-aws-rotate-secret"></a>

 **Description** 

 `AWSConfigRemediation-RotateSecret` Runbook 會輪換存放在其中的秘密 AWS Secrets Manager。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-RotateSecret) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ RotationInterval

  類型：間隔

  有效值：1-365

  描述：（必要） 秘密輪換之間的天數。
+ RotationLambdaArn

  類型：字串

  描述：（必要） 可輪換秘密之函數的 AWS Lambda Amazon Resource Name (ARN)。
+ SecretId

  類型：字串

  描述：（必要） 您要輪換之秘密的 Amazon Resource Name (ARN)。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `lambda:InvokeFunction` 
+  `secretsmanager:DescribeSecret` 
+  `secretsmanager:RotateSecret` 

 **文件步驟** 
+  `aws:executeAwsApi` - 輪換您在 `SecretId` 參數中指定的秘密。
+  `aws:executeScript` - 驗證已在秘密上啟用輪換。

# Security Hub CSPM
<a name="automation-ref-ash"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Security Hub CSPM。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-EnableSecurityHub`](automation-aws-enable-security-hub.md)

# `AWSConfigRemediation-EnableSecurityHub`
<a name="automation-aws-enable-security-hub"></a>

 **Description** 

 `AWSConfigRemediation-EnableSecurityHub` Runbook 會為您執行自動化 AWS 區域 的 AWS 帳戶 和 啟用 AWS Security Hub CSPM (Security Hub CSPM)。如需 Security Hub CSPM 的相關資訊，請參閱*AWS Security Hub 《 使用者指南》*中的[什麼是 AWS Security Hub CSPM？](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableSecurityHub) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ EnableDefaultStandards

  類型：布林值

  預設：true

   描述：（必要） 如果設定為 `true` ，則會啟用 Security Hub CSPM 指定的預設安全標準。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `securityhub:DescribeHub` 
+  `securityhub:EnableSecurityHub` 
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 

 **文件步驟** 
+  `aws:executeAwsApi` - 在目前帳戶和區域中啟用 Security Hub CSPM。
+  `aws:executeAwsApi` - 驗證 Security Hub CSPM 是否已啟用。

# AWS Shield
<a name="automation-ref-shd"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Shield。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSPremiumSupport-DDoSResiliencyAssessment`](automation-aws-ddosresiliencyassessment.md)

# `AWSPremiumSupport-DDoSResiliencyAssessment`
<a name="automation-aws-ddosresiliencyassessment"></a>

 **Description** 

 `AWSPremiumSupport-DDoSResiliencyAssessment`、 AWS Systems Manager automation Runbook 可協助您根據 的 AWS Shield Advanced 保護，檢查資源的 DDoS 漏洞和組態 AWS 帳戶。它為容易遭受分散式阻斷服務 (DDoS) 攻擊的資源提供組態設定報告。它用於收集、分析和評估下列資源：Amazon Route 53、Amazon Load Balancer、Amazon CloudFront 分佈 AWS Global Accelerator 和 AWS 彈性 IPs以根據建議的 AWS Shield Advanced 保護最佳實務進行組態設定。最終組態報告可在您選擇的 Amazon S3 儲存貯體中作為 HTML 檔案提供。

 **如何運作？** 

此 Runbook 包含一系列針對已啟用公開存取的各種資源類型的檢查，以及它們是否已根據 [AWS DDoS 最佳實務白皮書](https://docs.aws.amazon.com//pdfs/whitepapers/latest/aws-best-practices-ddos-resiliency/aws-best-practices-ddos-resiliency.pdf)中的建議設定保護。Runbook 會執行下列動作：
+ 檢查 AWS Shield Advanced 的訂閱是否已啟用。
+ 如果啟用，它會尋找是否有任何 Shield Advanced 受保護的資源。
+ 它會尋找 中的所有全域和區域資源， AWS 帳戶 並檢查這些資源是否受到 Shield 保護。
+ 它需要評估的資源類型參數、Amazon S3 儲存貯體名稱和 Amazon S3 儲存貯體 AWS 帳戶 ID (S3BucketOwner)。
+ 它會將調查結果傳回為存放在提供的 Amazon S3 儲存貯體中的 HTML 報告。

輸入參數會`AssessmentType`決定是否對所有資源執行檢查。根據預設， Runbook 會檢查所有類型的資源。如果只選取 `GlobalResources`或 `RegionalResources` 參數，則 Runbook 只會對選取的資源類型執行檢查。

**重要**  
存取 `AWSPremiumSupport-*` Runbook 需要 Business \$1 Support、Enterprise Support 或 Unified Operations Subscription。如需詳細資訊，請參閱[比較 AWS 支援 計劃](https://aws.amazon.com/premiumsupport/plans/)。
此 Runbook 需要 `ACTIVE`[AWS Shield Advanced 訂閱。 ](https://docs.aws.amazon.com/waf/latest/developerguide/enable-ddos-prem.html)

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-DDoSResiliencyAssessment) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ AssessmentType

  類型：字串

  描述：（選用） 決定要評估 DDoS 彈性評估的資源類型。根據預設， Runbook 將評估全域和區域資源。對於區域資源， Runbook 會描述所有應用程式 (ALB) 和網路 (NLB) 負載平衡器，以及您 AWS 帳戶/區域中的所有 Auto Scaling 群組。

  有效值：`['Global Resources', 'Regional Resources', 'Global and Regional Resources']`

  預設：全域和區域資源
+ S3BucketName

  類型：`AWS::S3::Bucket::Name`

  描述：（必要） 將上傳報告的 Amazon S3 儲存貯體名稱。

  允許模式： `^[0-9a-z][a-z0-9\-\.]{3,63}$`
+ S3BucketOwnerAccount

  類型：字串

  描述：（選用） AWS 帳戶 擁有 Amazon S3 儲存貯體的 。如果 Amazon S3 儲存貯體屬於不同的 ，請指定此參數 AWS 帳戶，否則您可以將此參數保留空白。

  允許模式： `^$|^[0-9]{12,13}$`
+ S3BucketOwnerRoleArn

  類型：`AWS::IAM::Role::Arn`

  描述：（選用） IAM 角色的 ARN，具有描述 Amazon S3 儲存貯體的許可，並在儲存貯體位於不同的 中時 AWS 帳戶 封鎖公有存取組態 AWS 帳戶。如果未指定此參數，則 Runbook 會使用啟動此 Runbook 的 `AutomationAssumeRole`或 IAM 使用者 （如果`AutomationAssumeRole`未指定）。請參閱 Runbook 描述中的必要許可區段。

  允許模式： `^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12,13}:role/.*$`
+ S3BucketPrefix

  類型：字串

  描述：（選用） Amazon S3 內儲存結果之路徑的字首。

  允許模式： `^[a-zA-Z0-9][-./a-zA-Z0-9]{0,255}$|^$`

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `autoscaling:DescribeAutoScalingGroups`
+ `cloudfront:ListDistributions`
+ `ec2:DescribeAddresses`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeInstances`
+ `elasticloadbalancing:DescribeLoadBalancers`
+ `elasticloadbalancing:DescribeTargetGroups`
+ `globalaccelerator:ListAccelerators`
+ `iam:GetRole`
+ `iam:ListAttachedRolePolicies`
+ `route53:ListHostedZones`
+ `route53:GetHealthCheck`
+ `shield:ListProtections`
+ `shield:GetSubscriptionState`
+ `shield:DescribeSubscription`
+ `shield:DescribeEmergencyContactSettings`
+ `shield:DescribeDRTAccess`
+ `waf:GetWebACL`
+ `waf:GetRateBasedRule`
+ `wafv2:GetWebACL`
+ `wafv2:GetWebACLForResource`
+ `waf-regional:GetWebACLForResource`
+ `waf-regional:GetWebACL`
+ `s3:ListBucket`
+ `s3:GetBucketAcl`
+ `s3:GetBucketLocation`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetBucketEncryption`
+ `s3:GetAccountPublicAccessBlock`
+ `s3:PutObject`

 **自動化擔任角色的 IAM 政策範例** 

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

****  

```
                {
                        "Version":"2012-10-17",		 	 	 
                        "Statement": [
                            {
                                "Action": [
                                    "s3:ListBucket",
                                    "s3:GetBucketAcl",
                                    "s3:GetAccountPublicAccessBlock"
                                ],
                                "Resource": "*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "s3:ListBucket",
                                    "s3:GetBucketAcl",
                                    "s3:GetBucketLocation",
                                    "s3:GetBucketPublicAccessBlock",
                                    "s3:GetBucketPolicyStatus",
                                    "s3:GetEncryptionConfiguration"
                                ],
                                "Resource": "arn:aws:s3:::<bucket-name>",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "s3:PutObject"
                                ],
                                "Resource": "arn:aws:s3:::<bucket-name>/*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "autoscaling:DescribeAutoScalingGroups",
                                    "cloudfront:ListDistributions",
                                    "ec2:DescribeInstances",
                                    "ec2:DescribeAddresses",
                                    "ec2:DescribeNetworkAcls",
                                    "elasticloadbalancing:DescribeLoadBalancers",
                                    "elasticloadbalancing:DescribeTargetGroups",
                                    "globalaccelerator:ListAccelerators",
                                    "iam:GetRole",
                                    "iam:ListAttachedRolePolicies",
                                    "route53:ListHostedZones",
                                    "route53:GetHealthCheck",
                                    "shield:ListProtections",
                                    "shield:GetSubscriptionState",
                                    "shield:DescribeSubscription",
                                    "shield:DescribeEmergencyContactSettings",
                                    "shield:DescribeDRTAccess",
                                    "waf:GetWebACL",
                                    "waf:GetRateBasedRule",
                                    "wafv2:GetWebACL",
                                    "wafv2:GetWebACLForResource",
                                    "waf-regional:GetWebACLForResource",
                                    "waf-regional:GetWebACL"
                                ],
                                "Resource": "*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": "iam:PassRole",
                                "Resource": "arn:aws:iam::111122223333:role/automation-assume-role-name",
                                "Effect": "Allow"
                            }
                        ]
                    }
```

------

 **指示** 

1. 導覽至 AWS Systems Manager 主控台中的 [AWSPremiumSupport-DDoSResiliencyAssessment](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-DDoSResiliencyAssessment)。

1. 選取**執行自動化**

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **AssessmentType （選用）：**

     決定要評估 DDoS 彈性評估的資源類型。根據預設， Runbook 會評估全域和區域資源。
   + **S3BucketName （必要）：**

     以 HTML 格式儲存評估報告的 Amazon S3 儲存貯體名稱。
   + **S3BucketOwner （選用）：**

     用於所有權驗證的 Amazon S3 儲存貯體 AWS 帳戶 ID。如果報告需要發佈到跨帳戶 Amazon S3 儲存貯體，則 ID 為必要 AWS 帳戶 ，如果 Amazon S3 儲存貯體與自動化啟動 AWS 帳戶 相同，則為選用。
   + **S3BucketPrefix （選用）：**

     Amazon S3 內儲存結果之路徑的任何字首。  
![\[Input parameters form for AWS Systems Manager Automation with fields for role, resources, and S3 bucket settings.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/premsupport-ddos-resiliency-assessment_input_parameters.png)

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **CheckShieldAdvancedState：**

     驗證 是否已 AWS 帳戶 訂閱 AWS Shield Advanced ，以及 Runbook 是否可存取 Amazon S3 儲存貯體。
   + **S3BucketSecurityChecks：**

     檢查「S3BucketName」中指定的 Amazon S3 儲存貯體是否允許匿名或公有讀取或寫入存取許可、儲存貯體是否已啟用靜態加密，以及「S3BucketOwner」中提供的 ID AWS 帳戶 是否為 Amazon S3 儲存貯體的擁有者。
   + **BranchOnShieldAdvancedStatus：**

     根據 AWS Shield Advanced 訂閱狀態和/或 Amazon S3 儲存貯體擁有權狀態分支文件步驟。
   + **ShieldAdvancedConfigurationReview：**

     檢閱 Shield Advanced 組態，以確保有最少的必要詳細資訊。例如： AWS Shield 回應團隊 (SRT) 的 IAM 存取、聯絡人清單詳細資訊和 SRT 主動參與狀態。
   + **ListShieldAdvancedProtections：**

     列出 Shield Protected Resources，並為每個服務建立一組受保護的資源。
   + **BranchOnResourceTypeAndCount：**

     根據資源類型參數的值和 Shield 保護的全域資源數量，分支文件步驟。
   + **ReviewGlobalResources：**

     檢閱 Shield Advanced 保護的全域資源，例如 Route 53 Hosted Zones、CloudFront Distributions 和 Global Accelerators。
   + **BranchOnResourceType：**

     如果為全域、區域或兩者，根據資源類型選擇分支文件步驟。
   + **ReviewRegionalResources：**

     檢閱 Shield Advanced 受保護的區域資源，例如 Application Load Balancer、Network Load Balancer、Classic Load Balancer、Amazon Elastic Compute Cloud (Amazon EC2) 執行個體 （彈性 IPs)。
   + **SendReportToS3：**

     將 DDoS 評估報告詳細資訊上傳至 Amazon S3 儲存貯體。

1. 完成後，評估報告 HTML 檔案的 URI 會在 Amazon S3 儲存貯體中提供：

   **成功執行 Runbook 的報告的 S3 主控台連結和 Amazon S3 URI**  
![\[Execution status showing successful completion with 9 steps executed and no failures.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/premsupport-ddos-resiliency-assessment_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-DDoSResiliencyAssessment)
+ [執行自動化](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 服務文件
+ [AWS Shield Advanced](https://docs.aws.amazon.com//waf/latest/developerguide/ddos-advanced-summary.html)

# Amazon SNS
<a name="automation-ref-sns"></a>

 AWS Systems Manager 自動化為 Amazon Simple Notification Service 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-EnableSNSTopicDeliveryStatusLogging`](aws-enable-sns-topic-delivery-status-logging.md)
+ [`AWSConfigRemediation-EncryptSNSTopic`](automation-aws-encrypt-sns-topic.md)
+ [`AWS-PublishSNSNotification`](automation-aws-publishsnsnotification.md)

# `AWS-EnableSNSTopicDeliveryStatusLogging`
<a name="aws-enable-sns-topic-delivery-status-logging"></a>

 **Description** 

 `AWS-EnableSNSTopicDeliveryStatusLogging` Runbook 會設定 `HTTP`、Amazon Data Firehose、Lambda`Platform application`、 或 Amazon Simple Queue Service (Amazon SQS) 端點的交付狀態記錄。這可讓 Amazon SNS 將失敗的提醒和成功提醒通知的範例百分比記錄到 Amazon CloudWatch。如果已針對主題設定交付狀態記錄，則 Runbook 會將現有的組態取代為您為輸入參數指定的新值。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableSNSTopicDeliveryStatusLogging) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ EndpointType

  類型：字串

  有效值：
  + HTTP
  + Firehose
  + Lambda
  + 應用程式
  + SQS

  描述：（必要） 您要記錄交付狀態通知訊息的 Amazon SNS 主題端點類型。
+ TopicArn

  類型：字串

  描述：（必要） 您要為其設定交付狀態記錄之 Amazon SNS 主題的 ARN。
+ SuccessFeedbackRoleArn

  類型：字串

  描述：（必要） Amazon SNS 用來將日誌成功通知訊息傳送至 CloudWatch 的 IAM 角色 ARN。
+ SuccessFeedbackSampleRate

  類型：字串

  有效值：0-100

  描述：（必要） 指定 Amazon SNS 主題要取樣的成功訊息百分比。
+ FailureFeedbackRoleArn

  類型：字串

  描述：（必要） Amazon SNS 用來將失敗通知訊息日誌傳送至 CloudWatch 的 IAM 角色 ARN。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:PassRole` 
+  `sns:GetTopicAttributes` 
+  `sns:SetTopicAttributes` 

 **文件步驟** 
+  `aws:executeAwsApi` - 將 `SuccessFeedbackRoleArn` 參數的值套用至 Amazon SNS 主題。
+  `aws:executeAwsApi` - 將 `SuccessFeedbackSampleRate` 參數的值套用至 Amazon SNS 主題。
+  `aws:executeAwsApi` - 將 `FailureFeedbackRoleArn` 參數的值套用至 Amazon SNS 主題。
+  `aws:executeScript` - 確認已在 Amazon SNS 主題上啟用交付狀態記錄。

 **輸出** 

VerifyDeliveryStatusLoggingEnabled.GetTopicAttributesResponse - `GetTopicAttributes` API 操作的回應。

VerifyDeliveryStatusLoggingEnabled.VerifyDeliveryStatusLoggingEnabled - 指出成功驗證交付狀態記錄的訊息。

# `AWSConfigRemediation-EncryptSNSTopic`
<a name="automation-aws-encrypt-sns-topic"></a>

 **Description** 

 `AWSConfigRemediation-EncryptSNSTopic` Runbook 會在您使用 () 客戶受管金鑰指定的 Amazon Simple Notification Service AWS Key Management Service (Amazon SNS AWS KMS) 主題上啟用加密。此 Runbook 應僅用作基準，以確保您的 Amazon SNS 主題根據最低建議的安全最佳實務進行加密。我們建議使用不同的客戶受管金鑰加密多個主題。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EncryptSNSTopic) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ KmsKeyArn

  類型：字串

  描述：（必要） 您要用來加密 Amazon SNS 主題之客戶受管金鑰的 AWS KMS Amazon Resource Name (ARN)。 Amazon SNS 
+ TopicArn

  類型：字串

  描述：（必要） 您要加密之 Amazon SNS 主題的 ARN。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `sns:GetTopicAttributes` 
+  `sns:SetTopicAttributes` 

 **文件步驟** 
+  `aws:executeAwsApi` - 加密您在 `TopicArn` 參數中指定的 Amazon SNS 主題。
+  `aws:assertAwsResourceProperty` - 確認加密已在 Amazon SNS 主題上啟用。

# `AWS-PublishSNSNotification`
<a name="automation-aws-publishsnsnotification"></a>

 **Description** 

發佈通知至 Amazon SNS。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-PublishSNSNotification) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ 訊息

  類型：字串

  描述：(必要) 要包含在 SNS 通知的訊息。
+ TopicArn

  類型：字串

  描述：(必要) 要發佈通知之 SNS 主題的 ARN。

# Amazon SQS
<a name="automation-ref-sqs"></a>

 AWS Systems Manager 自動化為 Amazon Simple Queue Service (Amazon SQS) 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-EnableSQSEncryption`](aws-enablesqsencryption.md)

# `AWS-EnableSQSEncryption`
<a name="aws-enablesqsencryption"></a>

 **Description** 

 `AWS-EnableSQSEncryption` Runbook 可為 Amazon Simple Queue Service (Amazon SQS) 佇列啟用靜態加密。Amazon SQS 佇列可以使用 Amazon SQS 受管金鑰 (SSE-SQS) 或使用 AWS Key Management Service (AWS KMS) 受管金鑰 (SSE-KMS) 加密。您指派給佇列的金鑰必須具有金鑰政策，其中包含授權使用該佇列的所有主體的許可。啟用加密後，匿名`SendMessage`和對加密佇列的`ReceiveMessage`請求會遭到拒絕。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableSQSEncryption) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ QueueUrl

  類型：字串

  描述：（必要） 您要啟用加密的 Amazon SQS 佇列 URL。
+ KmsKeyId

  類型：字串

  描述：（選用） 用於加密的 AWS KMS 金鑰。此值可以是全域唯一識別符、別名或金鑰的 ARN，或是以 "alias/" 開頭的別名名稱。您也可以透過指定別名 aws/sqs 來使用 AWS 受管金鑰。
+ KmsDataKeyReusePeriodSeconds

  類型：字串

  有效值：60-86400

  預設：300

  描述：（選用） Amazon SQS 佇列可以重複使用資料金鑰來加密或解密訊息的時間長度，然後再 AWS KMS 再次呼叫。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `sqs:GetQueueAttributes`
+ `sqs:SetQueueAttributes`

 **文件步驟** 
+ SelectKeyType (`aws:branch`)：根據指定金鑰的分支。
+ PutAttributeSseKms (`aws:executeAwsApi`) - 更新 Amazon SQS 佇列以使用為加密指定的 AWS KMS 金鑰。
+ PutAttributeSseSqs (`aws:executeAwsApi`) - 更新 Amazon SQS 佇列以使用預設金鑰進行加密。
+ VerifySqsEncryptionKms (`aws:assertAwsResourceProperty`) - 驗證 Amazon SQS 佇列上已啟用加密。
+ VerifySqsEncryptionDefault (`aws:assertAwsResourceProperty`) - 驗證 Amazon SQS 佇列上已啟用加密。

# 步驟函數
<a name="automation-ref-sfn"></a>

 AWS Systems Manager 自動化為 AWS Step Functions （步驟函數） 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-EnableStepFunctionsStateMachineLogging`](aws-enablestepfunctionsstatemachinelogging.md)

# `AWS-EnableStepFunctionsStateMachineLogging`
<a name="aws-enablestepfunctionsstatemachinelogging"></a>

 **Description** 

`AWS-EnableStepFunctionsStateMachineLogging` Runbook 會在您指定的 AWS Step Functions 狀態機器上啟用或更新記錄。最低記錄層級必須設定為 `ALL`、 `ERROR`或 `FATAL`。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-EnableStepFunctionsStateMachineLogging) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ Level

  類型：字串

  有效值： ALL \$1 ERROR \$1 FATAL

  描述：（必要） 您要啟用加密的 Amazon SQS 佇列 URL。
+ LogGroupArn

  類型：字串

  描述：（必要） 您要傳送狀態機器日誌的 Amazon CloudWatch Logs 日誌群組 ARN。
+ StateMachineArn

  類型：字串

  描述：（必要） 您要啟用登入之狀態機器的 ARN。
+ IncludeExecutionData

  類型：布林值

  預設：False

  描述：（選用） 判斷日誌中是否包含執行資料。
+ TracingConfiguration

  類型：布林值

  預設：False

  描述：（選用） 判斷是否啟用 AWS X-Ray 追蹤。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `states:DescribeStateMachine`
+ `states:UpdateStateMachine`

 **文件步驟** 
+  `EnableStepFunctionsStateMachineLogging (aws:executeAwsApi)` - 使用指定的記錄組態更新指定的狀態機器。
+  `VerifyStepFunctionsStateMachineLoggingEnabled (aws:assertAwsResourceProperty)` - 確認已為指定的狀態機器啟用記錄。

 **輸出** 
+ EnableStepFunctionsStateMachineLogging.Response - UpdateStateMachine API 呼叫的回應。

# Systems Manager
<a name="automation-ref-sys"></a>

 AWS Systems Manager 自動化為 Systems Manager 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-BulkDeleteAssociation`](aws-bulkdeleteassociation.md)
+ [`AWS-BulkEditOpsItems`](automation-aws-bulk-edit-opsitems.md)
+ [`AWS-BulkResolveOpsItems`](automation-aws-bulk-resolve-opsitems.md)
+ [`AWS-ConfigureMaintenanceWindows`](aws-configuremaintenancewindows.md)
+ [`AWS-CreateManagedLinuxInstance`](automation-aws-createmanagedlinuxinstance.md)
+ [`AWS-CreateManagedWindowsInstance`](automation-aws-createmanagedwindowsinstance.md)
+ [`AWSConfigRemediation-EnableCWLoggingForSessionManager`](automation-aws-enable-cw-log-sm.md)
+ [`AWS-ExportOpsDataToS3`](automation-aws-exportopsdatatos3.md)
+ [`AWS-ExportPatchReportToS3`](automation-aws-exportpatchreporttos3.md)
+ [`AWS-SetupInventory`](automation-aws-setupinventory.md)
+ [`AWS-SetupManagedInstance`](automation-aws-setupmanagedinstance.md)
+ [`AWS-SetupManagedRoleOnEC2Instance`](automation-aws-setupmanagedroleonec2instance.md)
+ [`AWSSupport-TroubleshootManagedInstance`](automation-awssupport-troubleshoot-managed-instance.md)
+ [`AWSSupport-TroubleshootPatchManagerLinux`](automation-troubleshoot-patch-manager-linux.md)
+ [`AWSSupport-TroubleshootSessionManager`](automation-awssupport-troubleshoot-session-manager.md)

# `AWS-BulkDeleteAssociation`
<a name="aws-bulkdeleteassociation"></a>

 **Description** 

`AWS-BulkDeleteAssociation` Runbook 可協助您一次刪除最多 50 個 Systems Manager State Manager 關聯。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-BulkDeleteAssociation) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ AssociationIds

  類型：StringList

  描述：（必要） 以逗號分隔的清單，列出您要刪除的關聯 IDs。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:DeleteAssociation` 

 **文件步驟** 
+  `aws:executeScript` - 刪除您在 `AssociationIds` 參數中指定的關聯。

# `AWS-BulkEditOpsItems`
<a name="automation-aws-bulk-edit-opsitems"></a>

 **Description** 

 `AWS-BulkEditOpsItems` Runbook 可協助您編輯 AWS Systems Manager OpsItems 的狀態、嚴重性、類別或優先順序。此自動化一次最多可以編輯 50 OpsItems。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-BulkEditOpsItems) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ Category

  類型：字串

  有效值：
  + 可用性
  + Cost
  + 未變更
  + 效能
  + 復原
  + 安全

  預設：無變更

  描述：（選用） 您要為編輯的 OpsItems 指定的新類別。
+ OpsItemIds

  類型：StringList

  描述：（必要） 您想要編輯的 OpsItems IDs 逗號分隔清單 （例如 oi-XXXXXXXXXXXX，oi-XXXXXXXXXXXX)。
+ Priority

  類型：字串

  有效值：
  + 未變更
  + 1
  + 2
  + 3
  + 4
  + 5

  預設：無變更

  描述：（選用） 已編輯 OpsItems 相對於系統中其他 OpsItems 的重要性。
+ 嚴重性

  類型：字串

  有效值：
  + 未變更
  + 1
  + 2
  + 3
  + 4

  預設：無變更

  描述：（選用） 已編輯 OpsItems 的嚴重性。
+ WaitTimeBetweenEditsInSecs

  類型：字串

  有效值：0.0-2.0

  預設：0.8

   描述：（選用） 自動化在呼叫 `UpdateOpsItems`操作之間等待的時間。
+ 狀態

  類型：字串

  有效值：
  + InProgress
  + 未變更
  + 開啟
  + Resolved (已解決)

  預設：無變更

  描述：（選用） 已編輯 OpsItems 的新狀態。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:GetAutomationExecution` 
+  `ssm:StartAutomationExecution` 
+  `ssm:UpdateOpsItem` 

 **文件步驟** 
+  `aws:executeScript` - 根據您為 `Category`、、 `Priority` `Severity` 和 `OpsItemIds` 參數指定的值，編輯您在 `Status` 參數中指定的 OpsItems。

# `AWS-BulkResolveOpsItems`
<a name="automation-aws-bulk-resolve-opsitems"></a>

 **Description** 

 `AWS-BulkResolveOpsItems` Runbook resolves AWS Systems Manager OpsItems 符合您指定的篩選條件。您也可以指定 OpsItemId，以使用 `OpsInsightsId` 參數新增至解析的 OpsItems。如果您指定 `S3BucketName` 參數的值，結果摘要會傳送至 Amazon Simple Storage Service (Amazon S3) 儲存貯體。若要在結果摘要傳送到 Amazon S3 儲存貯體後收到通知，請指定 `SnsTopicArn` 參數的值。此自動化一次最多可解析 1，000 OpsItems。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-BulkResolveOpsItems) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ 篩選條件

  類型：字串

   描述：（必要） 傳回您要解析之 OpsItems 的篩選條件鍵值對。例如 `[{"Key": "Status", "Values": ["Open"], "Operator": "Equal"}]`。若要進一步了解可用於篩選 OpsItems 回應的選項，請參閱 *AWS Systems Manager API 參考* 中的 [OpsItemFilters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeOpsItems.html#systemsmanager-DescribeOpsItems-request-OpsItemFilters)。
+ OpsInsightId

  類型：字串

  描述：（選用） 您要新增至已解析 OpsItems 的相關資源識別符。
+ S3BucketName

  類型：字串

  描述：（選用） 您要傳送結果摘要的 Amazon S3 儲存貯體名稱。
+ SnsMessage

  類型：字串

  描述：（選用） 您希望 Amazon Simple Notification Service (Amazon SNS) 在自動化完成時傳送的通知。
+ SnsTopicArn

  類型：字串

  描述：（選用） 當結果摘要傳送到 Amazon S3 時，您要通知的 Amazon SNS 主題 ARN。 Amazon S3

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `s3:GetBucketAcl` 
+  `s3:PutObject` 
+  `sns:Publish` 
+  `ssm:DescribeOpsItems` 
+  `ssm:GetAutomationExecution` 
+  `ssm:StartAutomationExecution` 
+  `ssm:UpdateOpsItem` 

 **文件步驟** 
+  `aws:executeScript` - 根據您指定的篩選條件收集並解析 OpsItems。如果您為 `OpsInsightId` 參數指定值，則會將該值新增為相關資源。
+  `aws:executeScript` - 如果您指定 `S3BucketName` 參數的值，則結果摘要會傳送至 Amazon S3 儲存貯體。
+  `aws:executeScript` - 如果您為 `SnsTopicArn` 參數指定了值，則結果摘要傳送至 Amazon S3 後，系統會傳送通知至 Amazon SNS 主題，如果指定的話，則會包含 `SnsMessage` 參數值。 Amazon S3 

# `AWS-ConfigureMaintenanceWindows`
<a name="aws-configuremaintenancewindows"></a>

 **Description** 

`AWS-ConfigureMaintenanceWindows` Runbook 可協助您啟用或停用多個 Systems Manager 維護時段。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ConfigureMaintenanceWindows) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ MaintenanceWindows

  類型：StringList

  描述：（必要） 您想要啟用或停用的維護時段 IDs 的逗號分隔清單。
+ MaintenanceWindowsStatus

  類型：字串

  有效值："True" \$1 "False"

  預設：「False」

  描述：（必要） 判斷是否啟用或停用維護時段。指定「True」以啟用維護時段，並指定「False」以停用它們。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:GetMaintenanceWindow` 
+  `ssm:UpdateMaintenanceWindow` 

 **文件步驟** 
+  `aws:executeScript` - 收集您在 `MaintenanceWindows` 參數中指定的維護時段狀態，並啟用或停用維護時段。

# `AWS-CreateManagedLinuxInstance`
<a name="automation-aws-createmanagedlinuxinstance"></a>

 **Description** 

建立針對 Systems Manager 設定的 Linux EC2 執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateManagedLinuxInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AmiId

  類型：字串

  描述：用來啟動執行個體的 （必要） AMI ID。
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ GroupName

  類型：字串

  預設：SSMSecurityGroupForLinuxInstances

  描述：(必要) 要建立的安全群組之名稱。
+ HttpTokens

  類型：字串

  有效值：選用 \$1 必要

  預設：選用

  描述：（選用） IMDSv2 使用字符支援的工作階段。將 HTTP 字符的使用設定為 `optional`或 `required`，以判斷 IMDSv2 是選用還是必要。
+ InstanceType

  類型：字串

  預設：t2.medium

  描述：(必要) 要啟動的執行個體類型。預設為 t2.medium。
+ KeyPairName

  類型：字串

  描述：(必要) 建立執行個體時要使用的金鑰對。
+ RemoteAccessCidr

  類型：字串

  預設：0.0.0.0/0

  描述：(必要) 建立安全群組，並將 SSH 連接埠 (連接埠範圍 22) 開放給 CIDR 指定的 IP (預設為 0.0.0.0/0)。如果安全群組已存在，則不會修改，規則也不會變更。
+ RoleName

  類型：字串

  預設：SSMManagedInstanceProfileRole

  描述：(必要) 要建立的角色之名稱。
+ StackName

  類型：字串

  預設：CreateManagedInstanceStack\$1\$1automation:EXECUTION\$1ID\$1\$1

  描述：（選用） 指定此 Runbook 使用的堆疊名稱
+ SubnetId

  類型：字串

  預設：Default

  描述：(必要) 新的執行個體會部署至此子網路或預設子網路 (若未指定)。
+ VpcId

  類型：字串

  預設：Default

  描述：（必要） 如果未指定，新的執行個體將部署到此 Amazon Virtual Private Cloud (Amazon VPC) 或預設 Amazon VPC。

# `AWS-CreateManagedWindowsInstance`
<a name="automation-aws-createmanagedwindowsinstance"></a>

 **Description** 

為針對 Systems Manager Windows Server 設定的 建立 EC2 執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateManagedWindowsInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**

 **參數** 
+ AmiId

  類型：字串

   預設：`{{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}`

  描述：用來啟動執行個體的 （必要） AMI ID。
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ GroupName

  類型：字串

  預設：SSMSecurityGroupForLinuxInstances

  描述：(必要) 要建立的安全群組之名稱。
+ HttpTokens

  類型：字串

  有效值：選用 \$1 必要

  預設：選用

  描述：（選用） IMDSv2 使用字符支援的工作階段。將 HTTP 字符的使用設定為 `optional`或 `required`，以判斷 IMDSv2 是選用還是必要。
+ InstanceType

  類型：字串

  預設：t2.medium

  描述：(必要) 要啟動的執行個體類型。預設為 t2.medium。
+ KeyPairName

  類型：字串

  描述：(必要) 建立執行個體時要使用的金鑰對。
+ RemoteAccessCidr

  類型：字串

  預設：0.0.0.0/0

  描述：(必要) 建立安全群組，並將 RDP 連接埠 (連接埠範圍 3389) 開放給 CIDR 指定的 IP (預設為 0.0.0.0/0)。如果安全群組已存在，則不會修改，規則也不會變更。
+ RoleName

  類型：字串

  預設：SSMManagedInstanceProfileRole

  描述：(必要) 要建立的角色之名稱。
+ StackName

  類型：字串

  預設：CreateManagedInstanceStack\$1\$1automation:EXECUTION\$1ID\$1\$1

  描述：（選用） 指定此 Runbook 使用的堆疊名稱
+ SubnetId

  類型：字串

  預設：Default

  描述：(必要) 新的執行個體會部署至此子網路或預設子網路 (若未指定)。
+ VpcId

  類型：字串

  預設：Default

  描述：（必要） 如果未指定，新的執行個體將部署到此 Amazon Virtual Private Cloud (Amazon VPC) 或預設 Amazon VPC。

# `AWSConfigRemediation-EnableCWLoggingForSessionManager`
<a name="automation-aws-enable-cw-log-sm"></a>

 **Description** 

 `AWSConfigRemediation-EnableCWLoggingForSessionManager` Runbook 可讓 AWS Systems Manager Session Manager (Session Manager) 工作階段將輸出日誌儲存到 Amazon CloudWatch (CloudWatch) 日誌群組。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableCWLoggingForSessionManager) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DestinationLogGroup

  類型：字串

  描述：（必要） CloudWatch 日誌群組的名稱。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ssm:GetDocument` 
+  `ssm:UpdateDocument` 
+  `ssm:CreateDocument` 
+  `ssm:UpdateDefaultDocumentVersion` 
+  `ssm:DescribeDocument` 

 **文件步驟** 
+  `aws:executeScript` - 接受 CloudWatch 日誌群組，以更新存放 Session Manager 工作階段輸出日誌偏好設定的文件，或在不存在時建立一個。

# `AWS-ExportOpsDataToS3`
<a name="automation-aws-exportopsdatatos3"></a>

 **Description** 

此 Runbook 會擷取 AWS Systems Manager Explorer 中的 OpsData 摘要清單，並將其匯出至指定 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的物件。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ExportOpsDataToS3) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ columnFields

  類型：StringList

  描述：(必要) 要寫入輸出檔案的資料行欄位。
+ 篩選條件

  類型：字串

  描述：(選用) 篩選 getOpsSummary 要求。
+ resultAttribute

  類型：字串

  描述：(選用) getOpsSummary 要求的結果屬性。
+ s3BucketName

  類型：字串

  描述：(必要) 要下載輸出檔案的 S3 儲存貯體。
+ snsSuccessMessage

  類型：字串

  描述：（選用） 執行手冊完成時要傳送的訊息。
+ snsTopicArn

  類型：字串

  描述：（必要） 要在下載完成時通知的 Amazon Simple Notification Service (Amazon SNS) 主題 ARN。
+ syncName

  類型：字串

  描述：(選用) 資源資料同步的名稱。

 **文件步驟** 

getOpsSummaryStep – 立即擷取最多 5，000 個 ops 摘要以匯出至 CSV 檔案。

 **輸出** 

OpsData 物件 – 如果執行手冊成功執行，您會在目標 S3 儲存貯體中找到匯出的 OpsData 物件。

# `AWS-ExportPatchReportToS3`
<a name="automation-aws-exportpatchreporttos3"></a>

 **Description** 

此 Runbook 會擷取修補程式管理員中的 AWS Systems Manager 修補程式摘要資料和修補程式詳細資訊清單，並將其匯出至指定 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的 .csv 檔案。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ExportPatchReportToS3) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+  assumeRole 

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用執行本文件之使用者的許可。
+ s3BucketName

  類型：字串

  描述：（必要） 您要下載輸出檔案的 S3 儲存貯體。
+ snsTopicArn

  類型：字串

  描述：（選用） 下載完成時要通知的 Amazon Simple Notification Service (Amazon SNS) 主題 Amazon Resource Name (ARN)。
+ snsSuccessMessage

  類型：字串

  描述：（選用） 執行手冊完成時要傳送的訊息文字。
+ targets

  類型：字串

  描述：（必要） 執行個體 ID 或萬用字元 (\$1)，指出要報告特定執行個體或所有執行個體的修補程式資料。

 **文件步驟** 

 ExportReportStep – 此步驟的動作取決於 `targets` 參數的值。如果 `targets` 格式為 `instanceids=*` ，則 步驟會擷取您帳戶中執行個體最多 10，000 個修補程式摘要，並將資料匯出至 .csv 檔案。

 如果 `targets` 格式為 `instanceids=<instance-id>` ，則 步驟會擷取您帳戶中指定執行個體的修補程式摘要和所有修補程式，並將其匯出至 .csv 檔案。

 **輸出** 

PatchSummary/Patches 物件 – 如果執行手冊成功執行，匯出的修補程式報告物件會下載到您的目標 S3 儲存貯體。

# `AWS-SetupInventory`
<a name="automation-aws-setupinventory"></a>

 **Description** 

 為一或多個受管執行個體建立 Systems Manager 庫存關聯。系統會根據關聯中的排程，從您的執行個體收集中繼資料。如需詳細資訊，請參閱[AWS Systems Manager 庫存](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-SetupInventory) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ 應用程式

  類型：字串

  預設：Enabled

  描述：(選用) 收集已安裝之應用程式的中繼資料。
+ AssociatedDocName

  類型：字串

   預設：`AWS-GatherSoftwareInventory`

  描述：（選用） 用於從受管執行個體收集庫存的 Runbook 名稱。
+ AssociationName

  類型：字串

  描述：(選用) 要指派給執行個體的庫存關聯名稱。
+ AssocWaitTime

  類型：字串

  預設：PT5M

  描述：(選用) 庫存收集在庫存關聯開始時間到達時應暫停的時間量。時間使用 ISO 8601 格式。
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+  `AwsComponents` 

  類型：字串

  預設：Enabled

  描述：（選用） 收集 amazon-ssm-agent 等 AWS 元件的中繼資料。
+ CustomInventory

  類型：字串

  預設：Enabled

  描述：(選用) 收集自訂庫存中繼資料。
+ 檔案

  類型：字串

   描述：(選用) 收集執行個體之檔案的中繼資料。如需如何收集此類庫存資料的詳細資訊，請參閱[使用檔案和 Windows 登錄庫存](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-file-and-registry.html)。需要 SSMAgent 2.2.64.0 或更新版本。Linux 範例： `[{"Path":"/usr/bin", "Pattern":["aws*", "*ssm*"],"Recursive":false},{"Path":"/var/log", "Pattern":["amazon*.*"], "Recursive":true, "DirScanLimit":1000}] Windows example: [{"Path":"%PROGRAMFILES%", "Pattern":["*.exe"],"Recursive":true}]`
+ InstanceDetailedInformation

  類型：字串

  預設：Enabled

  描述：(選用) 收集執行個體的其他資訊，包括 CPU 型號、速度和核心數量等。
+ InstanceIds

  類型：字串

  預設：\$1

  描述：(必要) 您想要清查的 EC2 執行個體。
+ LambdaAssumeRole

  類型：字串

  描述：(選用) 角色的 ARN，允許由自動化建立的 Lambda 代您執行動作。如果未指定，則會建立暫時性角色來執行 Lambda 函數。
+ NetworkConfig

  類型：字串

  預設：Enabled

  描述：(選用) 收集網路組態的中繼資料。
+ OutputS3BucketName

  類型：字串

  描述：（選用） 您要寫入庫存日誌資料的 Amazon S3 儲存貯體名稱。
+ OutputS3KeyPrefix

  類型：字串

  描述：（選用） 您要寫入庫存日誌資料的 Amazon S3 金鑰字首 （子資料夾）。
+ OutputS3Region

  類型：字串

  描述：（選用） Amazon S3 AWS 區域 所在的 名稱。
+ Schedule

  類型：字串

  預設：cron(0 \$1/30 \$1 \$1 \$1 ? \$1)

  描述：(選用) 庫存關聯排程的 Cron 運算式。預設為每 30 分鐘。
+ 服務

  類型：字串

  預設：Enabled

  描述：(選用，僅 Windows 作業系統，需要 SSMAgent 2.2.64.0 及更新版本) 收集服務組態的資料。
+ WindowsRegistry

  類型：字串

   描述：(選用) 收集 Microsoft Windows 登錄機碼的中繼資料。如需如何收集此類庫存資料的詳細資訊，請參閱[使用檔案和 Windows 登錄庫存](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-file-and-registry.html)。需要 SSM 代理程式 2.2.64.0 或更新版本。範例：[ \$1"Path":"HKEY\$1CURRENT\$1CONFIG\$1System","Recursive":true\$1,\$1"Path":"HKEY\$1LOCAL\$1MACHINE\$1SOFTWARE\$1Amazon\$1MachineImage", "ValueNames":["AMIName"]\$1] 
+ WindowsRoles

  類型：字串

  預設：Enabled

  描述：(選用) 收集執行個體上的 Windows 角色相關資訊。僅適用於 Windows 作業系統。需要 SSMAgent 2.2.64.0 或更新版本。
+ WindowsUpdates

  類型：字串

  預設：Enabled

  描述：(選用) 收集執行個體上所有 Windows Update 的資料。

# `AWS-SetupManagedInstance`
<a name="automation-aws-setupmanagedinstance"></a>

 **Description** 

使用 Systems Manager 存取的 AWS Identity and Access Management (IAM) 角色設定執行個體。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-SetupManagedInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ InstanceId

  類型：字串

  描述：(必要) 要設定的 EC2 執行個體之 ID
+ LambdaAssumeRole

  類型：字串

  描述：(選用) 角色的 ARN，允許由自動化建立的 Lambda 代您執行動作。如果未指定，則會建立暫時性角色來執行 Lambda 函數。
+ RoleName

  類型：字串

  預設：SSMRoleForManagedInstance

   描述：(選用) EC2 執行個體的 IAM 角色名稱。如果此角色不存在，則會建立此角色。指定此值時，請確認角色包含 **AmazonSSMManagedInstanceCore** 受管政策。

# `AWS-SetupManagedRoleOnEC2Instance`
<a name="automation-aws-setupmanagedroleonec2instance"></a>

 **Description** 

使用 SSMRoleForManagedInstance 受管 IAM 角色設定執行個體，以進行 Systems Manager 存取。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-SetupManagedRoleOnEC2Instance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ InstanceId

  類型：字串

  描述：(必要) 要設定的 EC2 執行個體之 ID
+ LambdaAssumeRole

  類型：字串

  描述：(選用) 角色的 ARN，允許由自動化建立的 Lambda 代您執行動作。如果未指定，則會建立暫時性角色來執行 Lambda 函數。
+ RoleName

  類型：字串

  預設：SSMRoleForManagedInstance

   描述：(選用) EC2 執行個體的 IAM 角色名稱。如果此角色不存在，則會建立此角色。指定此值時，請確認角色包含 **AmazonSSMManagedInstanceCore** 受管政策。

# `AWSSupport-TroubleshootManagedInstance`
<a name="automation-awssupport-troubleshoot-managed-instance"></a>

 **Description** 

 `AWSSupport-TroubleshootManagedInstance` Runbook 可協助您判斷 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體為何未報告由 管理 AWS Systems Manager。此 Runbook 會檢閱執行個體的 VPC 組態，包括安全群組規則、VPC 端點、網路存取控制清單 (ACL) 規則和路由表。它也會確認包含所需許可的 AWS Identity and Access Management (IAM) 執行個體設定檔已連接至執行個體。

**重要**  
 此自動化 Runbook 不會評估 IPv6 規則。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootManagedInstance) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：（必要） 未報告為 Systems Manager 所管理的 Amazon EC2 執行個體 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:DescribeAutomationExecutions` 
+  `ssm:DescribeAutomationStepExecutions` 
+  `ssm:DescribeInstanceInformation` 
+  `ssm:DescribeInstanceProperties` 
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ssm:GetDocument` 
+  `ssm:ListDocuments` 
+  `ssm:StartAutomationExecution` 
+  `iam:ListRoles` 
+  `iam:GetInstanceProfile` 
+  `iam:ListAttachedRolePolicies` 
+  `ec2:DescribeInstances` 
+  `ec2:DescribeNetworkAcls` 
+  `ec2:DescribeRouteTables` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeVpcEndpoints` 

 **文件步驟** 
+  `aws:executeScript` - 收集執行個體`PingStatus`的 。
+  `aws:branch` - 根據執行個體是否已報告為 Systems Manager 管理的分支。
+  `aws:executeAwsApi` - 收集執行個體的詳細資訊，包括 VPC 組態。
+  `aws:executeScript` - 如果適用， 會收集已部署以搭配 Systems Manager 使用的 VPC 端點相關其他詳細資訊，並確認連接到 VPC 端點的安全群組允許從執行個體的 TCP 連接埠 443 上的傳入流量。
+  `aws:executeScript` - 檢查路由表是否允許流量流向 VPC 端點或公有 Systems Manager 端點。
+  `aws:executeScript` - 檢查網路 ACL 規則是否允許流量流向 VPC 端點或公有 Systems Manager 端點。
+  `aws:executeScript` - 檢查與執行個體相關聯的安全群組是否允許傳出流量到 VPC 端點或公有 Systems Manager 端點。
+  `aws:executeScript` - 檢查連接至執行個體的執行個體描述檔是否包含提供必要許可的受管政策。
+  `aws:branch` - 根據執行個體的作業系統進行分支。
+  `aws:executeScript` - 提供 `ssmagent-toolkit-linux` shell 指令碼的參考。
+  `aws:executeScript` - 提供 `ssmagent-toolkit-windows` PowerShell 指令碼的參考。
+  `aws:executeScript` - 產生自動化的最終輸出。
+  `aws:executeScript` - 如果執行個體`PingStatus`的 是 `Online` ， 會傳回執行個體已由 Systems Manager 管理。

# `AWSSupport-TroubleshootPatchManagerLinux`
<a name="automation-troubleshoot-patch-manager-linux"></a>

 **Description** 

 `AWSSupport-TroubleshootPatchManagerLinux` Runbook 使用 中的修補程式管理員工具，對在 Linux 型受管節點上可能導致修補程式失敗的常見問題進行故障診斷 AWS Systems Manager。此執行手冊的主要目標是識別修補程式命令失敗的根本原因，並建議修復計畫。

 **如何運作？** 

 `AWSSupport-TroubleshootPatchManagerLinux` Runbook 會考慮您提供的兩個執行個體 ID/命令 ID 進行故障診斷。如果未提供命令 ID，它會在提供的執行個體上選取過去 30 天內最新的失敗修補程式命令。檢查命令狀態、先決條件履行和作業系統分佈後，執行手冊會下載並執行日誌分析器套件。輸出包含問題根本原因，以及修正問題所需的動作。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

 
+ Amazon Linux 2 和 AL2023
+ Red Hat Enterprise Linux 8.X 和 9.X
+ Centos 8.X 和 9.X
+ SUSE 15.X

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:SendCommand`
+ `ssm:DescribeDocument`
+ `ssm:GetCommandInvocation`
+ `ssm:ListCommands`
+ `ssm:DescribeInstanceInformation`
+ `ssm:ListCommandInvocations`
+ `ssm:GetDocument`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:GetAutomationExecution`

 **指示** 

請依照下列步驟設定自動化：

1. 在 AWS Systems Manager 主控台[https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootPatchManagerLinux/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootPatchManagerLinux/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **InstanceId （必要）：**

     使用互動式執行個體挑選器選擇修補程式命令失敗的 Linux 型 SSM 受管節點 (Amazon Elastic Compute Cloud (Amazon EC2) 或混合啟動伺服器） ID，或手動輸入 SSM 受管執行個體的 ID。
   + **AutomationAssumeRole （選用）：**

     輸入允許自動化代表您執行動作的 IAM 角色 ARN。如果未指定角色，自動化會使用啟動此 Runbook 之使用者的許可。
   + **RunCommandId （選用）：**

     輸入`AWS-RunPatchBaseline`文件的失敗執行命令 ID。如果您未提供命令 ID，則 Runbook 會在所選執行個體上尋找過去 30 天內的最新失敗修補程式命令。  
![\[Input parameters form for EC2 Instance Connect troubleshooting with instance ID and optional fields.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-patch-manager-linux_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **CheckConcurrency：**

     確保只有一個針對相同執行個體的 Runbook 執行。如果 Runbook 找到另一個以相同執行個體為目標的進行中執行，則會傳回錯誤並結束。
   + **ValidateCommandID：**

     驗證是否為 `AWS-RunPatchBaseline` SSM 文件執行提供的命令 ID 做為輸入參數。如果未提供命令 ID，則 Runbook 會考慮所選執行個體`AWS-RunPatchBaseline`上過去 30 天內 的最新失敗執行。
   + **BranchOnCommandStatus：**

     確認提供的命令的狀態失敗。否則，執行手冊會結束執行，並產生報告，指出提供的命令已成功執行。
   + **VerifyPrerequistes：**

     確認滿足上述先決條件。
   + **GetPlatformDetails：**

     擷取作業系統 (OS) 分佈和版本。
   + **GetDownloadURL：**

     擷取 PatchManager Log Analyzer 套件的下載 URL。
   + **EvaluatePatchManagerLogs：**

     下載並執行執行個體上的 PatchManager Log Analyzer python 套件，以評估日誌檔案。
   + **GenerateReport：**

     產生 Runbook 執行的最終報告，其中包含已識別的問題和建議的解決方案。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：  
![\[Troubleshooting results showing an error downloading payload and suggested solutions.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-patch-manager-linux_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootPatchManagerLinux/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-TroubleshootSessionManager`
<a name="automation-awssupport-troubleshoot-session-manager"></a>

 **Description** 

`AWSSupport-TroubleshootSessionManager` Runbook 可協助您對常見問題進行疑難排解，這些常見問題會阻止您使用 Session Manager 連線至受管 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。Session Manager 是 中的工具 AWS Systems Manager。此 Runbook 會檢查下列項目：
+ 檢查執行個體是否在 Systems Manager 管理的情況下執行和報告。
+ 如果執行個體未報告為由 Systems Manager 管理，則執行 `AWSSupport-TroubleshootManagedInstance` Runbook。
+ 檢查執行個體上安裝的 SSM Agent 版本。
+ 檢查包含 Session Manager 建議 AWS Identity and Access Management (IAM) 政策的執行個體描述檔是否連接到 Amazon EC2 執行個體。
+ 從執行個體收集 SSM Agent 日誌。
+ 分析您的 Session Manager 偏好設定。
+ 執行 `AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2` Runbook 以分析執行個體與 Session Manager、 AWS Key Management Service (AWS KMS)、Amazon Simple Storage Service (Amazon S3) 和 Amazon CloudWatch Logs (CloudWatch Logs) 端點的連線。

 **考量** 
+ 不支援混合受管節點。
+ 此 Runbook 只會檢查建議的受管 IAM 政策是否連接到執行個體描述檔。它不會分析 IAM 或 AWS KMS 執行個體描述檔中包含的許可。

**重要**  
 `AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2` Runbook 使用 [VPC Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 來分析來源和服務端點之間的網路連線。每個來源和目的地之間的分析執行都會向您收取費用。如需詳細資訊，請參閱 [Amazon VPC 定價](https://aws.amazon.com/vpc/pricing/)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootSessionManager) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ InstanceId

  類型：字串

  描述：（必要） 您使用 Session Manager 無法連線的 Amazon EC2 執行個體 ID。
+ SessionPreferenceDocument

  類型：字串

  預設：SSM-SessionManagerRunShell

  描述：（選用） 工作階段偏好設定文件的名稱。如果您在啟動工作階段時未指定自訂工作階段偏好設定文件，請使用預設值。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:CreateNetworkInsightsPath`
+ `ec2:DeleteNetworkInsightsAnalysis`
+ `ec2:DeleteNetworkInsightsPath`
+ `ec2:StartNetworkInsightsAnalysis`
+ `tiros:CreateQuery`
+ `ec2:DescribeAvailabilityZones`
+ `ec2:DescribeCustomerGateways`
+ `ec2:DescribeDhcpOptions`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceStatus`
+ `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:DescribeTransitGatewayConnects`
+ `ec2:DescribeTransitGatewayPeeringAttachments`
+ `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`
+ `elasticloadbalancing:DescribeListeners`
+ `elasticloadbalancing:DescribeLoadBalancerAttributes`
+ `elasticloadbalancing:DescribeLoadBalancers`
+ `elasticloadbalancing:DescribeRules`
+ `elasticloadbalancing:DescribeTags`
+ `elasticloadbalancing:DescribeTargetGroups`
+ `elasticloadbalancing:DescribeTargetHealth`
+ `iam:GetInstanceProfile`
+ `iam:ListAttachedRolePolicies`
+ `iam:ListRoles`
+ `iam:PassRole`
+ `ssm:DescribeAutomationStepExecutions`
+ `ssm:DescribeInstanceInformation`
+ `ssm:GetAutomationExecution`
+ `ssm:GetDocument`
+ `ssm:ListCommands`
+ `ssm:ListCommandInvocations`
+ `ssm:SendCommand`
+ `ssm:StartAutomationExecution`
+ `tiros:GetQueryAnswer`
+ `tiros:GetQueryExplanation`

 **文件步驟** 

1. `aws:waitForAwsResourceProperty`：最多等待 6 分鐘，讓目標執行個體通過狀態檢查。

1. `aws:executeScript`：剖析工作階段偏好設定文件。

1. `aws:executeAwsApi`：取得連接至執行個體之執行個體描述檔的 ARN。

1. `aws:executeAwsApi`：檢查您的執行個體是否報告為由 Systems Manager 管理。

1. `aws:branch`：根據執行個體是否報告為 Systems Manager 管理的分支。

1. `aws:executeScript`：檢查安裝在執行個體上的 SSM 代理程式是否支援 Session Manager。

1. `aws:branch`：根據執行個體的平台進行分支，以收集`ssm-cli`日誌。

1. `aws:runCommand`：`ssm-cli`從 Linux或 macOS執行個體收集日誌輸出。

1. `aws:runCommand`：`ssm-cli`從Windows執行個體收集日誌輸出。

1. `aws:executeScript`：剖析`ssm-cli`日誌。

1. `aws:executeScript`：檢查建議的 IAM 政策是否連接到執行個體描述檔。

1. `aws:branch`：決定是否根據`ssm-cli`日誌評估`ssmmessages`端點連線能力。

1. `aws:executeAutomation`：評估執行個體是否可以連線至`ssmmessages`端點。

1. `aws:branch`：決定是否根據`ssm-cli`日誌和工作階段偏好設定評估 Amazon S3 端點連線能力。

1. `aws:executeAutomation`：評估執行個體是否可以連線至 Amazon S3 端點。

1. `aws:branch`：決定是否根據`ssm-cli`日誌和工作階段偏好設定評估 AWS KMS 端點連線能力。

1. `aws:executeAutomation`：評估執行個體是否可以連線至 AWS KMS 端點。

1. `aws:branch`：決定是否根據`ssm-cli`日誌和工作階段偏好設定評估 CloudWatch Logs 端點連線能力。

1. `aws:executeAutomation`：評估執行個體是否可以連線至 CloudWatch Logs 端點。

1. `aws:executeAutomation`：執行 `AWSSupport-TroubleshootManagedInstance` Runbook。

1. `aws:executeScript`：編譯先前步驟的輸出並輸出報告。

 **Ouputs** 
+ `generateReport.EvalReport` - Runbook 以純文字執行的檢查結果。

# 第三方
<a name="automation-ref-third-party"></a>

 AWS Systems Manager 自動化為第三方產品和服務提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-CreateJiraIssue`](automation-aws-createjiraissue.md)
+ [`AWS-CreateServiceNowIncident`](automation-aws-createservicenowincident.md)
+ [`AWS-RunPacker`](automation-aws-runpacker.md)

# `AWS-CreateJiraIssue`
<a name="automation-aws-createjiraissue"></a>

 **Description** 

在 Jira 建立問題。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateJiraIssue) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AssigneeName

  類型：字串

  描述：(選用) 應指派問題之人員的使用者名稱。
+ DueDate

  類型：字串

  描述：(選用) 問題的到期日，格式為 yyyy-mm-dd。
+ IssueDescription

  類型：字串

  描述：(必要) 問題的詳細說明。
+ IssueSummary

  類型：字串

  描述：(必要) 問題的簡要說明。
+ IssueTypeName

  類型：字串

  描述：(必要) 您要建立的問題類型名稱 (例如，任務、子任務、錯誤等)。
+ JiraURL

  類型：字串

  描述：(必要) Jira 執行個體的 URL。
+ JiraUsername

  類型：字串

  描述：(必要) 要建立問題的使用者名稱。
+ PriorityName

  類型：字串

  描述：(選用) 問題優先順序的名稱。
+ ProjectKey

  類型：字串

  描述：(必要) 應該在其中建立問題之專案的金鑰。
+ SSMParameterName

  類型：字串

  描述：(必要) 包含 Jira 使用者 API 金鑰或密碼之加密 SSM 參數的名稱。

 **文件步驟** 

 `aws:createStack` - 建立 CloudFormation 堆疊以建立 Lambda IAM 角色和函數。

 `aws:invokeLambdaFunction` - 叫用 Lambda 函數來建立 Jira 問題 

 `aws:deleteStack` - 刪除建立的 CloudFormation 堆疊。

 **輸出** 

IssueId：新建立的 Jira 問題 ID

# `AWS-CreateServiceNowIncident`
<a name="automation-aws-createservicenowincident"></a>

 **Description** 

在 ServiceNow 事件表格中建立事件。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateServiceNowIncident) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ Category 

  類型：字串

  描述：(選用) 事件的類別。

  有效值：無 \$1 查詢/說明 \$1 軟體 \$1 硬體 \$1 網路 \$1 資料庫

  預設值：無
+ Description

  類型：字串

  描述：(必要) 有關事件的詳細說明。
+ 影響

  類型：字串

  摘要：(選用) 事件對業務造成的影響。

  有效值：高 \$1 中 \$1 低

  預設值：低
+ ServiceNowInstanceUsername

  類型：字串

  描述：(必要) 要建立事件的使用者名稱。
+ ServiceNowInstancePassword

  類型：字串

  描述：(必要) 包含 ServiceNow 使用者密碼之加密 SSM 參數的名稱。
+ ServiceNowInstanceURL

  類型：字串

  描述：(必要) ServiceNow 執行個體的 URL
+ ShortDescription

  類型：字串

  描述：(必要) 事件的簡短描述。
+ Subcategory

  類型：字串

  描述：(選用) 事件的子類別。

  有效值：無 \$1 防毒 \$1 電子郵件 \$1 內部應用程式 \$1 作業系統 \$1 CPU \$1 磁碟 \$1 鍵盤 \$1 硬體 \$1 記憶體 \$1 監視器 \$1 滑鼠 \$1 DHCP \$1 DNS \$1 IP 地址 \$1 VPN \$1 無線 \$1 DB2 \$1 MS SQL Server \$1 Oracle 

  預設值：無

 **文件步驟** 

Push\$1incident – 將事件資訊推送至 ServiceNow。

 **輸出** 

Push\$1incident.incidentID – 建立的事件 ID。

# `AWS-RunPacker`
<a name="automation-aws-runpacker"></a>

 **Description** 

 此 Runbook 使用 HashiCorp [Packer](https://www.packer.io/) 工具來驗證、修正或建置用於建立機器映像的套件範本。此 Runbook 使用 Packer v1.7.2。

**注意**  
 如果您指定 `vpc_id` 值，也必須指定公用子網路的 `subnet_id` 值。除非您修改子網路的 IPv4 公用定址屬性，否則您也必須將 `associate_public_ip_address` 設定為 true。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-RunPacker) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ Force

  類型：布林值

  描述：一個 Packer 選項，以強制建置器在成品來自舊版建置時執行，否則防止建置執行。
+ Mode

  類型：字串

   描述：對範本進行驗證時要使用 Packer 的模式或命令。選項包括 `Build` 、 `Validate` 和 `Fix` 。
+ TemplateFileName

  類型：字串

  描述：S3 儲存貯體中範本檔案的名稱或鍵。
+ TemplateS3BucketName

  類型：字串

  描述：包含套件程式範本的 S3 儲存貯體名稱。

 **文件步驟** 

RunPackerProcessTemplate – 使用 Packer 工具對範本執行選取的模式。

 **輸出** 

RunPackerProcessTemplate.output – Packer 工具中的 stdout。

RunPackerProcessTemplate.fixed\$1template\$1key – 存放在 S3 儲存貯體中的範本名稱，僅在「固定」模式下執行時使用。

RunPackerProcessTemplate.s3\$1bucket – S3 儲存貯體的名稱，其中包含僅在「固定」模式下執行時使用的固定範本。

# Amazon VPC
<a name="automation-ref-vpc"></a>

 AWS Systems Manager 自動化為 Amazon Virtual Private Cloud 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-CloseSecurityGroup`](close-security-group.md)
+ [`AWSSupport-ConfigureDNSQueryLogging`](automation-aws-configure-dns-query-logging.md)
+ [`AWSSupport-ConfigureTrafficMirroring`](automation-aws-configuretrafficmirroring.md)
+ [`AWSSupport-ConnectivityTroubleshooter`](automation-awssupport-connectivitytroubleshooter.md)
+ [`AWSSupport-TroubleshootVPN`](automation-aws-troubleshoot-vpn.md)
+ [`AWSConfigRemediation-DeleteEgressOnlyInternetGateway`](automation-aws-delete-egress-igw.md)
+ [`AWSConfigRemediation-DeleteUnusedENI`](automation-aws-delete-eni.md)
+ [`AWSConfigRemediation-DeleteUnusedSecurityGroup`](automation-aws-delete-ec2-security-group.md)
+ [`AWSConfigRemediation-DeleteUnusedVPCNetworkACL`](automation-aws-delete-vpc-nacl.md)
+ [`AWSConfigRemediation-DeleteVPCFlowLog`](automation-aws-delete-vpc-flow-log.md)
+ [`AWSConfigRemediation-DetachAndDeleteInternetGateway`](automation-aws-detach-delete-igw.md)
+ [`AWSConfigRemediation-DetachAndDeleteVirtualPrivateGateway`](automation-aws-detach-delete-vpg.md)
+ [`AWS-DisableIncomingSSHOnPort22`](disable-incoming-ssh.md)
+ [`AWS-DisablePublicAccessForSecurityGroup`](automation-aws-disablepublicaccessforsecuritygroup.md)
+ [`AWSConfigRemediation-DisableSubnetAutoAssignPublicIP`](automation-aws-disable-subnet-auto-public-ip.md)
+ [`AWSSupport-EnableVPCFlowLogs`](automation-aws-enable-vpc-flowlogs.md)
+ [`AWSConfigRemediation-EnableVPCFlowLogsToCloudWatch`](automation-aws-enable-flow-logs-cw.md)
+ [`AWSConfigRemediation-EnableVPCFlowLogsToS3Bucket`](automation-aws-enable-flow-logs-s3.md)
+ [`AWS-ReleaseElasticIP`](automation-aws-releaseelasticip.md)
+ [`AWS-RemoveNetworkACLUnrestrictedSSHRDP`](aws-remove-nacl-unrestricted-ssh-rdp.md)
+ [`AWSConfigRemediation-RemoveUnrestrictedSourceIngressRules`](automation-aws-remove-unrestricted-source-ingress.md)
+ [`AWSConfigRemediation-RemoveVPCDefaultSecurityGroupRules`](automation-aws-remove-default-secg-rules.md)
+ [`AWSSupport-SetupIPMonitoringFromVPC`](automation-awssupport-setupipmonitoringfromvpc.md)
+ [`AWSSupport-TerminateIPMonitoringFromVPC`](automation-awssupport-terminateipmonitoringfromvpc.md)

# `AWS-CloseSecurityGroup`
<a name="close-security-group"></a>

 **Description** 

此 Runbook 會從您指定的安全群組中移除所有輸入和輸出規則。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CloseSecurityGroup)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ SecurityGroupId

  類型：字串

  描述：（必要） 您要關閉的安全群組 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:DescribeSecurityGroups`
+ `ec2:RevokeSecurityGroupEgress`
+ `ec2:RevokeSecurityGroupIngress`

**文件步驟**
+ `aws:executeScript` - 從您在 `SecurityGroupId` 參數中指定的安全群組移除所有輸入和輸出規則。

# `AWSSupport-ConfigureDNSQueryLogging`
<a name="automation-aws-configure-dns-query-logging"></a>

 **Description** 

 `AWSSupport-ConfigureDNSQueryLogging` Runbook 會為源自虛擬私有雲端 (VPC) 的 DNS 查詢或 Amazon Route 53 託管區域的 DNS 查詢設定記錄。您可以選擇將查詢日誌發佈至 Amazon CloudWatch Logs、Amazon Simple Storage Service (Amazon S3) 或 Amazon Data Firehose。如需查詢記錄和解析程式查詢日誌的詳細資訊，請參閱[公有 DNS 查詢記錄](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html)和[解析程式查詢記錄](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-query-logs.html)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ConfigureDNSQueryLogging) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ LogDestinationArn

  類型：字串

   描述：（選用） 您要傳送查詢日誌的 CloudWatch Logs 群組、Amazon S3 儲存貯體或 Firehose 串流的 ARN。請注意，Route 53 公有 DNS 查詢記錄僅支援 CloudWatch Logs 群組。如果您未指定此參數的值，自動化會建立格式為 ` AWSSupport-ConfigureDNSQueryLogging-{automation: EXECUTION_ID } ` 的 CloudWatch Logs 群組，以及發佈查詢日誌的 IAM 資源政策。自動化建立的 CloudWatch Logs 群組的保留期間為 14 天。
+ QueryLogType

  類型：字串

  描述：（選用） 您要記錄的查詢類型。

  有效值：公有 \$1 Resolver/Private

  預設：公有
+ ResourceId

  類型：字串

   描述：（必要） 您要記錄其查詢的資源 ID。如果您`Public`為 `QueryLogType` 參數指定 ，資源必須是 Route 53 私有託管區域的 ID。如果您`Resolver/Private`為 `QueryLogType` 參數指定 ，資源必須是 VPC 的 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:DescribeVpcs` 
+  `firehose:ListTagsForDeliveryStream` 
+  `firehose:PutRecord` 
+  `firehose:PutRecordBatch` 
+  `firehose:TagDeliveryStream` 
+  `iam:AttachRolePolicy` 
+  `iam:CreatePolicy` 
+  `iam:CreateRole` 
+  `iam:CreateServiceLinkedRole` 
+  `iam:DeletePolicy` 
+  `iam:DeleteRole` 
+  `iam:DeleteRolePolicy` 
+  `iam:GetPolicy` 
+  `iam:GetRole` 
+  `iam:PassRole` 
+  `iam:PutRolePolicy` 
+  `iam:TagRole` 
+  `iam:UpdateRole` 
+  `logs:CreateLogDelivery` 
+  `logs:CreateLogGroup` 
+  `logs:DeleteLogDelivery` 
+  `logs:DeleteLogGroup` 
+  `logs:DescribeLogGroups` 
+  `logs:DescribeLogStreams` 
+  `logs:DescribeResourcePolicies` 
+  `logs:ListLogDeliveries` 
+  `logs:PutResourcePolicy` 
+  `logs:PutRetentionPolicy` 
+  `logs:UpdateLogDelivery` 
+  `route53:CreateQueryLoggingConfig` 
+  `route53:DeleteQueryLoggingConfig` 
+  `route53:GetHostedZone` 
+  `route53resolver:AssociateResolverQueryLogConfig` 
+  `route53resolver:CreateResolverQueryLogConfig` 
+  `route53resolver:DeleteResolverQueryLogConfig` 
+  `s3:GetBucketAcl` 

 **文件步驟** 
+  `aws:executeScript` - 驗證您為`ResourceId`參數指定的資源是否存在，並檢查資源類型是否符合所需的`QueryLogType`選項。
+  `aws:executeScript` - 驗證您為 `LogDestinationArn` 參數指定的值是否符合所需的 `QueryLogType` 。
+  `aws:executeScript` - 驗證 Route 53 發佈日誌至 CloudWatch Logs 日誌群組所需的許可，並在日誌不存在時建立所需的 IAM 資源政策。
+  `aws:executeScript` - 在選取的目的地上啟用 DNS 查詢記錄。

# `AWSSupport-ConfigureTrafficMirroring`
<a name="automation-aws-configuretrafficmirroring"></a>

 **Description** 

 `AWSSupport-ConfigureTrafficMirroring` Runbook 會設定流量鏡射，以協助您疑難排解負載平衡器與 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體之間的連線問題。流量鏡像會從連接至執行個體的網路界面複製傳入和傳出流量。若要設定流量鏡像，此 Runbook 會建立所需的目標、篩選條件和工作階段。根據預設， Runbook 會為所有通訊協定的所有傳入和傳出流量設定鏡像，但 Amazon DNS 除外。如果您想要鏡像來自特定來源和目的地的流量，您可以在自動化完成後修改傳入和傳出規則。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ConfigureTrafficMirroring) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ SourceENI

  類型：字串

  描述：（必要） 您要設定流量鏡像的彈性網路介面。
+ Target

  類型：字串

  描述：（必要） 鏡像流量的目的地。您必須指定網路界面、Network Load Balancer 或 Gateway Load Balancer 端點的 ID。如果您指定 Network Load Balancer，連接埠 4789 上必須有 UDP 接聽程式。
+ SessionNumber

  類型：字串

  有效值：1-32766

  描述：（必要） 您要使用的鏡像工作階段數量。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:CreateTrafficMirrorTarget` 
+  `ec2:CreateTrafficMirrorFilter` 
+  `ec2:CreateTrafficMirrorFilterRule` 
+  `ec2:CreateTrafficMirrorSession` 
+  `ec2:DeleteTrafficMirrorSession` 
+  `ec2:DeleteTrafficMirrorFilter` 
+  `ec2:DeleteTrafficMirrorSession` 
+  `ec2:DeleteTrafficMirrorFilterRule` 
+  `iam:ListRoles` 
+  `ssm:GetAutomationExecution` 
+  `ssm:StartAutomationExecution` 

 **文件步驟** 
+  `aws:executeScript` - 執行指令碼來建立目標。
+  `aws:executeAwsApi` - 建立篩選規則。
+  `aws:executeAwsApi` - 為所有傳入流量建立鏡像篩選規則。
+  `aws:executeAwsApi` - 為所有傳出流量建立鏡像篩選規則。
+  `aws:executeAwsApi` - 建立流量鏡像工作階段。
+  `aws:executeAwsApi` - 在篩選條件或工作階段建立失敗時刪除篩選條件。
+  `aws:executeAwsApi` - 在篩選條件或工作階段建立失敗時刪除目標。

 **輸出** 

CreateFilter.FilterId 

CreateSession.SessionId

CreateTarget.TargetIDOutput

# `AWSSupport-ConnectivityTroubleshooter`
<a name="automation-awssupport-connectivitytroubleshooter"></a>

 **Description** 

 `AWSSupport-ConnectivityTroubleshooter` Runbook 會診斷下列項目之間的連線問題：
+ AWS Amazon Virtual Private Cloud (Amazon VPC) 內的資源
+ AWS 使用 VPCs 對等互連連線之相同 內不同 AWS 區域 Amazon VPC 中的 資源
+ AWS Amazon VPC 中的 資源，以及使用網際網路閘道的網際網路資源
+ AWS Amazon VPC 中的 資源，以及使用網路位址轉譯 (NAT) 閘道的網際網路資源

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ConnectivityTroubleshooter) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DestinationIP

  類型：字串

  描述：（必要） 您要連線之資源的 IPv4 地址。
+ DestinationPort

  類型：字串

  預設：true

  描述：（必要） 您要在目的地資源上連線的連接埠號碼。
+ DestinationVpc

  類型：字串

  預設：全部

  描述：（選用） 您要測試連線的 Amazon VPC ID。
+ SourceIP

  類型：字串

  描述：（必要） 您要測試連線之 Amazon VPC 中 AWS 資源的私有 IPv4 地址。
+ SourcePortRange

  類型：字串

  描述：（選用） 您要測試連線的 Amazon VPC 中 AWS 資源所使用的連接埠範圍。
+ SourceVpc

  類型：字串

  預設：全部

  描述：（選用） 您要測試連線的 Amazon VPC ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ec2:DescribeNatGateways` 
+  `ec2:DescribeNetworkAcls` 
+  `ec2:DescribeNetworkInterfaces` 
+  `ec2:DescribeRouteTables` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeVpcPeeringConnections` 

 **文件步驟** 
+  `aws:executeScript` - 收集您在 `SourceIP` 參數中指定之 AWS 資源的詳細資訊。
+  `aws:executeScript` - 使用從上一個步驟收集的路由，判斷來自 AWS 資源的網路流量目的地。
+  `aws:branch` - 根據網路流量的目的地進行分支。
+  `aws:executeAwsApi` - 收集目的地資源的詳細資訊。
+  `aws:executeScript` - 確認針對目的地 Amazon VPC 傳回的 ID 符合 `DestinationVpc` 參數中指定的值，如果有的話。
+  `aws:executeAwsApi` - 收集來源和目的地資源的安全群組規則。
+  `aws:executeScript` - 確認安全群組規則是否允許來源和目的地資源之間的所需流量。
+  `aws:executeAwsApi` - 收集與來源和目的地資源子網路相關聯的網路存取控制清單 (NACLs)。
+  `aws:executeScript` - 確認 NACLs是否允許來源和目的地資源之間的所需流量。
+  `aws:executeScript` - 確認來源是否具有與資源相關聯的公有 IP 地址，如果路由目的地是網際網路閘道。
+  `aws:executeAwsApi` - 收集來源資源的安全群組規則。
+  `aws:executeScript` - 確認安全群組規則是否允許從來源到目的地資源的必要流量。
+  `aws:executeAwsApi` - 收集與來源資源子網路相關聯的 NACLs。
+  `aws:executeScript` - 確認 NACLs是否允許來源資源所需的流量。
+  `aws:executeAwsApi` - 收集 NAT 閘道的詳細資訊。
+  `aws:executeAwsApi` - 收集與 NAT 閘道子網路相關聯的 NACLs。
+  `aws:executeScript` - 確認 NACLs是否允許來自 NAT 閘道子網路所需的流量。
+  `aws:executeScript` - 收集與 NAT 閘道子網路相關聯的路由。
+  `aws:executeScript` - 確認 NAT 閘道是否有網際網路閘道的路由。
+  `aws:executeAwsApi` - 收集 VPC 互連連線的詳細資訊。
+  `aws:executeScript` - 確認兩個 VPCs位於相同區域，且目的地 VPC 傳回的 ID 符合 `DestinationVpc` 參數中指定的值，如果有的話。
+  `aws:executeAwsApi` - 傳回目的地資源的子網路。
+  `aws:executeScript` - 收集與對等 VPC 子網路相關聯的路由。
+  `aws:executeScript` - 確認對等 VPC 是否有對等連線的路由。
+  `aws:executeScript` - 確認如果自動化不支援目的地，是否允許來源資源的流量。

# `AWSSupport-TroubleshootVPN`
<a name="automation-aws-troubleshoot-vpn"></a>

 **Description** 

 `AWSSupport-TroubleshootVPN` Runbook 可協助您追蹤和解決 AWS Site-to-Site VPN 連線中的錯誤。自動化包含數個自動化檢查，旨在追蹤與 AWS Site-to-Site VPN 連線通道相關的 `IKEv1`或 `IKEv2` 錯誤。自動化會嘗試比對特定錯誤，其對應的解決方案會形成常見問題清單。

 **注意：**此自動化不會修正錯誤。它會在指定的時間範圍執行，並掃描日誌群組是否有 [VPN CloudWatch 日誌群組](https://docs.aws.amazon.com//vpn/latest/s2svpn/log-contents.html)中的錯誤。

 **如何運作？** 

Runbook 會執行參數驗證，以確認輸入參數中包含的 Amazon CloudWatch 日誌群組是否存在、日誌群組中是否有任何與 VPN 通道日誌記錄對應的日誌串流、VPN 連線 ID 是否存在，以及通道 IP 地址是否存在。它會在為 VPN 記錄設定的 CloudWatch 日誌群組上進行 Logs Insights API 呼叫。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ LogGroupName

  類型：字串

  描述：（必要） 為 AWS Site-to-Site VPN 連線記錄設定的 Amazon CloudWatch 日誌群組名稱

  允許模式： `^[\.\-_/#A-Za-z0-9]{1,512}`
+ VpnConnectionId

  類型：字串

  描述：（必要） 要故障診斷的 AWS Site-to-Site VPN 連線 ID。

  允許模式： `^vpn-[0-9a-f]{8,17}$`
+ TunnelAIPAddress

  類型：字串

  描述：（必要） 與您的 相關聯的通道編號 1 IPv4 地址 AWS Site-to-Site VPN。

  允許模式： `^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.]){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?){1}$`
+ TunnelBIPAddress

  類型：字串

  描述：（選用） 與您的 相關聯的通道編號 2 IPv4 地址 AWS Site-to-Site VPN。

  允許模式： `^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.]){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?){1}|^$`
+ IKEVersion

  類型：字串

  描述：（必要） 選取您使用的 IKE 版本。允許的值：IKEv1, IKEv2

  有效值：`['IKEv1', 'IKEv2']`
+ StartTimeinEpoch

  類型：字串

  描述：（選用） 日誌分析的開始時間。您可以使用 StartTimeinEpoch/EndTimeinEpoch 或 LookBackPeriod 進行日誌分析

  允許模式： `^\d{10}|^$`
+ EndTimeinEpoch

  類型：字串

  描述：（選用） 日誌分析的結束時間。您可以使用 StartTimeinEpoch/EndTimeinEpoch 或 LookBackPeriod 進行日誌分析。如果同時指定 StartTimeinEpoch/EndTimeinEpoch 和 LookBackPeriod，則 LookBackPeriod 優先

  允許模式： `^\d{10}|^$`
+ LookBackPeriod

  類型：字串

  描述：（選用） 兩位數的時間，以小時為單位來回顧日誌分析。有效範圍：01 - 99。如果您也提供 StartTimeinEpoch 和 EndTime，則此值優先

  允許模式： `^(\d?[1-9]|[1-9]0)|^$`

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `logs:DescribeLogGroups`
+ `logs:GetQueryResults`
+ `logs:DescribeLogStreams`
+ `logs:StartQuery`
+ `ec2:DescribeVpnConnections`

 **指示** 

 **注意：**當記錄輸出格式為 JSON 時，此自動化適用於為 VPN 通道記錄設定的 CloudWatch 日誌群組。

請依照下列步驟設定自動化：

1. 導覽至 AWS Systems Manager 主控台中的 [AWSSupport-TroubleshootVPN](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootVPN/description)。

1. 針對輸入參數，輸入下列項目：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **LogGroupName （必要）：**

     要驗證的 Amazon CloudWatch 日誌群組名稱。這必須是設定供 VPN 傳送日誌的 CloudWatch 日誌群組。
   + **VpnConnectionId （必要）：**

     追蹤其日誌群組的 AWS Site-to-Site VPN 連線 ID 是否有 VPN 錯誤。
   + **TunnelAIPAddress （必要）：**

     通道 與您的 AWS Site-to-Site VPN 連線相關聯的 IP 地址。
   + **TunnelBIPAddress （選用）：**

     與您的 AWS Site-to-Site VPN 連線相關聯的通道 B IP 地址。
   + **IKEVersion （必要）：**

     選取您使用的 IKEversion。允許的值 ：IKEv1, IKEv2。
   + **StartTimeinEpoch （選用）：**

     要查詢錯誤的時間範圍開頭。範圍包含 ，因此指定的開始時間會包含在查詢中。指定為 epoch 時間，自 1970 年 1 月 1 日起的秒數，00：00：00 UTC。
   + **EndTimeinEpoch （選用）：**

     查詢錯誤的時間範圍結束。範圍包含 ，因此指定的結束時間會包含在查詢中。指定為 epoch 時間，自 1970 年 1 月 1 日起的秒數，00：00：00 UTC。
   + **LookBackPeriod （必要）：**

     回顧查詢錯誤的時間，以小時為單位。

   **注意：**設定 StartTimeinEpoch、EndTimeinEpoch 或 LookBackPeriod 來修正日誌分析的時間範圍。提供以小時為單位的兩位數號碼，以檢查過去從自動化開始時間以來的錯誤。或者，如果錯誤是過去在特定時間範圍內，請包含 StartTimeinEpoch 和 EndTimeinEpoch，而不是 LookBackPeriod。  
![\[Input parameters form for AWS Site-to-Site VPN connection validation and log analysis.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-vpn_input_parameters.png)

1. 選取**執行**。

1. 自動化會啟動。

1. 自動化 Runbook 會執行下列步驟：
   + **parameterValidation：**

     對自動化中包含的輸入參數執行一系列驗證。
   + **branchOnValidationOfLogGroup：**

     檢查 參數中提及的日誌群組是否有效。如果無效，它會停止進一步啟動自動化步驟。
   + **branchOnValidationOfLogStream：**

     檢查包含的 CloudWatch 日誌群組中是否存在日誌串流。如果無效，它會停止進一步啟動自動化步驟。
   + **branchOnValidationOfVpnConnectionId：**

     檢查 參數中包含的 VPN 連線 ID 是否有效。如果無效，它會停止進一步啟動自動化步驟。
   + **branchOnValidationOfVpnIp：**

     檢查參數中提及的通道 IP 地址是否有效。如果無效，則會停止進一步執行自動化步驟。
   + **traceError：**

     在包含的 CloudWatch 日誌群組中進行日誌洞見 API 呼叫，並搜尋與 IKEv1/IKEv2 相關的錯誤以及相關的建議解析。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果。  
![\[Output section showing parameter validation results and error messages for VPN tunnels.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-vpn_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-DDoSResiliencyAssessment)
+ [執行自動化](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 服務文件
+ [Site-to-Site日誌的內容](https://docs.aws.amazon.com//vpn/latest/s2svpn/log-contents.html)

# `AWSConfigRemediation-DeleteEgressOnlyInternetGateway`
<a name="automation-aws-delete-egress-igw"></a>

 **Description** 

 `AWSConfigRemediation-DeleteEgressOnlyInternetGateway` Runbook 會刪除您指定的輸出限定網際網路閘道。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteEgressOnlyInternetGateway) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ EgressOnlyInternetGatewayId

  類型：字串

  描述：（必要） 您要刪除的僅輸出網際網路閘道 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DeleteEgressOnlyInternetGateway` 
+  `ec2:DescribeEgressOnlyInternetGateways` 

 **文件步驟** 
+  `aws:executeScript` - 刪除 `EgressOnlyInternetGatewayId` 參數中指定的輸出限定網際網路閘道。
+  `aws:executeScript` - 驗證已刪除輸出限定網際網路閘道。

# `AWSConfigRemediation-DeleteUnusedENI`
<a name="automation-aws-delete-eni"></a>

 **Description** 

 `AWSConfigRemediation-DeleteUnusedENI` Runbook 會刪除連接狀態為 的彈性網路界面 `detached` (ENI)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteUnusedENI) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ NetworkInterfaceId

  類型：字串

  描述：（必要） 您要刪除的 ENI ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DeleteNetworkInterface` 
+  `ec2:DescribeNetworkInterfaces ` 

 **文件步驟** 
+  `aws:executeAwsApi` - 刪除您在 `NetworkInterfaceId` 參數中指定的 ENI。
+  `aws:executeScript` - 驗證 ENI 已刪除。

# `AWSConfigRemediation-DeleteUnusedSecurityGroup`
<a name="automation-aws-delete-ec2-security-group"></a>

 **Description** 

 `AWSConfigRemediation-DeleteUnusedSecurityGroup` Runbook 會刪除您在 `GroupId` 參數中指定的安全群組。如果您嘗試刪除與 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體相關聯的安全群組，或由另一個安全群組參考，自動化會失敗。此自動化不會刪除預設安全群組。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteUnusedSecurityGroup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ GroupId

  類型：字串

  描述：（必要） 您要刪除的安全群組 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DeleteSecurityGroup` 

 **文件步驟** 
+  `aws:executeAwsApi` - 使用您在 `GroupId` 參數中提供的值傳回安全群組名稱。
+  `aws:branch` - 確認群組名稱不是「預設」。
+  `aws:executeAwsApi` - 刪除 `GroupId` 參數中指定的安全群組。
+  `aws:executeScript` - 確認已刪除安全群組。

# `AWSConfigRemediation-DeleteUnusedVPCNetworkACL`
<a name="automation-aws-delete-vpc-nacl"></a>

 **Description** 

 `AWSConfigRemediation-DeleteUnusedVPCNetworkACL` Runbook 會刪除未與子網路相關聯的網路存取控制清單 (ACL)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteUnusedVPCNetworkACL) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ NetworkAclId

  類型：字串

  描述：（必要） 您要刪除的網路 ACL ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DeleteNetworkAcl` 
+  `ec2:DescribeNetworkAcls` 

 **文件步驟** 
+  `aws:executeAwsApi` - 刪除 `NetworkAclId` 參數中指定的網路 ACL。
+  `aws:executeScript` - 確認已刪除 `NetworkAclId` 參數中指定的網路 ACL。

# `AWSConfigRemediation-DeleteVPCFlowLog`
<a name="automation-aws-delete-vpc-flow-log"></a>

 **Description** 

 `AWSConfigRemediation-DeleteVPCFlowLog` Runbook 會刪除您指定的虛擬私有雲端 (VPC) 流程日誌。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteVPCFlowLog) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ FlowLogId

  類型：字串

  描述：（必要） 您要刪除之流程日誌的 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DeleteFlowLogs` 
+  `ec2:DescribeFlowLogs` 

 **文件步驟** 
+  `aws:executeAwsApi` - 刪除您在 `FlowLogId` 參數中指定的流程日誌。
+  `aws:executeScript` - 確認流程日誌已刪除。

# `AWSConfigRemediation-DetachAndDeleteInternetGateway`
<a name="automation-aws-detach-delete-igw"></a>

 **Description** 

 `AWSConfigRemediation-DetachAndDeleteInternetGateway` Runbook 會分離並刪除您指定的網際網路閘道。如果虛擬私有雲端 (VPC) 中的任何 Amazon EC2 執行個體具有與其相關聯的彈性 IP 地址或公有 IPv4 地址，則 Runbook 會失敗。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DetachAndDeleteInternetGateway) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ InternetGatewayId

  類型：字串

  描述：（必要） 您要刪除的網際網路閘道 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DeleteInternetGateway` 
+  `ec2:DescribeInternetGateways` 
+  `ec2:DetachInternetGateway` 

 **文件步驟** 
+  `aws:waitForAwsResourceProperty` - 接受虛擬私有閘道的 ID，並等待虛擬私有閘道的狀態屬性變更為 `available`或 逾時。
+  `aws:executeAwsApi` - 擷取指定的虛擬私有閘道組態。
+  `aws:branch` - 根據 VpcAttachments.state 參數值的分支。
+  `aws:waitForAwsResourceProperty` - 接受虛擬私有閘道的 ID，並等待虛擬私有閘道的 VpcAttachments.state's 屬性變更為 `attached`或逾時。
+  `aws:executeAwsApi` - 接受虛擬私有閘道的 ID 和 Amazon VPC 的 ID 做為輸入，並從 Amazon VPC 分離虛擬私有閘道。
+  `aws:waitForAwsResourceProperty` - 接受虛擬私有閘道的 ID，並等待虛擬私有閘道的 VpcAttachments.state's 屬性變更為 `detached`或逾時。
+  `aws:executeAwsApi` - 接受虛擬私有閘道的 ID 做為輸入，並將其刪除。
+  `aws:waitForAwsResourceProperty` - 接受虛擬私有閘道的 ID 做為輸入，並驗證其刪除。

   `aws:executeAwsApi` - 從網際網路閘道 ID 收集 VPC ID。
+  `aws:executeAwsApi` - 從 VPC 分離網際網路閘道 ID。
+  `aws:executeAwsApi` - 刪除網際網路閘道。

# `AWSConfigRemediation-DetachAndDeleteVirtualPrivateGateway`
<a name="automation-aws-detach-delete-vpg"></a>

 **Description** 

 `AWSConfigRemediation-DetachAndDeleteVirtualPrivateGateway` Runbook 會分離和刪除連接至使用 Amazon Virtual Private Cloud (Amazon EC2Amazon Virtual Private Cloud閘道。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DetachAndDeleteVirtualPrivateGateway) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ VpnGatewayId

  類型：字串

  描述：（必要） 要刪除的虛擬私有閘道 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DeleteVpnGateway` 
+  `ec2:DetachVpnGateway` 
+  `ec2:DescribeVpnGateways` 

 **文件步驟** 
+  `aws:waitForAwsResourceProperty` - 接受虛擬私有閘道的 ID，並等待虛擬私有閘道的狀態屬性變更為 `available`或 逾時。
+  `aws:executeAwsApi` - 擷取指定的虛擬私有閘道組態。
+  `aws:branch` - 根據 VpcAttachments.state 參數值的分支。
+  `aws:waitForAwsResourceProperty` - 接受虛擬私有閘道的 ID，並等待虛擬私有閘道的 VpcAttachments.state's 屬性變更為 `attached`或逾時。
+  `aws:executeAwsApi` - 接受虛擬私有閘道的 ID 和 Amazon VPC 的 ID 做為輸入，並從 Amazon VPC 分離虛擬私有閘道。
+  `aws:waitForAwsResourceProperty` - 接受虛擬私有閘道的 ID，並等待虛擬私有閘道的 VpcAttachments.state's 屬性變更為 `detached`或逾時。
+  `aws:executeAwsApi` - 接受虛擬私有閘道的 ID 做為輸入，並將其刪除。
+  `aws:waitForAwsResourceProperty` - 接受虛擬私有閘道的 ID 做為輸入，並驗證其刪除。

# `AWS-DisableIncomingSSHOnPort22`
<a name="disable-incoming-ssh"></a>

**Description**

`AWS-DisableIncomingSSHOnPort22` Runbook 會移除規則，允許安全群組在 TCP 連接埠 22 上不受限制的傳入 SSH 流量。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DisableIncomingSSHOnPort22)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ SecurityGroupIds

  類型：字串

  描述：（必要） 您希望限制 SSH 流量之安全群組 IDs的逗號分隔清單。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:DescribeSecurityGroups`
+ `ec2:RevokeSecurityGroupIngress`

**文件步驟**
+ `aws:executeAwsApi` - 從您在 `SecurityGroupIds` 參數中指定的安全群組中移除允許 TCP 連接埠 22 上傳入 SSH 流量的所有規則。

**輸出**

DisableIncomingSSHTemplate.RestrictedSecurityGroupIds - 已移除傳入 SSH 規則的安全群組 IDs 清單。

# `AWS-DisablePublicAccessForSecurityGroup`
<a name="automation-aws-disablepublicaccessforsecuritygroup"></a>

 **Description** 

此 Runbook 會停用對所有 IP 地址開啟的預設 SSH 和 RDP 連接埠。

**重要**  
對於符合下列兩項條件的安全群組，此 Runbook 失敗並出現「InvalidPermission.NotFound"錯誤：1) 安全群組位於非預設 VPC；以及 2) 安全群組的傳入規則並未使用下列四種模式指定開放連接埠：  
 `0.0.0.0/0` 
 `::/0` 
 `SSH or RDP port + 0.0.0.0/0` 
 `SSH or RDP port + ::/0` 

**注意**  
此 Runbook 不適用於 AWS 區域 位於中國的 。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-DisablePublicAccessForSecurityGroup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ GroupId

  類型：字串

  描述：(必要) 應該停用連接埠的安全群組 ID。
+ IpAddressToBlock

  類型：字串

   描述：（選用） 應封鎖存取的其他 IPv4 地址，格式為 `1.2.3.4/32` 。

# `AWSConfigRemediation-DisableSubnetAutoAssignPublicIP`
<a name="automation-aws-disable-subnet-auto-public-ip"></a>

 **Description** 

 `AWSConfigRemediation-DisableSubnetAutoAssignPublicIP` Runbook 會停用您指定之子網路的 IPv4 公有定址屬性。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DisableSubnetAutoAssignPublicIP) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ SubnetId

  類型：字串

  描述：（必要） 您要停用自動指派公有 IPv4 地址屬性的子網路 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DescribeSubnets` 
+  `ec2:ModifySubnetAttribute` 

 **文件步驟** 
+  `aws:executeAwsApi` - 停用您在 `SubnetId` 參數中指定之子網路的自動指派公有 IPv4 地址屬性。
+  `aws:assertAwsResourceProperty` - 驗證屬性已停用。

# `AWSSupport-EnableVPCFlowLogs`
<a name="automation-aws-enable-vpc-flowlogs"></a>

 **Description** 

 `AWSSupport-EnableVPCFlowLogs ` Runbook 會為 中的子網路、網路介面和 VPCs 建立 Amazon Virtual Private Cloud (Amazon VPC) 流程日誌 AWS 帳戶。如果您為子網路或 VPC 建立流程日誌，則會監控該子網路或 Amazon VPC 中的每個彈性網路界面。流程日誌資料會發佈至 Amazon CloudWatch Logs 日誌群組或您指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。如需流程日誌的詳細資訊，請參閱《*Amazon* [VPC 使用者指南》中的 VPC 流程日誌](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)。

**重要**  
 當您將流程記錄發佈到或發佈到 CloudWatch Logs 或 Amazon S3 時，會套用付費日誌的資料擷取和存檔費用。如需詳細資訊，請參閱[流程日誌定價](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-pricing) 

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-EnableVPCFlowLogs) 

**注意**  
選取 `s3`做為日誌目的地時，請確定儲存貯體政策允許日誌交付服務存取儲存貯體。如需詳細資訊，請參閱[流程日誌的 Amazon S3 儲存貯體許可](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-s3.html#flow-logs-s3-permissions)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DeliverLogsPermissionArn

  類型：字串

   描述：（選用） 允許 Amazon Elastic Compute Cloud (Amazon EC2) 將流程日誌發佈至您帳戶中 CloudWatch Logs 日誌群組的 IAM 角色 ARN。如果您`s3`為 `LogDestinationType` 參數指定 ，請勿為此參數提供值。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的將[流程日誌發佈至 CloudWatch Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-cwl.html)。
+ LogDestinationARN

  類型：字串

   描述：（選用） 發佈流程日誌資料的資源 ARN。如果為 `LogDestinationType` 參數`cloud-watch-logs`指定 ，請提供您要發佈流程日誌資料的 CloudWatch Logs 日誌群組 ARN。或者，請改用 `LogGroupName`。如果為 `LogDestinationType` 參數`s3`指定 ，您必須指定要為此參數發佈流程日誌資料的 Amazon S3 儲存貯體 ARN。您也可以在儲存貯體中指定資料夾。
**重要**  
 選擇 `s3` 做為 時`LogDestinationType`，您應該確保選取的儲存貯體遵循 [Amazon S3 儲存貯體安全最佳實務](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html)，並遵循組織和地理區域的資料隱私權法律。
+ LogDestinationType

  類型：字串

  有效值：cloud-watch-logs \$1 s3

   描述：（必要） 決定流程日誌資料的發佈位置。如果您將 指定`LogDestinationType`為 `s3` ，請勿指定 `DeliverLogsPermissionArn`或 `LogGroupName` 。
+ LogFormat

  類型：字串

   描述：（選用） 要包含在流程日誌中的欄位，以及它們應該出現在記錄中的順序。如需可用欄位的清單，請參閱《*Amazon VPC 使用者指南*》中的[流程日誌記錄](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records)。如果您未提供此參數的值，則會使用預設格式建立流程日誌。如果您指定此參數，則必須至少指定一個欄位。
+ LogGroupName

  類型：字串

   描述：（選用） 發佈流程日誌資料的 CloudWatch Logs 日誌群組名稱。如果您`s3`為 `LogDestinationType` 參數指定 ，請勿為此參數提供值。
+ ResourceIds

  類型：StringList

  描述：（必要） 以逗號分隔的清單，列出您要為其建立流程日誌的子網路、彈性網路介面或 VPC IDs。
+ TrafficType

  類型：字串

  有效值：接受 \$1 拒絕 \$1 ALL

  描述：（必要） 要記錄的流量類型。您可以記錄資源接受或拒絕的流量，或所有流量的日誌。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:CreateFlowLogs` 
+  `ec2:DeleteFlowLogs` 
+  `ec2:DescribeFlowLogs` 
+  `iam:AttachRolePolicy` 
+  `iam:CreateRole` 
+  `iam:CreatePolicy` 
+  `iam:DeletePolicy` 
+  `iam:DeleteRole` 
+  `iam:DeleteRolePolicy` 
+  `iam:GetPolicy` 
+  `iam:GetRole` 
+  `iam:TagRole` 
+  `iam:PassRole` 
+  `iam:PutRolePolicy` 
+  `iam:UpdateRole` 
+  `logs:CreateLogDelivery` 
+  `logs:CreateLogGroup` 
+  `logs:DeleteLogDelivery` 
+  `logs:DeleteLogGroup` 
+  `logs:DescribeLogGroups` 
+  `logs:DescribeLogStreams` 
+  `s3:GetBucketLocation` 
+  `s3:GetBucketAcl` 
+  `s3:GetBucketPublicAccessBlock` 
+  `s3:GetBucketPolicyStatus` 
+  `s3:GetBucketAcl` 
+  `s3:ListBucket` 
+  `s3:PutObject` 

範例政策

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SSMExecutionPermissions",
            "Effect": "Allow",
            "Action": [
                "ssm:StartAutomationExecution",
                "ssm:GetAutomationExecution"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EC2FlowLogsPermissions",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateFlowLogs",
                "ec2:DeleteFlowLogs",
                "ec2:DescribeFlowLogs"
            ],
            "Resource": [
            "arn:aws:ec2:us-east-1:111122223333:instance/resource-id",
            "arn:aws:ec2:us-east-1:111122223333:subnet/resource-id",
            "arn:aws:ec2:us-east-1:111122223333:vpc/resource-id",
            "arn:aws:ec2:us-east-1:111122223333:transit-gateway/resource-id",
            "arn:aws:ec2:us-east-1:111122223333:transit-gateway-attachment/resource-id"
          ]
        },
        {
            "Sid": "IAMCreateRolePermissions",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreateRole",
                "iam:CreatePolicy",
                "iam:DeletePolicy",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:TagRole",
                "iam:PassRole",
                "iam:PutRolePolicy",
                "iam:UpdateRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/role-name",
                "arn:aws:iam::111122223333:role/AWSSupportCreateFlowLogsRole"
            ]
        },
        {
            "Sid": "CloudWatchLogsPermissions",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:CreateLogGroup",
                "logs:DeleteLogDelivery",
                "logs:DeleteLogGroup",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:log-group-name",
                "arn:aws:logs:us-east-1:111122223333:log-group:log-group-name:*"
            ]
        },
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketAcl",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

------

 **文件步驟** 
+  `aws:branch` - 根據為 `LogDestinationType` 參數指定的值進行分支。
+  `aws:executeScript` - 檢查目標 Amazon Simple Storage Service (Amazon S3) 是否可能授予其物件的**讀取**或**寫入**`public`存取權。
+  `aws:executeScript` - 如果未為 `LogDestinationARN` 參數指定值，且為 `LogDestinationType` 參數指定值，`cloud-watch-logs`則建立日誌群組。
+  `aws:executeScript` - 根據 Runbook 參數中指定的值建立流程日誌。

# `AWSConfigRemediation-EnableVPCFlowLogsToCloudWatch`
<a name="automation-aws-enable-flow-logs-cw"></a>

 **Description** 

 `AWSConfigRemediation-EnableVPCFlowLogsToCloudWatch` Runbook 會將將流程日誌資料發佈至 Amazon Simple Storage Service (Amazon S3) 的現有 Amazon VPC 流程日誌取代為您指定的 Amazon CloudWatch Logs (CloudWatch Logs) 日誌群組發佈流程日誌資料。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableVPCFlowLogsToCloudWatch) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DestinationLogGroup

  類型：字串

  描述：（必要） 您要發佈流程日誌資料的 CloudWatch Logs 日誌群組名稱。
+ DeliverLogsPermissionArn

  類型：字串

  描述：（必要） 您要使用的 AWS Identity and Access Management (IAM) 角色的 ARN，可提供 Amazon Elastic Compute Cloud (Amazon EC2) 將流程日誌資料發佈至 CloudWatch Logs 的必要許可。
+ FlowLogId

  類型：字串

  描述：（必要） 發佈至您要取代之 Amazon S3 的流程日誌 ID。
+ MaxAggregationInterval

  類型：整數

  有效值：60 \$1 600

  描述：（選用） 最長時間間隔，以秒為單位，在此期間會擷取封包流程並彙總到流程日誌記錄中。
+ TrafficType

  類型：字串

  有效值：接受 \$1 拒絕 \$1 ALL

  描述：（必要） 您要記錄和發佈的流程日誌資料類型。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:CreateFlowLogs` 
+  `ec2:DeleteFlowLogs` 
+  `ec2:DescribeFlowLogs` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從您在 `FlowLogId` 參數中指定的值收集 VPC 的詳細資訊。
+  `aws:executeAwsApi` - 根據您為 Runbook 參數指定的值建立流程日誌。
+  `aws:assertAwsResourceProperty` - 驗證新建立的流程日誌發佈至 CloudWatch Logs。
+  `aws:executeAwsApi` - 刪除發佈至 Amazon S3 的流程日誌。
+  `aws:executeScript` - 確認發佈至 Amazon S3 的流程日誌已刪除。

# `AWSConfigRemediation-EnableVPCFlowLogsToS3Bucket`
<a name="automation-aws-enable-flow-logs-s3"></a>

 **Description** 

 `AWSConfigRemediation-EnableVPCFlowLogsToS3Bucket` Runbook 會使用將流程日誌資料發佈至您指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體的流程日誌，*取代*將流程日誌資料發佈至 Amazon CloudWatch Logs (CloudWatch Logs) 的現有 Amazon VPC 流程日誌。Amazon S3 

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableVPCFlowLogsToS3Bucket) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DestinationS3BucketArn

  類型：字串

  描述：（必要） 您要發佈流程日誌資料的 Amazon S3 儲存貯體 ARN。
+ FlowLogId

  類型：字串

  描述：（必要） 發佈至您要取代之 CloudWatch Logs 的流程日誌 ID。
+ MaxAggregationInterval

  類型：整數

  有效值：60 \$1 600

  描述：（選用） 最長時間間隔，以秒為單位，在此期間會擷取封包流程並彙總到流程日誌記錄中。
+ TrafficType

  類型：字串

  有效值：接受 \$1 拒絕 \$1 ALL

  描述：（必要） 您要記錄和發佈的流程日誌資料類型。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:CreateFlowLogs` 
+  `ec2:DeleteFlowLogs` 
+  `ec2:DescribeFlowLogs` 

 **文件步驟** 
+  `aws:executeAwsApi` - 從您在 `FlowLogId` 參數中指定的值收集 VPC 的詳細資訊。
+  `aws:executeAwsApi` - 根據您為 Runbook 參數指定的值建立流程日誌。
+  `aws:assertAwsResourceProperty` - 驗證新建立的流程日誌發佈至 Amazon S3。
+  `aws:executeAwsApi` - 刪除發佈至 CloudWatch Logs 的流程日誌。
+  `aws:executeScript` - 確認發佈至 CloudWatch Logs 的流程日誌已刪除。

# `AWS-ReleaseElasticIP`
<a name="automation-aws-releaseelasticip"></a>

 **Description** 

使用分配 ID 釋出指定的彈性 IP 地址。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-ReleaseElasticIP) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ AllocationId

  類型：字串

  描述：(必要) 彈性 IP 地址的分配 ID。

# `AWS-RemoveNetworkACLUnrestrictedSSHRDP`
<a name="aws-remove-nacl-unrestricted-ssh-rdp"></a>

 **Description** 

 `AWS-RemoveNetworkACLUnrestrictedSSHRDP` Runbook 會從指定的網路 ACL 移除所有網路存取控制清單 (ACL) 規則，允許從所有來源地址傳入流量到預設 SSH 和 RDP 連接埠。不會移除包含與預設 SSH 和 RDP 連接埠重疊之連接埠範圍的規則。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-RemoveNetworkACLUnrestrictedSSHRDP) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ NetworkAclId

  類型：字串

  描述：（必要） 您要移除無限制規則的網路 ACL ID，允許從所有來源地址傳入流量到預設 SSH 和 RDP 連接埠。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DeleteNetworkAclEntry` 
+  `ec2:DescribeNetworkAcls` 

 **文件步驟** 
+  `aws:executeScript` - 移除允許來自您在 `SecurityGroupId` 參數中指定之安全群組之所有來源地址流量的所有輸入規則。

 **輸出** 

RemoveNaclEntriesAndVerify.VerificationMessage - 驗證成功刪除網路 ACL 規則的訊息。

RemoveNaclEntriesAndVerify.RulesDeletedAndApiResponses - 已刪除的網路 ACL 規則，以及 `DeleteNetworkAclEntry` API 操作回應。

# `AWSConfigRemediation-RemoveUnrestrictedSourceIngressRules`
<a name="automation-aws-remove-unrestricted-source-ingress"></a>

 **Description** 

 `AWSConfigRemediation-RemoveUnrestrictedSourceIngressRules` Runbook 會從您指定的安全群組中移除所有輸入規則，以允許來自所有來源地址的流量。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-RemoveUnrestrictedSourceIngressRules) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ SecurityGroupId

  類型：字串

  描述：（必要） 您要移除允許來自所有來源地址流量之傳入規則的安全群組 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:RevokeSecurityGroupIngress` 

 **文件步驟** 
+  `aws:executeScript` - 移除允許來自您在 `SecurityGroupId` 參數中指定之安全群組之所有來源地址流量的所有輸入規則。

# `AWSConfigRemediation-RemoveVPCDefaultSecurityGroupRules`
<a name="automation-aws-remove-default-secg-rules"></a>

 **Description** 

 `AWSConfigRemediation-RemoveVPCDefaultSecurityGroupRules` Runbook 會從您指定的虛擬私有雲端 (VPC) 的預設安全群組中移除所有規則。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-RemoveVPCDefaultSecurityGroupRules) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ GroupId

  類型：字串

  描述：（必要） 您要從中移除所有規則的安全群組 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:RevokeSecurityGroupEgress` 
+  `ec2:RevokeSecurityGroupIngress` 

 **文件步驟** 
+  `aws:assertAwsResourceProperty` - 確認您在 `GroupId` 參數中指定的安全群組為預設值。
+  `aws:executeScript` - 從您在 `GroupId` 參數中指定的安全群組中移除所有規則。

# `AWSSupport-SetupIPMonitoringFromVPC`
<a name="automation-awssupport-setupipmonitoringfromvpc"></a>

 **Description** 

 `AWSSupport-SetupIPMonitoringFromVPC` 會在指定的子網路中建立 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體，並透過持續執行 ping、MTR、 traceroute 和 tracetcp 測試來監控選取的目標 IPs (IPv4 或 IPv6)。結果會儲存在 Amazon CloudWatch Logs 日誌中，並套用指標篩選條件，以在 CloudWatch 儀表板中快速視覺化延遲和封包遺失統計資料。

 **其他資訊** 

CloudWatch Logs 資料可用於網路故障診斷和分析模式/趨勢。此外，您可以在封包遺失和/或延遲達到閾值時，使用 Amazon SNS 通知設定 CloudWatch 警示。使用 開啟案例時，也可以使用資料 AWS 支援，以協助快速隔離問題，並在調查網路問題時縮短解決時間。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-SetupIPMonitoringFromVPC) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ CloudWatchLogGroupNamePrefix

  類型：字串

   預設：`/AWSSupport-SetupIPMonitoringFromVPC`

  描述：（選用） 用於為測試結果建立之每個 CloudWatch 日誌群組的字首。
+ CloudWatchLogGroupRetentionInDays

  類型：字串

  有效值：1 \$1 3 \$1 5 \$1 7 \$1 14 \$1 30 \$1 60 \$1 90 \$1 120 \$1 150 \$1 180 \$1 365 \$1 400 \$1 545 \$1 731 \$1 1827 \$1 3653

  預設：7

  描述：(選用) 您想要保留網路監控結果的天數。
+ InstanceType

  類型：字串

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

  預設：t3.micro

  描述：(選用) EC2Rescue 執行個體的 EC2 執行個體類型。建議大小：t3.micro。
+ SubnetId

  類型：字串

  描述：(必要) 監控執行個體的子網路 ID。請注意，如果您指定私有子網路，則必須確保有網際網路存取權，以允許監控執行個體設定測試 （即安裝 CloudWatch Logs 代理程式、與 Systems Manager 和 CloudWatch 互動）。
+ TargetIPs

  類型：字串

  描述：(必要) 要監控的 IPv4 及/或 IPv6 逗號分隔清單。不可使用空格。大小上限為 255 字元。請注意，如果您提供無效的 IP，則自動化會失敗並轉返測試設定。
+ TestInstanceSecurityGroupId

  類型：字串

  描述：（選用） 測試執行個體的安全群組 ID。如果未指定，自動化會在執行個體建立期間建立一個。確定安全群組允許對監控 IPs傳出存取。
+ TestInstanceProfileName

  類型：字串

  描述：（選用） 測試執行個體的現有 IAM 執行個體描述檔名稱。如果未指定，自動化會在執行個體建立期間建立一個。角色必須具有下列許可：`logs:CreateLogStream`、`logs:DescribeLogStreams`、 `logs:DescribeLogGroups`和 `logs:PutLogEvents`以及 AWS 受管政策 `AmazonSSMManagedInstanceCore`。
+ TestInterval

  類型：字串

  描述：（選用） 測試間隔之間的分鐘數。預設值為`1`分鐘，最大值為`10`分鐘。
+ RetainDashboardAndLogsOnDeletion

  類型：字串

  描述：（選用） `False`指定 在刪除 AWS AWS CloudFormation 堆疊時刪除 Amazon CloudWatch 儀表板和日誌。預設值為 `True`。根據預設，儀表板和日誌會保留，且不再需要時需要手動刪除。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

**警告**  
 建議傳遞`TestInstanceProfileName`參數或確保已設置安全護欄，以防止濫用可變 IAM 許可。

 建議執行自動化的使用者連接 **AmazonSSMAutomationRole** IAM 受管政策。此外，使用者必須將以下政策連接至其使用者帳戶、群組或角色：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreateInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:PassRole",
                "iam:AddRoleToInstanceProfile",
                "iam:GetRolePolicy",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile",
                "iam:PutRolePolicy",
                "iam:TagRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/SetupIPMonitoringFromVPC*",
                "arn:aws:iam::111122223333:instance-profile/SetupIPMonitoringFromVPC*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:CreateChangeSet",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackEvents",
                "cloudwatch:PutDashboard",
                "cloudwatch:DeleteDashboards",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:CreateSecurityGroup",
                "ec2:CreateLaunchTemplate",
                "ec2:DeleteSecurityGroup",
                "ec2:DescribeImages",
                "ec2:DescribeSubnets",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeVpcs",
                "ec2:DeleteLaunchTemplate",
                "ec2:DeleteSecurityGroup",
                "ec2:RunInstances",
                "ec2:TerminateInstances",
                "ec2:DescribeInstanceStatus",
                "ec2:CreateTags",
                "ec2:AssignIpv6Addresses",
                "ec2:DescribeTags",
                "ec2:DescribeInstances",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeLaunchTemplates",
                "ec2:RevokeSecurityGroupEgress",
                "logs:CreateLogGroup",
                "logs:DeleteLogGroup",
                "logs:PutMetricFilter",
                "logs:PutRetentionPolicy",
                "logs:TagResource",
                "ssm:DescribeInstanceInformation",
                "ssm:GetParameter",
                "ssm:GetParameters",
                "ssm:SendCommand",
                "ssm:ListCommands",
                "ssm:ListCommandInvocations"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

如果提供 `TestInstanceProfileName` 參數，則不需要下列 IAM 許可來執行 Runbook：
+ iam:CreateRole
+ iam:CreateInstanceProfile
+ iam:DetachRolePolicy
+ iam:AttachRolePolicy
+ iam:AddRoleToInstanceProfile
+ iam:RemoveRoleFromInstanceProfile
+ iam:DeleteRole
+ iam:DeleteRolePolicy
+ iam:DeleteInstanceProfile

 **文件步驟** 

1.  ** `aws:executeAwsApi` ** - 描述提供的子網路，以取得 VPC ID 和 IPv6 CIDR 區塊關聯狀態。

1.  ** `aws:executeScript` ** - 驗證提供的目標 IPs 在語法上是正確的 IPv4 和/或 IPv6 地址、取得所選執行個體類型的架構，並確認子網路是否具有 IPv6 集區關聯，如果任何目標 IP 是 IPv6。

1.  ** `aws:createStack` ** - 建立佈建測試 Amazon EC2 執行個體、IAM 執行個體描述檔 （若未提供）、安全群組 （若未提供）、CloudWatch 日誌群組和 CloudWatch 儀表板的 AWS CloudFormation 堆疊。

   (清除) 如果步驟失敗：

    ** `aws:executeScript` ** - 描述 CloudFormation 堆疊事件以識別失敗原因。

    ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊和所有相關聯的資源。

1.  ** `aws:waitForAwsResourceProperty` ** - 等待 CloudFormation 堆疊完成建立。

   (清除) 如果步驟失敗：

    ** `aws:executeScript` ** - 描述 CloudFormation 堆疊事件以識別失敗原因。

    ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊和所有相關聯的資源。

1.  ** `aws:executeScript` ** - 描述 CloudFormation 堆疊資源以取得測試執行個體 ID、安全群組 ID、IAM 角色、執行個體描述檔和儀表板名稱。

   (清除) 如果步驟失敗：

    ** `aws:executeScript` ** - 描述 CloudFormation 堆疊事件以識別失敗原因。

    ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊和所有相關聯的資源。

1.  ** `aws:waitForAwsResourceProperty` ** - 等待測試執行個體成為受管執行個體。

   (清除) 如果步驟失敗：

    ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊和所有相關聯的資源。

1.  ** `aws:runCommand` ** - 在測試執行個體上安裝 CloudWatch 代理程式。

   (清除) 如果步驟失敗：

    ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊和所有相關聯的資源。

1.  ** `aws:runCommand` ** - 定義每個所提供 IPs 的網路測試指令碼 (MTR、ping、 tracepath 和 traceroute)。

   (清除) 如果步驟失敗：

    ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊和所有相關聯的資源。

1.  ** `aws:runCommand` ** - 使用每 TestInterval 分鐘執行的 cronjob 開始網路測試並排程後續執行。

   (清除) 如果步驟失敗：

    ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊和所有相關聯的資源。

1.  ** `aws:runCommand` ** - 設定 CloudWatch 代理程式將測試結果從 推送`/home/ec2-user/logs/`至 CloudWatch Logs。

   (清除) 如果步驟失敗：

    ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊和所有相關聯的資源。

1.  ** `aws:runCommand` ** - 在 中設定測試結果的日誌輪換`/home/ec2-user/logs/`。

1.  ** `aws:executeScript` ** - 為 CloudFormation 堆疊建立的所有 CloudWatch 日誌群組設定保留政策。

1.  ** `aws:executeScript` ** - 建立用於 ping 延遲和 ping 封包遺失的 CloudWatch 日誌群組指標篩選條件。

   (清除) 如果步驟失敗：

    ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊和所有相關聯的資源。

1.  ** `aws:executeScript` ** - 更新 CloudWatch 儀表板，以包含 ping 延遲和 ping 封包遺失統計資料的小工具。

   (清除) 如果步驟失敗：

    ** `aws:executeAwsApi` ** - 刪除存在的 CloudWatch 儀表板。

    ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊和所有相關聯的資源。

1.  ** `aws:branch` ** - 評估 SleepTime 參數。如果設定為 `0`，自動化會結束而不刪除堆疊。

1.  ** `aws:sleep` ** - 先等待指定的 SleepTime 持續時間，再刪除 CloudFormation 堆疊。

1.  ** `aws:deleteStack` ** - 刪除 CloudFormation 堆疊。根據 RetainDashboardAndLogsOnDeletion 參數，CloudWatch 儀表板和日誌群組會保留或刪除。

   （清除） 如果堆疊刪除失敗：

    ** `aws:executeScript` ** - 描述 CloudFormation 堆疊事件以識別刪除失敗原因。

 **輸出** 

updateCloudWatchDashboard.StackUrl - CloudFormation 堆疊的 URL。

updateCloudWatchDashboard.DashboardUrl - CloudWatch 儀表板的 URL。

updateCloudWatchDashboard.DashboardName - CloudWatch 儀表板的名稱。

updateCloudWatchDashboard.LogGroups - 已建立的 CloudWatch 日誌群組清單。

describeStackResources.HelperInstanceId - 測試執行個體 ID。

describeStackResources.StackName - CloudFormation 堆疊名稱。

# `AWSSupport-TerminateIPMonitoringFromVPC`
<a name="automation-awssupport-terminateipmonitoringfromvpc"></a>

 **Description** 

 `AWSSupport-TerminateIPMonitoringFromVPC` 會終止先前由 啟動的 IP `AWSSupport-SetupIPMonitoringFromVPC` 監控測試。與指定測試 ID 相關的資料都會刪除。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TerminateIPMonitoringFromVPC) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ AutomationExecutionId

  類型：字串

  描述：（必要） 您先前執行 `AWSSupport-SetupIPMonitoringFromVPC` Runbook 時來自 的自動化執行 ID。與此執行 ID 相關聯的所有資源都會遭到刪除。
+ InstanceId

  類型：字串

  描述：(必要) 監控執行個體的執行個體 ID。
+ SubnetId

  類型：字串

  描述：(必要) 監控執行個體的子網路 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

 建議執行自動化的使用者連接 **AmazonSSMAutomationRole** IAM 受管政策。此外，使用者必須將下列政策連接至其使用者、群組或角色：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:DetachRolePolicy",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteInstanceProfile",
                "iam:DeleteRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSSupport/SetupIPMonitoringFromVPC_*",
                "arn:aws:iam::111122223333:instance-profile/AWSSupport/SetupIPMonitoringFromVPC_*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:DetachRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::aws:policy/service-role/AmazonSSMManagedInstanceCore"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "cloudwatch:DeleteDashboards"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "ec2:DescribeTags",
                "ec2:DescribeInstances",
                "ec2:DescribeSecurityGroups",
                "ec2:DeleteSecurityGroup",
                "ec2:TerminateInstances",
                "ec2:DescribeInstanceStatus"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

 **文件步驟** 

1.  `aws:assertAwsResourceProperty` - 檢查 AutomationExecutionId 和 InstanceId 是否與相同的測試相關。

1.  `aws:assertAwsResourceProperty` - 檢查 SubnetId 和 InstanceId 是否與相同的測試相關。

1.  `aws:executeAwsApi` - 擷取測試安全群組。

1.  `aws:executeAwsApi` - 刪除 CloudWatch 儀表板。

1.  `aws:changeInstanceState` - 終止測試執行個體。

1.  `aws:executeAwsApi` - 從角色移除 IAM 執行個體描述檔。

1.  `aws:executeAwsApi` - 刪除自動化建立的 IAM 執行個體描述檔。

1.  `aws:executeAwsApi` - 從自動化建立的角色中刪除 CloudWatch 內嵌政策。

1.  `aws:executeAwsApi` - 從自動化建立的角色分離 **AmazonSSMManagedInstanceCore** 受管政策。

1.  `aws:executeAwsApi` - 刪除自動化建立的 IAM 角色。

1.  `aws:executeAwsApi` - 如果存在，請刪除自動化建立的安全群組。

 **輸出** 

無

# AWS WAF
<a name="automation-ref-waf"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS WAF。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-AddWAFRegionalRuleToRuleGroup`](AWS-AddWAFRegionalRuleToRuleGroup.md)
+ [`AWS-AddWAFRegionalRuleToWebAcl`](AWS-AddWAFRegionalRuleToWebAcl.md)
+ [`AWSConfigRemediation-EnableWAFClassicLogging`](automation-aws-enable-waf-logging.md)
+ [`AWSConfigRemediation-EnableWAFClassicRegionalLogging`](automation-aws-enable-waf-reg-logging.md)
+ [`AWSConfigRemediation-EnableWAFV2Logging`](automation-aws-enable-wafv2-logging.md)

# `AWS-AddWAFRegionalRuleToRuleGroup`
<a name="AWS-AddWAFRegionalRuleToRuleGroup"></a>

 **Description** 

 `AWS-AddWAFRegionalRuleToRuleGroup` Runbook 會將現有的 AWS WAF 區域規則新增至 AWS WAF 區域規則群組。僅支援 AWS WAF 傳統區域規則群組。 AWS WAF 傳統區域規則群組最多可有 10 個規則。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-AddWAFRegionalRuleToRuleGroup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ RuleGroupId

  類型：字串

  描述：（必要） 您要更新的規則群組 ID。
+ RulePriority

  類型：整數

  描述：（必要） 新規則的優先順序。規則優先順序會決定區域群組中規則的評估順序。值較低的規則優先順序高於值較高的規則。值必須是唯一的整數。如果您將多個規則新增至區域規則群組，則值不必是連續的。
+ RuleId

  類型：字串

  描述：（必要） 您要新增至區域規則群組的規則 ID。
+ RuleAction

  類型：字串

  描述：（必要） 指定 Web 請求符合規則條件時所 AWS WAF 採取的動作。

  有效值：允許 \$1 封鎖 \$1 計數

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `waf-regional:GetChangeToken`
+ `waf-regional:GetChangeTokenStatus`
+ `waf-regional:ListActivatedRulesInRuleGroup`
+ `waf-regional:UpdateRuleGroup`

 **文件步驟** 
+ GetWAFChangeToken (aws：executeAwsApi) - 擷取 AWS WAF 變更字符，以確保 Runbook 不會向服務提交衝突的請求。
+ AddWAFRuleToWAFRegionalRuleGroup (aws：executeScript) - 將指定的規則新增至 AWS WAF 區域規則群組。
+ VerifyChangeTokenPropagating (aws：waitForAwsResourceProperty) - 驗證變更字符的狀態為 `PENDING`或 `INSYNC`。
+ VerifyRuleAddedToRuleGroup (aws：executeScript) - 驗證指定的 AWS WAF 規則已新增至目標區域規則群組。

 **輸出** 
+ VerifyRuleAddedToRuleGroup.VerifyRuleAddedToRuleGroupResponse - 步驟的輸出，驗證新規則是否已刪除區域規則群組。
+ VerifyRuleAddedToRuleGroup.ListActivatedRulesInRuleGroupResponse - `ListActivatedRulesInRuleGroup` API 操作的輸出。

# `AWS-AddWAFRegionalRuleToWebAcl`
<a name="AWS-AddWAFRegionalRuleToWebAcl"></a>

 **Description** 

 `AWS-AddWAFRegionalRuleToWebAcl` Runbook 會將現有的 AWS WAF 區域規則、規則群組或速率型規則新增至 AWS WAF Classic 區域 Web 存取控制清單 (ACL)。此 Runbook 不會更新由 管理的現有 AWS WAF Classic 區域 Web ACL AWS Firewall Manager。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-AddWAFRegionalRuleToWebAcl) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ WebACLId

  類型：字串

  描述：（必要） 您要更新的 Web ACL ID。
+ ActivatedRulePriority

  類型：整數

  描述：（必要） 新規則的優先順序。規則優先順序決定 Web ACL 中規則的評估順序。值較低的規則優先順序高於值較高的規則。值必須是唯一的整數。如果您將多個規則新增至區域 Web ACL，則值不必是連續的。
+ ActivatedRuleRuleId

  類型：字串

  描述：（必要） 您要新增至 Web ACL 的規則、速率型規則或群組的 ID。
+ ActivatedRuleAction

  類型：字串

  有效值：允許 \$1 封鎖 \$1 計數

  描述：（選用） 指定 Web 請求符合規則條件時所 AWS WAF 採取的動作。
+ ActivatedRuleType

  類型：字串

  有效值：REGULAR \$1 RATE\$1BASED \$1 GROUP

  預設：REGULAR

  描述：（選用） 您要新增至 Web ACL 的規則類型。雖然此欄位是選用的，但請注意，如果您嘗試在不設定類型的情況下將`RATE_BASED`規則新增至 Web ACL，則請求會失敗，因為請求預設為`REGULAR`規則。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `waf-regional:GetChangeToken`
+ `waf-regional:GetWebACL`
+ `waf-regional:UpdateWebACL`

 **文件步驟** 
+ DetermineWebACLNotInFMSAndRulePriority (aws：executeScript) - 驗證 AWS WAF Web ACL 是否在 Firewall Manager 安全政策中，並確認優先順序 ID 不會與現有的 ACL 衝突。
+ AddRuleOrRuleGroupToWebACL (aws：executeScript) - 將指定的規則新增至 AWS WAF Web ACL。
+ VerifyRuleOrRuleGroupAddedToWebAcl (aws：executeScript) - 驗證指定的 AWS WAF 規則已新增至目標 Web ACL。

 **輸出** 
+ DetermineWebACLNotInFMSAndRulePriority.PrereqResponse: 步驟的輸出`DetermineWebACLNotInFMSAndRulePriority`。
+ VerifyRuleOrRuleGroupAddedToWebAcl.VerifyRuleOrRuleGroupAddedToWebACLResponse: 步驟的輸出`AddRuleOrRuleGroupToWebACL`。
+ VerifyRuleOrRuleGroupAddedToWebAcl.ListActivatedRulesOrRuleGroupsInWebACLResponse:`VerifyRuleOrRuleGroupAddedToWebAcl`步驟的輸出。

# `AWSConfigRemediation-EnableWAFClassicLogging`
<a name="automation-aws-enable-waf-logging"></a>

 **Description** 

 `AWSConfigRemediation-EnableWAFClassicLogging` Runbook 可讓您記錄您指定的 AWS WAF Web 存取控制清單 (Web ACL) 的 Amazon Data Firehose (Firehose)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableWAFClassicRegionalLogging) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ DeliveryStreamName

  類型：字串

  描述：（必要） 您要傳送日誌的 Firehose 交付串流名稱。
+ WebACLId

  類型：字串

  描述：（必要） 您要啟用登入的 AWS WAF Web ACL ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:CreateServiceLinkedRole` 
+  `waf:GetLoggingConfiguration` 
+  `waf:GetWebAcl ` 
+  `waf:PutLoggingConfiguration ` 

 **文件步驟** 
+  `aws:executeAwsApi` - 確認您在 中指定的交付串流`DeliveryStreamName`存在。
+  `aws:executeAwsApi` - 收集 `WebACLId` 參數中指定的 AWS WAF Web ACL ARN。
+  `aws:executeAwsApi` - 啟用 Web ACL 的記錄。
+  `aws:assertAwsResourceProperty` - 確認已在 AWS WAF Web ACL 上啟用記錄。

# `AWSConfigRemediation-EnableWAFClassicRegionalLogging`
<a name="automation-aws-enable-waf-reg-logging"></a>

 **Description** 

 `AWSConfigRemediation-EnableWAFClassicRegionalLogging` Runbook 可讓您記錄您指定的 AWS WAF Web 存取控制清單 (ACL) 的 Amazon Data Firehose (Firehose)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableWAFClassicRegionalLogging) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ LogDestinationConfigs

  類型：字串

  描述：（必要） 您要傳送日誌的 Firehose 交付串流的 Amazon Resource Name (ARN)。
+ WebACLId

  類型：字串

  描述：（必要） 您要啟用登入的 AWS WAF Web ACL ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `iam:CreateServiceLinkedRole` 
+  `waf-regional:GetLoggingConfiguration` 
+  `waf-regional:GetWebAcl ` 
+  `waf-regional:PutLoggingConfiguration ` 

 **文件步驟** 
+  `aws:executeAwsApi` - 收集 `WebACLId` 參數中指定的 AWS WAF Web ACL ARN。
+  `aws:executeAwsApi` - 啟用 Web ACL 的記錄。
+  `aws:assertAwsResourceProperty` - 確認已在 AWS WAF Web ACL 上啟用記錄。

# `AWSConfigRemediation-EnableWAFV2Logging`
<a name="automation-aws-enable-wafv2-logging"></a>

 **Description** 

 `AWSConfigRemediation-EnableWAFV2Logging` Runbook 允許使用指定的 Amazon Data Firehose AWS WAF (Firehose) 交付串流記錄 (AWS WAF V2) Web 存取控制清單 (Web ACL)。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableWAFV2Logging) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ LogDestinationConfigs

  類型：字串

  描述：（必要） 您要與 Web ACL 建立關聯的 Firehose 交付串流 ARN。
**注意**  
 Firehose 交付串流 ARN 必須以字首 `aws-waf-logs-` 開頭。例如 `aws-waf-logs-us-east-2-analytics`。如需詳細資訊，請參閱 [Amazon Data Firehose](https://docs.aws.amazon.com/waf/latest/developerguide/logging-kinesis.html)。
+ WebAclArn

  類型：字串

  描述：（必要） 將啟用日誌記錄之 Web ACL 的 ARN。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `firehose:DescribeDeliveryStream` 
+  `wafv2:PutLoggingConfiguration` 
+  `wafv2:GetLoggingConfiguration` 

 **文件步驟** 
+  `aws:executeScript` - 啟用 AWS WAF V2 Web ACL 的記錄，並驗證記錄是否具有指定的組態。

# Amazon WorkSpaces
<a name="automation-ref-wsp"></a>

 AWS Systems Manager 自動化為 Amazon WorkSpaces 提供預先定義的 Runbook。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWS-CreateWorkSpace`](aws-create-workspace.md)
+ [`AWSSupport-RecoverWorkSpace`](automation-awssupport-recover-workspace.md)

# `AWS-CreateWorkSpace`
<a name="aws-create-workspace"></a>

 **Description** 

 `AWS-CreateWorkSpace` Runbook 會根據您為輸入參數指定的值，建立新的 Amazon WorkSpaces 虛擬桌面，稱為 WorkSpace。如需 WorkSpaces 的相關資訊，請參閱《[Amazon WorkSpaces 管理指南》中的什麼是 Amazon WorkSpaces？](https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces.html)。 *Amazon WorkSpaces *

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateWorkspace) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ BundleId

  類型：字串

  描述：（必要） 用於 WorkSpace 的套件 ID。
+ ComputeTypeName

  類型：字串

  有效值：VALUE \$1 STANDARD \$1 PERFORMANCE \$1 POWER \$1 GRAPHICS \$1 POWERPRO \$1 GRAPHICSPRO

  描述：（選用） WorkSpace 的運算類型。
+ DirectoryId

  類型：字串

  描述：（必要） 要新增 WorkSpace 的目錄 ID。
+ RootVolumeEncryptionEnabled

  類型：布林值

  有效值：true \$1 false

  預設：false

  描述：（選用） 判斷 WorkSpace 的根磁碟區是否已加密。
+ RootVolumeSizeGib

  類型：整數

  描述：（必要） WorkSpace 根磁碟區的大小。
+ RunningMode

  類型：字串

  有效值：ALWAYS\$1ON \$1 AUTO\$1STOP

  描述：（必要） WorkSpace 的執行模式。
+ RunningModeAutoStopTimeoutInMinutes

  類型：整數

  描述：（選用） 使用者在 WorkSpaces 停止時登出後的時間。以 60 分鐘的間隔指定值。
+ Tags (標籤)

  類型：字串

  描述：（選用） 您要套用至 WorkSpace 的標籤。
+ UserName

  類型：字串

  描述：（必要） 要與 WorkSpace 建立關聯的使用者名稱。
+ UserVolumeEncryptionEnabled

  類型：布林值

  有效值：true \$1 false

  預設：false

  描述：（選用） 判斷 WorkSpace 的使用者磁碟區是否已加密。
+ UserVolumeSizeGib

  類型：整數

  描述：（必要） WorkSpace 的使用者磁碟區大小。
+ VolumeEncryptionKey

  類型：字串

  描述：（選用） 您要用來加密 WorkSpace 上存放資料的對稱 AWS Key Management Service 金鑰。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `workspaces:CreateWorkspaces` 
+  `workspaces:DescribeWorkspaces` 

 **文件步驟** 
+  `aws:executeScript` - 根據您為輸入參數指定的值建立 WorkSpace。
+  `aws:waitForAwsResourceProperty` - 驗證 WorkSpace 的狀態為 `AVAILABLE`。

 **輸出** 

`CreateWorkspace.WorkspaceId`

# `AWSSupport-RecoverWorkSpace`
<a name="automation-awssupport-recover-workspace"></a>

 **Description** 

 `AWSSupport-RecoverWorkSpace` Runbook 會在您指定的 Amazon WorkSpaces 虛擬桌面上執行復原步驟，稱為 WorkSpace。Runbook 會重新啟動 WorkSpace，如果狀態仍然為 `UNHEALTHY` ， 會根據您為輸入參數指定的值來還原或重建 WorkSpace。使用此 Runbook 之前，建議您檢閱《Amazon [ WorkSpaces 管理指南》中的對 WorkSpaces 問題進行故障診斷](https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-troubleshooting.html)。 *Amazon WorkSpaces * 

**重要**  
還原或重建 WorkSpace 是可能導致資料遺失的潛在破壞性動作。這是因為 WorkSpace 從最後一個可用的快照還原，而從快照復原的資料可能長達 12 小時。  
 還原選項會根據最新的快照重新建立根磁碟區和使用者磁碟區。重建選項會從最新的快照重新建立使用者磁碟區，並從與建立 WorkSpace 之套件相關聯的映像重新建立 WorkSpace。已安裝的應用程式或在建立 WorkSpace 後變更的系統設定將會遺失。如需還原和重建 WorkSpaces 的詳細資訊，請參閱《Amazon [ WorkSpaces 管理指南》中的還原](https://docs.aws.amazon.com/workspaces/latest/adminguide/restore-workspace.html) WorkSpace 和[重建 WorkSpace](https://docs.aws.amazon.com/workspaces/latest/adminguide/rebuild-workspace.html) WorkSpace。 *Amazon WorkSpaces * 

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-RecoverWorkSpace) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ 確認

  類型：字串

  有效值：是

  描述：（必要） 輸入 yes 表示您了解還原和重建動作會嘗試從最新的快照復原 WorkSpace，而且從這些快照還原的資料可能長達 12 小時。
+ 重新啟動

  類型：字串

  有效值：是 \$1 否

  預設：是

  描述：（必要） 判斷 WorkSpace 是否重新啟動。
+ 重建

  類型：字串

  有效值：是 \$1 否

  預設：否

  描述：（必要） 決定是否重建 WorkSpace。
+ 還原

  類型：字串

  有效值：是 \$1 否

  預設：否

  描述：（必要） 決定是否還原 WorkSpace。
+ WorkspaceId

  類型：字串

  描述：（必要） 您要復原的 WorkSpace ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `workspaces:DescribeWorkspaces` 
+  `workspaces:DescribeWorkspaceSnapshots` 
+  `workspaces:RebootWorkspaces` 
+  `workspaces:RebuildWorkspaces` 
+  `workspaces:RestoreWorkspace` 
+  `workspaces:StartWorkspaces` 

 **文件步驟** 
+  `aws:executeAwsApi` - 收集您在 `WorkspaceId` 參數中指定的 WorkSpace 狀態。
+  `aws:assertAwsResourceProperty` - 驗證 WorkSpace 的狀態為 `AVAILABLE` 、`ERROR`、、 `IMPAIRED` `STOPPED` 或 `UNHEALTHY` 。
+  `aws:branch` - 根據 WorkSpace 狀態的分支。
+  `aws:executeAwsApi` - 啟動 WorkSpace。
+  `aws:branch` - 根據您為 `Action` 參數指定的值進行分支。
+  `aws:waitForAwsResourceProperty` - 在啟動後等待 WorkSpace 狀態。
+  `aws:waitForAwsResourceProperty` - 等待 WorkSpace 狀態在啟動`UNHEALTHY`後變更為 `AVAILABLE` 、、 `ERROR` `IMPAIRED` 或 。
+  `aws:executeAwsApi` - 開始後收集 WorkSpace 的狀態。
+  `aws:branch` - 啟動後根據 WorkSpace 狀態進行分支。
+  `aws:executeAwsApi` - 收集可用於還原或重建 WorkSpace 的快照。
+  `aws:branch` - 根據您為 `Reboot` 參數指定的值進行分支。
+  `aws:executeAwsApi` - 重新啟動 WorkSpace。
+  `aws:executeAwsApi` - 開始後收集 WorkSpace 的狀態。
+  `aws:waitForAwsResourceProperty` - 等待 WorkSpace 的狀態變更為 `REBOOTING` 。
+  `aws:waitForAwsResourceProperty` - 重新啟動`UNHEALTHY`後，等待 WorkSpace 狀態變更為 `AVAILABLE` 、 `ERROR` 或 。
+  `aws:executeAwsApi` - 在重新啟動後收集 WorkSpace 的狀態。
+  `aws:branch` - 重新啟動後，根據 WorkSpace 狀態進行分支。
+  `aws:branch` - 根據您為 `Restore` 參數指定的值進行分支。
+  `aws:executeAwsApi` - 還原 WorkSpace。如果還原失敗，執行手冊會嘗試重建 WorkSpace。
+  `aws:waitForAwsResourceProperty` - 等待 WorkSpace 的狀態變更為 `RESTORING` 。
+  `aws:waitForAwsResourceProperty` - 等待 WorkSpace 狀態在還原`UNHEALTHY`後變更為 `AVAILABLE` 、 `ERROR` 或 。
+  `aws:executeAwsApi` - 在還原後收集 WorkSpace 的狀態。
+  `aws:branch` - 還原後根據 WorkSpace 狀態進行分支。
+  `aws:branch` - 根據您為 `Rebuild` 參數指定的值進行分支。
+  `aws:executeAwsApi` - 重建 WorkSpace。
+  `aws:waitForAwsResourceProperty` - 等待 WorkSpace 的狀態變更為 `REBUILDING` 。
+  `aws:waitForAwsResourceProperty` - 等待 WorkSpace 狀態在重建`UNHEALTHY`後變更為 `AVAILABLE` 、 `ERROR` 或 。
+  `aws:executeAwsApi` - 在重建後收集 WorkSpace 的狀態。
+  `aws:assertAwsResourceProperty` - 確認 WorkSpace 的狀態為 `AVAILABLE` 。

# X-Ray
<a name="automation-ref-xray"></a>

AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS X-Ray。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-UpdateXRayKMSKey`](automation-aws-update-xray-key.md)

# `AWSConfigRemediation-UpdateXRayKMSKey`
<a name="automation-aws-update-xray-key"></a>

 **Description** 

 `AWSConfigRemediation-UpdateXRayKMSKey` Runbook 會使用 AWS Key Management Service (AWS KMS) 金鑰啟用 AWS X-Ray 資料加密。此 Runbook 應僅用作基準，以確保 AWS X-Ray 您的資料根據最低建議的安全最佳實務進行加密。我們建議使用不同的 KMS 金鑰加密多組資料。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-UpdateXRayKMSKey) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ KeyId

  類型：字串

  描述：（必要） AWS X-Ray 要用來加密資料的 KMS 金鑰的 Amazon Resource Name (ARN)、金鑰 ID 或金鑰別名。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `kms:DescribeKey` 
+  `xray:GetEncryptionConfig` 
+  `xray:PutEncryptionConfig` 

 **文件步驟** 
+  `aws:executeAwsApi` - 使用您在 `KeyId` 參數中指定的 KMS 金鑰啟用 X-Ray 資料的加密。
+  `aws:waitForAwsResourceProperty` - 等待 X-Ray 的加密組態狀態為 `ACTIVE` 。
+  `aws:executeAwsApi` - 收集您在 `KeyId` 參數中指定的金鑰 ARN。
+  `aws:assertAwsResourceProperty` - 驗證已在您的 X-Ray 上啟用加密。