View a markdown version of this page

設定自我管理 Active Directory - Amazon Relational Database Service

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

設定自我管理 Active Directory

若要設定自我管理 AD,請採取下列步驟。

步驟 1:在您的 AD 中建立組織單位

重要

我們建議為擁有加入自我管理 AD 網域的 RDS for Db2 資料庫執行個體的任何 AWS 帳戶建立範圍為該 OU 的專用 OU 和服務憑證。透過指定 OU 和服務登入資料,您可以避免衝突的許可,並遵循最低權限原則。

在您的 AD 中建立 OU
  1. 以網域管理員身分連線至您的 AD 網域。

  2. 開啟 Active Directory 使用者和電腦,然後選取您要在其中建立 OU 的網域。

  3. 開啟網域的內容選單,選擇新增,然後選擇組織單位

  4. 輸入 OU 的名稱。

  5. 保持選取保護容器免遭意外刪除的方塊。

  6. 選擇確定。您的新 OU 會出現在您的網域下方。

步驟 2:在您的 AD 中建立 AD 網域服務帳戶

使用網域服務帳戶登入資料做為 Secrets Manager 中的 AWS 秘密。

在您的 AD 中建立 AD 網域服務帳戶
  1. 開啟 Active Directory 使用者和電腦,然後選取您要在其中建立使用者的網域。

  2. 開啟使用者的內容選單,選擇新增,然後選擇使用者

  3. 輸入使用者的名字、姓氏和登入名稱。選擇下一步

  4. 輸入使用者的密碼。不要選取 使用者必須在下次登入時變更密碼。不選取帳戶已停用。選擇下一步

  5. 選擇確定。您的新使用者會出現在您的網域下。

步驟 3:將控制權委派給 AD 網域服務帳戶

A 部分:使用 控制委派精靈委派許可

將控制權委派給網域中的 AD 網域服務帳戶
  1. 開啟 Active Directory 使用者和電腦 Microsoft 管理主控台 (MMC) Snap-in,然後選取您要建立使用者的網域。

  2. 開啟您先前建立之 OU 的內容選單,然後選擇委派控制

  3. 控制委派精靈上,選擇下一步

  4. 使用者或群組區段中,選擇新增

  5. 選取使用者、電腦或群組區段中,輸入您建立的 AD 網域服務帳戶,然後選擇檢查名稱。如果您的 AD 網域服務帳戶檢查成功,請選擇確定

  6. 使用者或群組區段中,確認您的 AD 網域服務帳戶已新增,然後選擇下一步

  7. 要委派的任務區段中,選擇建立要委派的自訂任務,然後選擇下一步

  8. Active Directory 物件類型區段上:

    1. 選擇僅限資料夾中的下列物件

    2. 選取使用者物件

    3. 選取在此資料夾中建立選取的物件

    4. 選取刪除此資料夾中選取的物件,然後選擇下一步

  9. 許可區段上:

    1. 保持選取一般

    2. 選取屬性特定

    3. 選取建立/刪除特定子物件

    4. 選取重設密碼

    5. 選取讀取 msDS-SupportedEncryptionTypes

    6. 選取寫入 msDS-SupportedEncryptionTypes

  10. 若要完成控制委派精靈,請檢閱並確認您的設定,然後選擇完成

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 金鑰
  1. 在 https://https://console.aws.amazon.com/kms/ 開啟 AWS KMS 主控台。選擇建立金鑰

  2. 對於金鑰類型,選擇對稱

  3. 對於金鑰用途,選擇加密和解密

  4. 針對 Advanced options (進階選項)

    1. 對於金鑰材料來源,選擇 KMS

    2. 針對區域性,選擇單一區域金鑰,然後選擇下一步

  5. 對於別名,提供 KMS 金鑰的名稱。

  6. (選用) 對於描述,提供 KMS 金鑰的描述。

  7. (選用) 對於標籤,提供 KMS 金鑰的標籤,然後選擇下一步

  8. 對於金鑰管理員,提供 IAM 使用者的名稱,然後選取該名稱。

  9. 針對金鑰刪除,請保留選取允許金鑰管理員刪除此金鑰的方塊,然後選擇下一步

  10. 對於金鑰使用者,提供上一個步驟中相同的 IAM 使用者,然後選取該使用者。選擇下一步

  11. 檢閱組態。

  12. 對於金鑰政策,在政策聲明中包含下列內容:

    { "Sid": "Allow use of the KMS key on behalf of RDS", "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "kms:Decrypt", "Resource": "*" }
  13. 選擇完成

步驟 5:建立 AWS 秘密

注意

請務必在包含您要加入自我管理 AD 的 RDS for Db2 資料庫執行個體的相同 AWS 帳戶中建立秘密。

若要建立機密
  1. 在 https://https://console.aws.amazon.com/secretsmanager/ 開啟 AWS Secrets Manager 主控台。選擇存放新的機密

  2. 針對機密類型,選擇其他類型的機密

  3. 對於金鑰/值對,新增兩個金鑰:

    1. 對於第一個金鑰,輸入 SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME

    2. 對於第一個金鑰的值,僅輸入 AD 使用者的使用者名稱 (不含網域字首)。請勿包含網域名稱,因為這會導致執行個體建立失敗。

    3. 對於第二個金鑰,輸入 SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD

    4. 對於第二個金鑰的值,輸入您在網域上為 AD 使用者建立的密碼。

  4. 針對加密金鑰,輸入您在上一個步驟中建立的 KMS 金鑰,然後選擇下一步

  5. 對於秘密名稱,輸入可協助您稍後尋找密碼的描述性名稱。

  6. (選用) 對於描述,輸入秘密名稱的描述。

  7. 針對資源許可,選擇編輯

  8. 請將下列政策新增至許可政策:

    注意

    建議您使用政策中的 aws:sourceAccountaws: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:*" } } } ] }
  9. 選擇儲存,然後選擇下一步

  10. 對於設定輪換設定,保留預設值並選擇下一步

  11. 檢閱秘密的設定,然後選擇儲存

  12. 選擇您建立的秘密,然後複製秘密 ARN 的值。在下一個步驟中使用此值來設定自我管理 Active Directory。

步驟 6:建立或修改 Db2 資料庫執行個體

您可以使用 AWS CLI 將 RDS for Db2 資料庫執行個體與自我管理 AD 網域建立關聯。您可採用下列其中一種方式來這麼做:

當您使用 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-identifier my-DB-instance \ --db-instance-class db.m6i.large \ --allocated-storage 50 \ --engine db2-se \ --engine-version 11.5 \ --master-username my-master-username \ --master-user-password my-master-password \ --domain-fqdn my_AD_domain.my_AD.my_domain \ --domain-ou OU=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-identifier my-DB-instance ^ --db-instance-class db.m6i.large ^ --allocated-storage 50 ^ --engine db2-se ^ --engine-version 11.5 ^ --master-username my-master-username ^ --master-user-password my-master-password ^ --domain-fqdn my_AD_domain.my_AD.my_domain ^ --domain-ou OU=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"