

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

# `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/)