使用受信任的內容,在 AWS 上的 Db2 聯合資料庫中保護和簡化使用者存取 - AWS 方案指引

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

使用受信任的內容,在 AWS 上的 Db2 聯合資料庫中保護和簡化使用者存取

創建者:西帕薩拉迪(AWS)

環境:PoC 或試點

技術:資料庫;安全性、身分識別、合規性

工作負載:IBM

AWS 服務:Amazon EC2

Summary

許多公司正在將其舊式大型主機工作負載遷移到亞馬遜網路服務 (AWS)。這項遷移包括在 Amazon 彈性運算雲端 (亞馬遜 EC2) 上將 IBM Db2 (適用於 z/OS) 資料庫轉移到適用於 Linux、Unix 和視窗 (LUW) 的 Db2。在從現場部署到 AWS 的階段遷移期間,使用者可能需要存取 IBM Db2 z/OS 和 Amazon EC2 上 Db2 LUW 中的資料,直到所有應用程式和資料庫都完全遷移到 Db2 LUW 為止。在此類遠端資料存取案例中,使用者驗證可能具有挑戰性,因為不同平台使用不同的驗證機制

此模式涵蓋如何在 Db2 上為 LUW 設定同盟伺服器,並將 Db2 for z/OS 設定為遠端資料庫。此模式會使用受信任的內容,將使用者的識別碼從 Db2 LUW 傳播至 Db2 z/OS,而不需在遠端資料庫上重新驗證。如需有關信任前後關聯的詳細資訊,請參閱其他資訊一節。

先決條件和限制

先決條件

架構

目標架構

現場部署大型主機會透過現場部署 Db2 伺服器和 AWS Site-to-Site VPN 連接至 EC2 上的 Db2 資料庫。

工具

AWS 服務

  • 亞馬遜彈性運算雲 (Amazon EC2) 在 AWS 雲端提供可擴展的運算容量。您可以視需要啟動任意數量的虛擬伺服器,,並快速進行擴展或縮減。

  • AWS Site-to-Site VPN 可協助您在 AWS 上啟動的執行個體和自己的遠端網路之間傳遞流量。

其他服務

  • db2cli 是 Db2 互動式指令列介面 (CLI) 命令。

史诗

任務描述所需技能

在 DB2 LUW 資料庫上啟用聯合。

若要在 DB2 LUW 上啟用聯合,請執行下列命令。

update dbm cfg using federated YES
DBA

重新啟動資料庫。

若要重新啟動資料庫,請執行下列命令。

db2stop force; db2start;
DBA
任務描述所需技能

編目遠端 Db2 z/OS 子系統。

若要在 AWS 上執行的 Db2 LUW 上編目遠端 Db2 z/OS 資料庫,請使用下列範例命令。

catalog TCPIP NODE tcpnode REMOTE mainframehost SERVER mainframeport
DBA

編目遠端資料庫。

若要編目遠端資料庫,請使用下列範例命令。

catalog db dbnam1 as ndbnam1 at node tcpnode
DBA
任務描述所需技能

收集遠端 Db2 z/OS 資料庫的使用者認證。

繼續執行下列步驟之前,請先收集下列資訊:

  • Db2 z/OS 子系統名稱 — 上一個步驟中 LUW 上已編目的 Db2 z/OS 名稱 (例如,) ndbnam1

  • Db2 z/OS 版本 — Db2 z/OS 子系統版本 (例如) 12

  • Db2 z/OS 使用者識別碼 — 具有 BIND 權限的使用者,只需要建立伺服器定義 (例如) dbuser1

  • Db2 z/OS 密碼 — (例如,dbuser1) 的密碼 dbpasswd

  • Db2 z/OS 代理伺服器使用者 — 代理使用者的識別碼,用來建立信任連線 (例如) zproxy

  • Db2 z/OS 代理伺服器密碼 — zproxy 使用者的密碼 (例如,) zproxy

DBA

建立 DRDA 包裝函式。

若要建立 DRDA 包裝函式,請執行下列命令。

CREATE WRAPPER DRDA;
DBA

建立伺服器定義。

若要建立伺服器定義,請執行下列範例命令。

CREATE SERVER ndbserver TYPE DB2/ZOS VERSION 12 WRAPPER DRDA AUTHORIZATION "dbuser1" PASSWORD "dbpasswd" OPTIONS ( DBNAME 'ndbnam1',FED_PROXY_USER 'ZPROXY' );

