將資料庫執行個體加入自我管理 Active Directory
若要將 RDS for SQL Server 資料庫執行個體加入自我管理 AD,請遵循下列步驟:
步驟 1:建立或修改 SQL Server 資料庫執行個體
您可以使用主控台、CLI 或 RDS API,將 RDS for SQL Server 資料庫執行個體與自我管理 AD 網域建立關聯。您可採用下列其中一種方式來這麼做:
-
使用主控台、create-db-instance CLI 命令,或 CreateDBInstance RDS API 操作,建立新的 SQL Server 資料庫執行個體。
如需說明,請參閱「建立 Amazon RDS 資料庫執行個體」。
-
使用主控台、modify-db-instance CLI 命令,或 ModifyDBInstance RDS API 操作,修改現有的 SQL Server 資料庫執行個體。
如需說明,請參閱「修改 Amazon RDS 資料庫執行個體」。
-
使用主控台、restore-db-instance-from-db-snapshot CLI 命令,或 RestoreDBInstanceFromDBSnapshot RDS API 操作,從資料庫快照還原 SQL Server 資料庫執行個體。
如需說明,請參閱「還原至資料庫執行個體」。
-
使用主控台、restore-db-instance-to-point-in-time CLI 命令,或 RestoreDBInstanceToPointInTime RDS API 操作,將 SQL Server 資料庫執行個體還原至某個時間點。
如需說明,請參閱「將 Amazon RDS 的資料庫執行個體還原至指定時間」。
使用 AWS CLI 時,需要下列參數,資料庫執行個體才能使用您建立的自我管理 AD 網域:
-
對於
--domain-fqdn參數,使用自我管理 AD 的完整網域名稱 (FQDN)。 -
對於
--domain-ou參數,使用您在自我管理 AD 中建立的 OU。 -
對於
--domain-auth-secret-arn參數,使用您在上一個步驟中所建立之秘密 ARN 的值。 -
對於
--domain-dns-ips參數,針對自我管理 AD 使用 DNS 伺服器的主要和次要 IPv4 地址。如果您沒有次要 DNS 伺服器 IP 地址,請輸入主要 IP 地址兩次。
下列範例 CLI 命令說明如何建立、修改及移除具有自我管理 AD 網域的 RDS for SQL Server 資料庫執行個體。
重要
如果您修改資料庫執行個體,以將其加入自我管理 AD 網域或從中移除,則需要重新啟動資料庫執行個體,修改才會生效。您可以選擇立即套用變更,也可以等到下一個維護時段。選擇立即套用選項會導致單一可用區域資料庫執行個體停機。多可用區域資料庫執行個體將在完成重新啟動之前執行容錯移轉。如需詳細資訊,請參閱 使用排程修改設定。
下列 CLI 命令會建立新的 RDS for SQL Server 資料庫執行個體,並將其加入自我管理 AD 網域。
針對 Linux、macOS 或 Unix:
aws rds create-db-instance \ --db-instance-identifiermy-DB-instance\ --db-instance-classdb.m5.xlarge\ --allocated-storage50\ --enginesqlserver-se\ --engine-version15.00.4043.16.v1\ --license-modellicense-included\ --master-usernamemy-master-username\ --master-user-passwordmy-master-password\ --domain-fqdnmy_AD_domain.my_AD.my_domain\ --domain-ouOU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain\ --domain-auth-secret-arn"arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456"\ --domain-dns-ips"10.11.12.13" "10.11.12.14"
針對 Windows:
aws rds create-db-instance ^ --db-instance-identifiermy-DB-instance^ --db-instance-classdb.m5.xlarge^ --allocated-storage50^ --enginesqlserver-se^ --engine-version15.00.4043.16.v1^ --license-modellicense-included^ --master-usernamemy-master-username^ --master-user-passwordmy-master-password^ --domain-fqdnmy-AD-test.my-AD.mydomain^ --domain-ouOU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain^ --domain-auth-secret-arn"arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \^ --domain-dns-ips"10.11.12.13" "10.11.12.14"
下列 CLI 命令會修改現有的 RDS for SQL Server 資料庫執行個體,以使用自我管理 AD 網域。
針對 Linux、macOS 或 Unix:
aws rds modify-db-instance \ --db-instance-identifiermy-DB-instance\ --domain-fqdnmy_AD_domain.my_AD.my_domain\ --domain-ouOU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain\ --domain-auth-secret-arn"arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456"\ --domain-dns-ips"10.11.12.13" "10.11.12.14"
針對 Windows:
aws rds modify-db-instance ^ --db-instance-identifiermy-DBinstance^ --domain-fqdnmy_AD_domain.my_AD.my_domain^ --domain-ouOU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain^ --domain-auth-secret-arn"arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456"^ --domain-dns-ips"10.11.12.13" "10.11.12.14"
下列 CLI 命令會從自我管理 AD 網域中移除 RDS for SQL Server 資料庫執行個體。
針對 Linux、macOS 或 Unix:
aws rds modify-db-instance \ --db-instance-identifiermy-DB-instance\ --disable-domain
針對 Windows:
aws rds modify-db-instance ^ --db-instance-identifiermy-DB-instance^ --disable-domain
步驟 2:使用 Kerberos 或 NTLM 身分驗證
NTLM 身分驗證
每個 Amazon RDS 資料庫執行個體都有端點,並且每個端點有資料庫執行個體的 DNS 名稱和連接埠號碼。若要使用 SQL 用戶端應用程式連線至您的資料庫執行個體,您需要資料庫執行個體的 DNS 名稱和連接埠號碼。若要使用 NTLM 身分驗證進行驗證,如果您使用多可用區域部署,則必須連線至 RDS 端點或接聽程式端點。
在規劃的資料庫維護或未規劃的服務中斷期間,Amazon RDS 會自動容錯移轉到最新的次要資料庫,以便操作可以很快繼續執行,而無須人為介入。主要與次要執行個體會使用相同的端點,其實體網路會處理轉換至次要的作業,做為容錯移轉程序的一部分。當容錯移轉發生時,您不必重新設定應用程式。
Kerberos 身分驗證
RDS for SQL Server 的 Kerberos 型身分驗證需要提供特定服務主體名稱 (SPN) 的連線。不過,容錯移轉事件之後,應用程式可能不知道新的 SPN。為了解決此問題,RDS for SQL Server 提供了 Kerberos 型端點。
Kerberos 型端點遵循特定格式。如果您的 RDS 端點為 ,則對應的 Kerberos 型端點將為 rds-instance-name.account-region-hash.aws-region.rds.amazonaws.com。rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN)
例如,如果 RDS 端點為 ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com,且網域名稱為 corp-ad.company.com,則 Kerberos 型端點將為 ad-test.cocv6zwtircu.us-east-1.awsrds.corp-ad.company.com。
此 Kerberos 型端點可以使用 Kerberos 與 SQL Server 執行個體進行驗證,即使在容錯移轉事件之後也一樣,因為端點會自動更新,以指向主要 SQL Server 執行個體的新 SPN。
尋找您的 CNAME
若要尋找 CNAME,請連線至您的網域控制站,並開啟 DNS Manager。導覽至轉送查詢區域和您的 FQDN。
導覽 awsrds、aws-region 以及帳戶和區域特定的雜湊。
如果從遠端用戶端連線 CNAME 之後傳回 NTLM 連線,請檢查是否允許列出必要的連接埠。
如果要檢查您的連線使用的是 Kerberos,請執行下列查詢:
SELECT net_transport, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SSPID;
如果執行個體在您連線至 Kerberos 端點時傳回 NTLM 連線,請驗證您的網路組態和使用者組態。請參閱設定您的網路連線能力。
步驟 3:建立 Windows 身分驗證 SQL Server 登入
使用 Amazon RDS 主要使用者憑證來連線至 SQL Server 資料庫執行個體,如同您對任何其他資料庫執行個體所做一般。因為資料庫執行個體已加入自我管理 AD 網域,所以您可以佈建 SQL Server 登入和使用者。您可以從自我管理 AD 網域中的 AD 使用者和群組公用程式執行此操作。您可透過對這些 Windows 登入授予和撤銷的標準 SQL Server 許可來管理資料庫許可。
為了讓自我管理 AD 網域服務帳戶向 SQL Server 進行身分驗證,自我管理 AD 網域服務帳戶或使用者所屬的自我管理 AD 群組必須要有 SQL Server Windows 登入存在。精細定義的存取控制是透過授予和撤銷這些 SQL Server 登入的許可來處理。自我管理 AD 網域服務帳戶若沒有 SQL Server 登入,或不屬於具有此類登入的自我管理 AD 群組,則無法存取 SQL Server 資料庫執行個體。
需要 ALTER ANY LOGIN 許可,才能建立自我管理 AD SQL Server 登入。如果您尚未使用此許可建立任何登入,請使用 SQL Server 身分驗證,以資料庫執行個體的主要使用者身分連線,並在主要使用者的內容下建立自我管理 AD SQL Server 登入。
您可以執行如下的資料定義語言 (DDL) 命令,為自我管理 AD 網域服務帳戶或群組建立 SQL Server 登入。
注意
使用 Windows 2000 前版的登入名稱,以格式 來指定使用者和群組。您無法使用格式為 my_AD_domain\my_AD_domain_usermy_AD_domain_user@ 的使用者原則名稱 (UPN)。my_AD_domain
USE [master] GO CREATE LOGIN [my_AD_domain\my_AD_domain_user] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english]; GO
如需詳細資訊,請參閱 Microsoft 開發人員網路文件中的 建立登入 (Transact-SQL)
來自您網域的使用者 (人員和應用程式兩者) 現在可以使用 Windows 身分驗證,從加入自我管理 AD 網域的用戶端機器連線至 RDS for SQL Server Active 執行個體。