本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Kerberos Amazon RDS for Db2 資料庫執行個體的身分驗證
您可以使用 AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) 來設定 Kerberos 適用於 Db2 資料庫執行個體RDS的 身分驗證。設定 Kerberos 身分驗證,請遵循下列步驟:
主題
步驟 1:使用 建立目錄 AWS Managed Microsoft AD
AWS Directory Service 會建立完全受管 Active Directory 在 中 AWS 雲端。當您建立 AWS Managed Microsoft AD 目錄時, 會為您 AWS Directory Service 建立兩個網域控制站和DNS伺服器。目錄伺服器是在 中的不同子網路中建立VPC。此備援可協助確保即使失敗,仍能存取您的目錄。
當您建立 AWS Managed Microsoft AD 目錄時, 會代表您 AWS Directory Service 執行下列任務:
-
設定 Active Directory 在您的 中VPC。
-
建立含有使用者名稱
Admin
與指定密碼的目錄管理員帳戶。您可以使用此帳戶來管理目錄。重要
請務必儲存此密碼。 AWS Directory Service 不會儲存此密碼,且無法擷取或重設。
-
建立目錄控制器的安全群組。安全群組必須允許與 Db2 資料庫執行個體RDS的 通訊。
當您啟動 時 AWS Directory Service for Microsoft Active Directory, 會 AWS 建立組織單位 (OU),其中包含目錄的所有物件。此 OU 具有您在建立目錄時輸入的 NetBIOS 名稱,位於網域根中。網域根由 擁有和管理 AWS。
使用 AWS Managed Microsoft AD 目錄建立Admin
的帳戶具有 OU 最常見管理活動的許可:
-
建立、更新或刪除使用者。
-
將資源新增至您的網域,例如檔案或列印伺服器,然後將這些資源的許可指派給 OU 中的使用者。
-
建立其他 OUs和 容器。
-
委派授權。
-
從 還原已刪除的物件 Active Directory 回收筒。
-
執行 Active Directory 的 和網域名稱服務 (DNS) 模組 Windows PowerShell 在 上 AWS Directory Service。
Admin
帳戶也有權執行下列全網域活動:
-
管理DNS組態 (新增、移除或更新記錄、區域和轉送器)。
-
檢視DNS事件日誌。
-
檢視安全事件日誌。
若要使用 建立目錄 AWS Managed Microsoft AD
登入 AWS Management Console 並在 開啟 AWS Directory Service 主控台https://console.aws.amazon.com/directoryservicev2/
。 -
選擇設定目錄 。
-
選擇 AWS Managed Microsoft AD。 AWS Managed Microsoft AD 是目前唯一支援與 Amazon 搭配使用的選項RDS。
-
選擇 Next (下一步)。
-
在 Enter directory information (輸入目錄資訊) 頁面上,提供下列資訊:
-
版本 – 選擇符合您需求的版本。
-
目錄DNS名稱 – 目錄的完整名稱,例如
corp.example.com
。 -
Directory NetBIOS name – 目錄的選用短名稱,例如
CORP
。 -
目錄描述 – 目錄的選用描述。
-
管理員密碼 – 目錄管理員的密碼。目錄建立程序會使用使用者名稱
Admin
和此密碼建立管理員帳戶。目錄管理員密碼不得包含 "admin" 字組。密碼區分大小寫,長度須為 8 至 64 個字元。至少須有一位字元屬於以下四種類型中的三類:
-
小寫字母 (a–z)
-
大寫字母 (A–Z)
-
數字 (0–9)
-
非英數字元 (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)
-
確認密碼 – 重新輸入管理員密碼。
重要
請確定您儲存此密碼。 AWS Directory Service 不會儲存此密碼,且無法擷取或重設。
-
-
-
選擇 Next (下一步)。
-
在選擇VPC和子網路頁面上,提供下列資訊:
-
VPC – VPC 為目錄選擇 。您可以在相同的 VPC或不同的 中建立 RDS Db2 資料庫執行個體的 VPC。
-
子網路 – 選擇目錄伺服器的子網路。這兩個子網路必須位於不同的可用區域。
-
-
選擇 Next (下一步)。
-
檢閱目錄資訊。如果需要變更,請選擇 Previous (上一步),然後進行變更。若資訊無誤,請選擇 Create directory (建立目錄)。
建立目錄需要幾分鐘的時間。成功建立時,Status (狀態) 值會變更為 Active (作用中)。
若要查看目錄的相關資訊,請在目錄 ID 下選擇目錄 ID。請記下 Directory ID (目錄 ID) 值,當您建立或修改RDS適用於 Db2 資料庫執行個體的 時,您需要此值。