在此定義中,FED_PROXY_USER指定將用於建立與 Db2 z/OS 資料庫之信任連線的 Proxy 使用者。只有在 Db2 LUW 資料庫中建立遠端伺服器物件時,才需要授權使用者 ID 和密碼。它們將不會在以後運行時使用。

DBA
任務描述所需技能

建立代理主機使用者的使用者對應。

若要建立 Proxy 使用者的使用者對應,請執行下列命令。

CREATE USER MAPPING FOR ZPROXY SERVER ndbserver OPTIONS (REMOTE_AUTHID 'ZPROXY', REMOTE_PASSWORD 'zproxy');
DBA

在 Db2 LUW 上為每個使用者建立使用者對應。

為 AWS 上 Db2 LUW 資料庫上需要透過代理使用者存取遠端資料的所有使用者建立使用者對應。若要建立使用者對應,請執行下列命令。

CREATE USER MAPPING FOR PERSON1 SERVER ndbserver OPTIONS (REMOTE_AUTHID 'USERZID', USE_TRUSTED_CONTEXT 'Y');

此陳述式指定 Db2 LUW (PERSON1) 上的使用者可以建立與遠端 Db2 z/OS 資料庫的信任連線 ()。USE_TRUSTED_CONTEXT 'Y'透過 Proxy 使用者建立連線之後,使用者可以使用 Db2 z/OS 使用者識別碼 () REMOTE_AUTHID 'USERZID' 來存取資料。

DBA
任務描述所需技能

創建受信任的上下文對象。

若要在遠端 Db2 z/OS 資料庫上建立信任的內容物件,請使用下列範例命令。

CREATE TRUSTED CONTEXT CTX_LUW_ZOS BASED UPON CONNECTION USING SYSTEM AUTHID ZPROXY ATTRIBUTES ( ADDRESS '10.10.10.10' ) NO DEFAULT ROLE ENABLE WITH USE FOR PUBLIC WITHOUT AUTHENTICATION;

在此定義中,CTX_LUW_ZOS是受信任內容物件的任意名稱。物件包含 Proxy 使用者識別碼和受信任連線必須來源之伺服器的 IP 位址。在這個例子中,服務器是 AWS 上的 Db2 LUW 數據庫。您可以使用網域名稱而非 IP 位址。該條款WITH USE FOR PUBLIC WITHOUT AUTHENTICATION表示每個用戶 ID 都允許在受信任連接上切換用戶 ID。不需要提供密碼。

DBA

相關資源

其他資訊

Db2 信任的上下文

信任內容是 Db2 資料庫物件,可定義聯合伺服器與遠端資料庫伺服器之間的信任關係。若要定義信任關係,信任內容會指定信任屬性。信任屬性有三種類型:

  • 提出初始資料庫連線要求的系統授權 ID

  • 建立連線的 IP 位址或網域名稱

  • 資料庫伺服器與資料庫用戶端之間資料通訊的加密設定

當連線要求的所有屬性都符合在伺服器上定義之任何信任內容物件中指定的屬性時,便會建立信任連線。受信任連線有兩種類型:隱含和明確連線。建立隱含信任連線之後,使用者會繼承在該信任連線定義範圍之外無法使用的角色。建立明確的信任連線之後,使用者可以開啟相同的實體連線 (無論是否驗證)。此外,Db2 使用者可以獲得指定權限的角色,這些角色只能在受信任的連線中使用。此病毒碼使用明確的信任連線。

此模式中的信任上下文

在模式完成之後,Db2 LUW 上的 PERSON1 會使用同盟信任內容存取來自 Db2 z/OS 的遠端資料。如果連線來自信任內容定義中指定的 IP 位址或網域名稱,則 PERSON1 的連線會透過 Proxy 使用者建立。建立連線之後,PERSON1 的對應 Db2 z/OS 使用者識別碼會在不重新驗證的情況下進行切換,而使用者可以根據為該使用者設定的 Db2 權限存取資料或物件。

同盟信任內容的優點

  • 這種方法通過消除使用共同的用戶 ID 或應用程序 ID 來維護最小權限的原則,該 ID 或應用程序 ID 需要所有用戶所需的所有權限的超集合。

  • 在同盟資料庫和遠端資料庫上執行交易的使用者的真實身分永遠是已知且可以稽核的。

  • 效能提升,因為實體連線會在使用者間重複使用,而不需要聯合伺服器重新驗證。