本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定自我管理 Active Directory
若要設定自我管理 AD,請採取下列步驟。
主題
步驟 1:在您的 AD 中建立組織單位
重要
我們建議為擁有加入自我管理 AD 網域的 RDS for Db2 資料庫執行個體的任何 AWS 帳戶建立範圍為該 OU 的專用 OU 和服務憑證。透過指定 OU 和服務登入資料,您可以避免衝突的許可,並遵循最低權限原則。
在您的 AD 中建立 OU
-
以網域管理員身分連線至您的 AD 網域。
-
開啟 Active Directory 使用者和電腦,然後選取您要在其中建立 OU 的網域。
-
開啟網域的內容選單,選擇新增,然後選擇組織單位。
-
輸入 OU 的名稱。
-
保持選取保護容器免遭意外刪除的方塊。
-
選擇確定。您的新 OU 會出現在您的網域下方。
步驟 2:在您的 AD 中建立 AD 網域服務帳戶
使用網域服務帳戶登入資料做為 Secrets Manager 中的 AWS 秘密。
在您的 AD 中建立 AD 網域服務帳戶
-
開啟 Active Directory 使用者和電腦,然後選取您要在其中建立使用者的網域。
-
開啟使用者的內容選單,選擇新增,然後選擇使用者。
-
輸入使用者的名字、姓氏和登入名稱。選擇下一步。
-
輸入使用者的密碼。不要選取 使用者必須在下次登入時變更密碼。不選取帳戶已停用。選擇下一步。
-
選擇確定。您的新使用者會出現在您的網域下。
步驟 3:將控制權委派給 AD 網域服務帳戶
A 部分:使用 控制委派精靈委派許可
將控制權委派給網域中的 AD 網域服務帳戶
-
開啟 Active Directory 使用者和電腦 Microsoft 管理主控台 (MMC) Snap-in,然後選取您要建立使用者的網域。
-
開啟您先前建立之 OU 的內容選單,然後選擇委派控制。
-
在控制委派精靈上,選擇下一步。
-
在使用者或群組區段中,選擇新增。
-
在選取使用者、電腦或群組區段中,輸入您建立的 AD 網域服務帳戶,然後選擇檢查名稱。如果您的 AD 網域服務帳戶檢查成功,請選擇確定。
-
在使用者或群組區段中,確認您的 AD 網域服務帳戶已新增,然後選擇下一步。
-
在要委派的任務區段中,選擇建立要委派的自訂任務,然後選擇下一步。
-
在 Active Directory 物件類型區段上:
-
選擇僅限資料夾中的下列物件。
-
選取使用者物件。
-
選取在此資料夾中建立選取的物件。
-
選取刪除此資料夾中選取的物件,然後選擇下一步。
-
-
在許可區段上:
-
保持選取一般。
-
選取屬性特定。
-
選取建立/刪除特定子物件。
-
選取重設密碼。
-
選取讀取 msDS-SupportedEncryptionTypes。
-
選取寫入 msDS-SupportedEncryptionTypes。
-
-
若要完成控制委派精靈,請檢閱並確認您的設定,然後選擇完成。
B 部分:使用 PowerShell 委派 servicePrincipalName 許可
控制委派精靈不會公開使用者物件的 servicePrincipalName 屬性。在網域控制器上執行下列 PowerShell 指令碼,以授予 AD 網域服務帳戶servicePrincipalName對 OU 中使用者物件的讀取和寫入存取權。
以您在步驟 2 中建立的 AD 網域服務帳戶名稱取代 service-account,並更新 OU 辨別名稱以符合您在步驟 1 中建立的 OU。
$ou = "OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain" $user = Get-ADUser "service-account" $acl = Get-Acl "AD:\$ou" $schemaPath = (Get-ADRootDSE).schemaNamingContext $spnSchema = Get-ADObject -SearchBase $schemaPath -Filter {lDAPDisplayName -eq "servicePrincipalName"} -Properties schemaIDGUID $spnGuid = New-Object Guid (,$spnSchema.schemaIDGUID) $userGuid = New-Object Guid "bf967aba-0de6-11d0-a285-00aa003049e2" $ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule( $user.SID, "ReadProperty,WriteProperty", "Allow", $spnGuid, "Descendents", $userGuid ) $acl.AddAccessRule($ace) Set-Acl "AD:\$ou" $acl
若要驗證是否正確套用許可,請執行下列 PowerShell 指令碼:
$acl = Get-Acl "AD:\$ou" $acl.Access | Where-Object { $_.IdentityReference -like "*service-account*" } | Format-List
步驟 4:建立 AWS KMS 金鑰
KMS 金鑰會加密您的 AWS 秘密。
注意
對於加密金鑰,請勿使用 AWS 預設 KMS 金鑰。請務必在相同 AWS 帳戶中建立 AWS KMS 金鑰,其中包含您要加入自我管理 AD 的 RDS for Db2 資料庫執行個體。
建立 AWS KMS 金鑰
-
在 https://https://console.aws.amazon.com/kms/
開啟 AWS KMS 主控台。選擇建立金鑰。 -
對於金鑰類型,選擇對稱。
-
對於金鑰用途,選擇加密和解密。
-
針對 Advanced options (進階選項):
-
對於金鑰材料來源,選擇 KMS。
-
針對區域性,選擇單一區域金鑰,然後選擇下一步。
-
-
對於別名,提供 KMS 金鑰的名稱。
-
(選用) 對於描述,提供 KMS 金鑰的描述。
-
(選用) 對於標籤,提供 KMS 金鑰的標籤,然後選擇下一步。
-
對於金鑰管理員,提供 IAM 使用者的名稱,然後選取該名稱。
-
針對金鑰刪除,請保留選取允許金鑰管理員刪除此金鑰的方塊,然後選擇下一步。
-
對於金鑰使用者,提供上一個步驟中相同的 IAM 使用者,然後選取該使用者。選擇下一步。
-
檢閱組態。
-
對於金鑰政策,在政策聲明中包含下列內容:
{ "Sid": "Allow use of the KMS key on behalf of RDS", "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "kms:Decrypt", "Resource": "*" } -
選擇完成。
步驟 5:建立 AWS 秘密
注意
請務必在包含您要加入自我管理 AD 的 RDS for Db2 資料庫執行個體的相同 AWS 帳戶中建立秘密。
若要建立機密
-
在 https://https://console.aws.amazon.com/secretsmanager/
開啟 AWS Secrets Manager 主控台。選擇存放新的機密。 -
針對機密類型,選擇其他類型的機密。
-
對於金鑰/值對,新增兩個金鑰:
-
對於第一個金鑰,輸入
SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME。 -
對於第一個金鑰的值,僅輸入 AD 使用者的使用者名稱 (不含網域字首)。請勿包含網域名稱,因為這會導致執行個體建立失敗。
-
對於第二個金鑰,輸入
SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD。 -
對於第二個金鑰的值,輸入您在網域上為 AD 使用者建立的密碼。
-
-
針對加密金鑰,輸入您在上一個步驟中建立的 KMS 金鑰,然後選擇下一步。
-
對於秘密名稱,輸入可協助您稍後尋找密碼的描述性名稱。
-
(選用) 對於描述,輸入秘密名稱的描述。
-
針對資源許可,選擇編輯。
-
請將下列政策新增至許可政策:
注意
建議您使用政策中的
aws:sourceAccount和aws:sourceArn條件金鑰,保護自己免受混淆代理人問題的困擾。使用 的 AWS 帳戶aws:sourceAccount和 的 RDS for Db2 資料庫執行個體 ARNaws:sourceArn。如需詳細資訊,請參閱防止跨服務混淆代理人問題。{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "StringEquals": { "aws:sourceAccount": "123456789012" }, "ArnLike": { "aws:sourceArn": "arn:aws:rds:us-west-2:123456789012:db:*" } } } ] } -
選擇儲存,然後選擇下一步。
-
對於設定輪換設定,保留預設值並選擇下一步。
-
檢閱秘密的設定,然後選擇儲存。
-
選擇您建立的秘密,然後複製秘密 ARN 的值。在下一個步驟中使用此值來設定自我管理 Active Directory。
步驟 6:建立或修改 Db2 資料庫執行個體
您可以使用 AWS CLI 將 RDS for Db2 資料庫執行個體與自我管理 AD 網域建立關聯。您可採用下列其中一種方式來這麼做:
-
使用 create-db-instanceCLI 命令建立新的 Db2 資料庫執行個體。如需說明,請參閱建立 Amazon RDS 資料庫執行個體。
-
使用 modify-db-instanceCLI 命令修改現有的 Db2 資料庫執行個體。如需說明,請參閱修改 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 命令會建立新的 RDS for Db2 資料庫執行個體,並將其加入自我管理 AD 網域。
針對 Linux、macOS 或 Unix:
aws rds create-db-instance \ --db-instance-identifiermy-DB-instance\ --db-instance-class db.m6i.large \ --allocated-storage 50 \ --engine db2-se \ --engine-version 11.5 \ --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-class db.m6i.large ^ --allocated-storage 50 ^ --engine db2-se ^ --engine-version 11.5 ^ --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"