步驟 2:為 Amazon 建立IAM角色RDS以存取 AWS Directory Service
若要RDS讓 Amazon AWS Directory Service 為您呼叫 ,您需要使用 受管IAM政策 AWS 帳戶 IAM的角色AmazonRDSDirectoryServiceAccess
。此角色允許 Amazon RDS呼叫 AWS Directory Service。
當您使用 建立資料庫執行個體, AWS Management Console 且主控台使用者帳戶具有 iam:CreateRole
許可時,主控台會自動建立所需的IAM角色。在此情況下,角色名稱為 rds-directoryservice-kerberos-access-role
。否則,您必須手動建立IAM角色。當您建立此IAM角色時,請選擇 Directory Service
,並將 AWS 受管政策連接至AmazonRDSDirectoryServiceAccess
該角色。
如需為 服務建立IAM角色的詳細資訊,請參閱 IAM 使用者指南 中的建立角色以將許可委派給 AWS 服務。
注意
用於 IAM的角色 Windows RDS 的 身分驗證 Microsoft SQL Server 無法RDS用於 Db2。
作為使用 AmazonRDSDirectoryServiceAccess
受管政策的替代方案,您可以建立具有必要許可的政策。在此情況下,IAM角色必須具有下列IAM信任政策:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
角色也必須具有下列IAM角色政策:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }
步驟 3:建立和設定使用者
您可以使用 建立使用者 Active Directory Users and Computers 工具。這是 Active Directory Domain Services 以及 Active Directory Lightweight Directory Services 工具。如需詳細資訊,請參閱將使用者和電腦新增至 Active Directory 中的網域
若要在 AWS Directory Service 目錄中建立使用者,您必須連線至 Windows為 AWS Directory Service 目錄成員的 Amazon EC2執行個體。同時,您必須以具有建立使用者權限的使用者身分登入。如需詳細資訊,請參閱《AWS Directory Service 管理指南》中的建立使用者。
步驟 4:在 中建立 Db2 管理員群組RDS的 AWS Managed Microsoft AD
RDS for Db2 不支援 Kerberos 主要使用者或兩個 Amazon RDS預留使用者 rdsdb
和 的身分驗證rdsadmin
。相反地,您需要建立masterdba
名為 的新群組 AWS Managed Microsoft AD。如需詳細資訊,請參閱在 中建立群組帳戶 Active Directory
在您啟用 之後 Kerberos 身分驗證,主要使用者會失去masterdba
角色。因此,除非您停用,否則主要使用者將無法存取執行個體本機使用者群組成員資格 Kerberos 身分驗證。若要繼續搭配密碼登入使用主要使用者,請在 AWS Managed Microsoft AD 上建立名稱與主要使用者相同的使用者。然後,將該使用者新增至群組 masterdba
。
步驟 5:建立或修改RDS適用於 Db2 資料庫執行個體的
建立或修改 RDS for Db2 資料庫執行個體,以搭配您的目錄使用。您可以使用 AWS Management Console、 AWS CLI或 RDSAPI將資料庫執行個體與目錄建立關聯。您可採用下列其中一種方式來這麼做:
-
使用主控台建立新的 RDS Db2 資料庫執行個體, create-db-instance 命令,或 CreateDBInstance API 操作。如需說明,請參閱 建立 Amazon RDS 資料庫執行個體。
-
使用主控台修改 RDS Db2 資料庫執行個體的現有 , modify-db-instance 命令,或 ModifyDBInstance API操作。如需說明,請參閱 修改 Amazon RDS 資料庫執行個體。
-
使用主控台從資料庫快照還原RDS適用於 Db2 資料庫執行個體的 , restore-db-instance-from-db-snapshot 命令,或 RestoreDBInstanceFromDBSnapshot API 操作。如需說明,請參閱 還原至資料庫執行個體。
-
使用主控台將 RDS for Db2 資料庫執行個體的 還原至 point-in-time, restore-db-instance-to-point-in-time 命令,或 RestoreDBInstanceToPointInTime API 操作。如需說明,請參閱 將資料庫執行個體還原至 Amazon RDS 的指定時間。
Kerberos 僅支援 中 RDS Db2 資料庫執行個體的身分驗證VPC。資料庫執行個體可與目錄VPC位於相同 ,或位於不同的 。 VPC資料庫執行個體必須使用允許目錄 內輸入和輸出的安全群組,VPC以便資料庫執行個體可以與目錄通訊。
當您使用主控台建立、修改或還原資料庫執行個體時,請選擇密碼和 Kerberos 資料庫身分驗證區段中的身分驗證。 然後選擇 Browse Directory (瀏覽目錄)。選取目錄,或選擇建立目錄以使用目錄服務。

使用 時 AWS CLI,資料庫執行個體需要下列參數,才能使用您建立的目錄:
-
對於
--domain
參數,請使用建立目錄時產生的網域識別符 ("d-*
" 識別符)。 -
針對
--domain-iam-role-name
參數,請使用您建立的 角色,該角色使用 受管IAM政策AmazonRDSDirectoryServiceAccess
。
下列範例會修改資料庫執行個體以使用目錄。將範例中的下列預留位置取代為您自己的值:
-
db_instance_name
– RDS適用於 Db2 資料庫執行個體的 名稱。 -
directory_id
– 您建立之 AWS Directory Service for Microsoft Active Directory 目錄的 ID。 -
role_name
– IAM您建立的角色名稱。
aws rds modify-db-instance --db-instance-identifier
db_instance_name
--domain d-directory_id
--domain-iam-role-namerole_name
重要
如果您修改資料庫執行個體以啟用 Kerberos 身分驗證,請在進行變更後重新啟動資料庫執行個體。
步驟 6:設定 Db2 用戶端
若要設定 Db2 用戶端
-
建立 /etc/krb5.conf 檔案 (或同等檔案) 以指向網域。
注意
對於 Windows 作業系統,建立 C:\windows\krb5.ini 檔案。
-
確認流量可以在用戶端主機和 之間流動 AWS Directory Service。使用網路公用程式,例如 Netcat 針對下列任務:
-
驗證連接埠 53 DNS的流量。
-
確認連接埠 53 和 的流量是否超過 TCP/UDP Kerberos,其中包含 的連接埠 88 和 464 AWS Directory Service。
-
-
確定流量可透過資料庫連接埠在用戶端主機和資料庫執行個體之間往來。您可以使用 命令
db2
來連接和存取資料庫。
下列範例是 的 /etc/krb5.conf 檔案內容 AWS Managed Microsoft AD:
[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM