View a markdown version of this page

AWSSupport-TroubleshootActiveDirectoryReplication - AWS Systems Manager Automation Runbook 參考

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

AWSSupport-TroubleshootActiveDirectoryReplication

Description

AWSSupport-TroubleshootActiveDirectoryReplication Runbook 透過檢查目標網域控制站執行個體上的常見設定,協助疑難排解 Microsoft Active Directory (AD) 網域控制站複寫失敗。此 Runbook 會對提供的網域控制器執行個體執行一系列 PowerShell 命令,以檢查目前的複寫狀態並報告可能導致網域複寫問題的錯誤。Runbook 可以選擇性地啟動複寫關鍵服務 (NetlogonW32Time、 和 KDC)RPCSS,如果它們停止,並透過在目標執行個體w32tm /resync /force上執行來同步系統時間。

重要

AWS Managed Microsoft AD 不在此 Runbook 的範圍內。

重要

當自動化在目標執行個體上執行命令時,會變更目標執行個體檔案系統。這些變更包括建立日誌目錄 ($env:ProgramData\TroubleshootActiveDirectoryReplication) 和報告檔案。

如何運作?

Runbook 會執行下列檢查和動作:

  • 驗證目標執行個體是否正在執行 Windows,並由 Systems Manager 管理。

  • 執行 PowerShell 指令碼來檢查 Active Directory 複寫組態和狀態。

  • 檢查安全群組和網路 ACL 設定是否有複寫合作夥伴連線。

  • 對時間同步和關鍵服務狀態進行故障診斷。

  • 將日誌檔案上傳至指定的 Amazon S3 儲存貯體進行分析。

執行此自動化 (主控台)

文件類型

 自動化

擁有者

Amazon

平台

Windows

參數

必要的 IAM 許可

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

  • ec2:DescribeInstances

  • secretsmanager:GetSecretValue

  • 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 秘密中的步驟建立新的 AWS Secrets Manager 秘密。請確定使用者名稱和密碼是使用格式為 的金鑰/值對來存放{"username":"EXAMPLE-USER","password":"EXAMPLE-PASSWORD"}。建立 AWS Secrets Manager 秘密之後,請務必將秘密 ARN 的secretsmanager:GetSecretValue許可授予目標網域控制站 IAM 執行個體描述檔角色。

指示

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

  1. 在文件下的 Systems Manager AWSSupport-TroubleshootActiveDirectoryReplication中導覽至 。

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

  3. 針對輸入參數,輸入下列內容:

    • 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 (選用):

      • 描述:(選用) 選取 CheckSync。如果您選擇 Check, Runbook 會列印出目前的系統時間同步狀態。Sync 如果選取 ,則 Runbook 會透過在目標執行個體w32tm /resync /force上執行 來嘗試強制時間重新同步。

      • 類型:String

      • 允許的值: [Check, Sync]

      • 預設:Check

    • ServiceAction (選用):

      • 描述:(選用) 選取 CheckFix。如果您選擇 Check, Runbook 會列印 NetlogonRemote Procedure Call (RPC) ServiceWindows Time service (W32Time)Key Distribution Center (KDC)服務的目前狀態。如果已選取 Fix ,則 Runbook 會在有任何 停止時嘗試啟動這些服務。

      • 類型:String

      • 允許的值: [Check, Fix]

      • 預設:Check

    • LogDestination (必要):

      • 描述:(必要) AWS 帳戶中用來上傳命令輸出的 Amazon Amazon S3 儲存貯體。

      • 類型:String

  4. 選取執行

  5. 自動化會啟動。

  6. 文件會執行下列步驟:

    • 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 共用。

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

參考

Systems Manager Automation