跳至內容

如何排解搭配 AWS Managed Microsoft AD 的 Amazon RDS for SQL Server Windows 驗證問題?

3 分的閱讀內容
0

我為 AWS 帳戶設定了 AWS Directory Service for Microsoft Active Directory。我嘗試建立 Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server 資料庫執行個體時遇到問題。

簡短說明

建立 Amazon RDS for SQL Server 資料庫執行個體時,您可能會遇到下列其中一個問題:

  • AWS Managed Microsoft AD 無法使用。
  • 您收到 "Failed to join a host to a domain" 錯誤訊息,或 Amazon Aurora 和 RDS 主控台上的目錄狀態顯示為 Failed (失敗)。
  • 您無法使用 Windows 驗證登入資料庫執行個體。

您可以針對跨多個 AWS 帳戶與虛擬私有雲端 (VPC) 的 RDS for SQL Server 資料庫執行個體使用 Windows 驗證。您也可以在多個帳戶和 VPC 之間共用 AWS Managed Microsoft AD 目錄,以管理目錄感知資料庫工作負載。但是,RDS for SQL Server 資料庫執行個體必須與 AWS Managed Microsoft AD 目錄位於相同 AWS 區域。

解決方法

注意: 如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱 Troubleshooting errors for the AWS CLI (對 AWS CLI 錯誤進行疑難排解)。此外,請務必使用最新版 AWS CLI

建立資料庫執行個體時,AWS Managed Microsoft AD 未列出或無法使用

重要事項: 若要讓 Aurora 和 RDS 主控台列出 AWS Managed Microsoft AD,受管網域類型必須是 AWS 受管 Active Directory

當 AWS Managed Microsoft AD 與資料庫執行個體分屬不同區域時,Amazon RDS 在建立或修改資料庫執行個體時就不會列出目錄。若要解決此問題,請確認資料庫執行個體與目錄位於同一個區域。

請依照以下步驟,檢查資料庫執行個體與目錄是否在同一個區域:

  1. 開啟 Aurora 和 RDS 主控台
  2. 在導覽窗格中,選擇 Databases (資料庫)。
  3. 選取您的資料庫執行個體。
  4. Summary (摘要) 區段中,記下資料庫執行個體所在的區域
  5. 使用 AWS Directory Service 主控台確認目錄與資料庫執行個體位於相同區域。

如果您的 AWS Managed Microsoft AD 與資料庫執行個體位於不同帳戶,請完成下列步驟:

  1. 與您要建立資料庫執行個體的 AWS 帳戶共用目錄
  2. 使用資料庫執行個體的帳戶開啟 AWS Directory Service 主控台
  3. 確認網域狀態是否為 SHARED (已共用)。
  4. 使用 Directory ID(目錄 ID) 值,將資料庫執行個體加入網域。

將資料庫執行個體加入網域時收到錯誤訊息,或目錄狀態顯示失敗

您將資料庫執行個體加入網域時,可能會收到 "Failed to join a host to a domain.Domain membership status for instance XXXXXXX has been set to Failed" 錯誤訊息。或者,目錄狀態可能會顯示為 Failed (失敗)。

若要排解網域加入失敗問題,請完成下列步驟:

  1. 確認您已將 RDS for SQL Server 執行個體安全群組設定為允許下列傳出流量:
    TCP 和 UDP 連接埠 53
    TCP 和 UDP 連接埠 88
    TCP 和 UDP 連接埠 135
    TCP 和 UDP 連接埠 389
    TCP 和 UDP 連接埠 445
    TCP 和 UDP 連接埠 464
    TCP 連接埠 636
    TCP 連接埠 3268
    TCP 連接埠 3269
    TCP 連接埠 9389
    TCP 連接埠 49152-65535
    UDP 連接埠 123
    UDP 連接埠 138
  2. 確認您已將 AWS Managed Microsoft AD 安全群組設定為允許正確的傳入流量。
    注意: 當您建立 AWS Managed Microsoft AD 時,AWS Directory Service 會建立一個安全群組。如需新增至安全群組的傳入和傳出規則清單,請參閱使用 AWS Managed Microsoft AD 建立的內容
  3. 檢查您的資料庫執行個體和 AWS Managed Microsoft AD 是否位於不同的 VPC 或帳戶中。
    注意: 如果是的話,請確定有正確的路由來將資料庫執行個體連接至 AWS Managed Microsoft AD。同時,也請確保有正確的路由供 Microsoft Managed AD 連接至資料庫執行個體。

在您確定並解決網域加入失敗的潛在原因之後,請完成下列步驟,將資料庫執行個體重新加入網域:

  1. 開啟 Aurora 和 RDS 主控台
  2. 在導覽窗格中,選擇 Databases (資料庫)。
  3. 選取無法加入網域的資料庫執行個體,然後選擇 Modify (修改)。
  4. Microsoft SQL Server Windows Authentication (Microsoft SQL Server Windows 驗證) 區段的 Directory (目錄) 中,選擇 None (無)。
  5. 選擇 Apply immediately (立即套用)。
    注意: 修改完成後,資料庫執行個體會自動重新啟動。
  6. 在導覽窗格中,選擇 Databases (資料庫)。
  7. 選取資料庫執行個體,然後選擇 Modify (修改)。
  8. Microsoft SQL Server Windows Authentication (Microsoft SQL Server Windows 驗證) 區段的 Directory (目錄) 中,選取您的目錄。
  9. 選擇 Apply immediately (立即套用)。
    注意: 修改完成後,資料庫執行個體會再次重新啟動。

呼叫 ModifyDBInstance 作業時出現 InvalidParameterCombination 錯誤

當您呼叫 ModifyDBInstance 作業時,可能會收到 "IAM role provided is not valid, check that the role exists and has the correct policies" 錯誤訊息。

使用 AWS CLI 將目錄服務連接到資料庫執行個體時,請使用預設 rds-directoryservice-access-role AWS Identity and Access Management (IAM) 角色。

如果您使用自訂角色,請將 AmazonRDSDirectoryServiceAccess 預設政策連接到自訂角色。

無法使用 Windows 驗證登入資料庫執行個體

Windows 驗證需要在執行個體上為 AWS Managed Microsoft AD 使用者或群組建立 SQL 登入。SQL 登入會使用資料庫執行個體的主要使用者憑證。如果您在內部部署 Microsoft Active Directory 中使用群組或使用者,則必須建立信任關係

若要建立信任關係,請完成下列步驟:

  1. 使用 SQL Server Management Studio (SSMS),以主要使用者身分登入資料庫執行個體。
  2. 執行下列命令以建立 Windows 驗證登入:
    CREATE LOGIN [Domain Name\user or group] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];
    注意: 請將 Domain Name\user or group 替換成您的網域名稱以及您要使用的使用者或群組。在 RDS for SQL Server 執行個體上建立 Windows 驗證登入時,您必須使用 T-SQL。您無法在 SQL SSMS 中使用圖形使用者介面 (GUI) 來建立登入。
  3. 使用 Windows 驗證連接到資料庫執行個體。

相關資訊

使用 RDS for SQL Server 搭配 AWS 受管 Active Directory

無法連接至 Amazon RDS 資料庫執行個體

跨帳戶將您的 Amazon RDS 資料庫執行個體加入單一共用網域

將 Microsoft SQL Server 資料庫遷移至 AWS 雲端

AWS 官方已更新 5 個月前