

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

# 使用信任的內容來保護和簡化 AWS 上 Db2 聯合資料庫中的使用者存取
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts"></a>

*Sai Parthasaradhi，Amazon Web Services*

## 總結
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-summary"></a>

許多公司正在將舊版大型主機工作負載遷移至 Amazon Web Services (AWS)。此遷移包括將 z/OS 資料庫的 IBM Db2 轉移至 Amazon Elastic Compute Cloud (Amazon EC2) 上的適用於 Linux、Unix 和 Windows (LUW) 的 Db2。Amazon EC2 從現場部署到 AWS 的分階段遷移期間，使用者可能需要存取 Amazon EC2 上的 IBM Db2 z/OS 和 Db2 LUW 中的資料，直到所有應用程式和資料庫完全遷移至 Db2 LUW。在這種遠端資料存取案例中，使用者身分驗證可能具有挑戰性，因為不同的平台使用不同的身分驗證機制。

此模式涵蓋如何在 Db2 for LUW 上設定聯合伺服器，並將 Db2 for z/OS 設定為遠端資料庫。模式使用信任的內容，將使用者的身分從 Db2 LUW 傳播到 Db2 z/OS，而無需在遠端資料庫上重新驗證。如需受信任內容的詳細資訊，請參閱[其他資訊](#secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional)一節。

## 先決條件和限制
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-prereqs"></a>

**先決條件**
+ 作用中的 AWS 帳戶
+ 在 Amazon EC2 執行個體上執行的 Db2 執行個體 Amazon EC2 
+ 在內部部署執行之 z/OS 資料庫的遠端 Db2 
+ 透過 AWS [ Site-to-Site VPN 或 AWS](https://aws.amazon.com/vpn/) [Direct Connect 連線至 AWS](https://aws.amazon.com/directconnect/) 的內部部署網路

## Architecture
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-architecture"></a>

**目標架構**

![\[內部部署大型主機透過內部部署 Db2 伺服器和 VPN 連接到 EC2 上的 Db2 資料庫。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/9e04f0fe-bae2-412a-93ac-83da50222017/images/0a384695-7907-4fb8-bb7e-d170dcc114af.png)


## 工具
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-tools"></a>

**AWS 服務**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) 在 AWS 雲端中提供可擴展的運算容量。您可以視需要啟動任意數量的虛擬伺服器，，並快速進行擴展或縮減。
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) 可協助您在 AWS 上啟動的執行個體與您自己的遠端網路之間傳遞流量。

**其他工具**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) 是 Db2 互動式命令列界面 (CLI) 命令。

## 史詩
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-epics"></a>

### 在 AWS 上執行的 Db2 LUW 資料庫上啟用聯合
<a name="enable-federation-on-the-db2-luw-database-running-on-aws"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 在 DB2 LUW 資料庫上啟用聯合。 | 若要在 DB2 LUW 上啟用聯合，請執行下列命令。<pre>update dbm cfg using federated YES</pre> | DBA | 
| 重新啟動資料庫。 | 若要重新啟動資料庫，請執行下列命令。<pre>db2stop force;<br />db2start;</pre> | DBA | 

### 為遠端資料庫編製目錄
<a name="catalog-the-remote-database"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 為遠端 Db2 z/OS 子系統編製目錄。 | 若要在 AWS 上執行的 Db2 LUW 上為遠端 Db2 z/OS 資料庫編製目錄，請使用下列範例命令。 Db2 <pre>catalog TCPIP NODE tcpnode REMOTE mainframehost SERVER mainframeport</pre> | DBA | 
| 為遠端資料庫編製目錄。 | 若要為遠端資料庫編製目錄，請使用下列範例命令。<pre>catalog db dbnam1 as ndbnam1 at node tcpnode</pre> | DBA | 

### 建立遠端伺服器定義
<a name="create-the-remote-server-definition"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 收集遠端 Db2 z/OS 資料庫的使用者憑證。 | 在繼續後續步驟之前，請收集下列資訊：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.html) | DBA | 
| 建立 DRDA 包裝函式。 | 若要建立 DRDA 包裝函式，請執行下列命令。<pre>CREATE WRAPPER DRDA;</pre> | DBA | 
| 建立伺服器定義。 | 若要建立伺服器定義，請執行下列範例命令。<pre>CREATE SERVER ndbserver<br />TYPE DB2/ZOS VERSION 12<br />WRAPPER DRDA<br />AUTHORIZATION "dbuser1" PASSWORD "dbpasswd" OPTIONS ( DBNAME 'ndbnam1',FED_PROXY_USER 'ZPROXY' );</pre>在此定義中， `FED_PROXY_USER` 指定將用於建立 Db2 z/OS 資料庫信任連線的代理使用者。只有在 Db2 LUW 資料庫中建立遠端伺服器物件時，才需要授權使用者 ID 和密碼。它們稍後不會在執行時間使用。 | DBA | 

### 建立使用者映射
<a name="create-user-mappings"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 為代理使用者建立使用者映射。 | 若要為代理使用者建立使用者映射，請執行下列命令。<pre>CREATE USER MAPPING FOR ZPROXY SERVER ndbserver OPTIONS (REMOTE_AUTHID 'ZPROXY', REMOTE_PASSWORD 'zproxy');</pre> | DBA | 
| 在 Db2 LUW 上為每個使用者建立使用者映射。 | 為 AWS 上需要透過代理使用者存取遠端資料的 Db2 LUW 資料庫上的所有使用者建立使用者映射。若要建立使用者映射，請執行下列命令。<pre>CREATE USER MAPPING FOR PERSON1 SERVER ndbserver OPTIONS (REMOTE_AUTHID 'USERZID', USE_TRUSTED_CONTEXT 'Y');</pre>陳述式指定 Db2 LUW (`PERSON1`) 上的使用者可以建立與遠端 Db2 z/OS 資料庫 () 的信任連線`USE_TRUSTED_CONTEXT 'Y'`。透過代理使用者建立連線後，使用者可以使用 Db2 z/OS 使用者 ID () 存取資料`REMOTE_AUTHID 'USERZID'`。 | DBA | 

### 建立信任的內容物件
<a name="create-the-trusted-context-object"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立信任的內容物件。 | 若要在遠端 Db2 z/OS 資料庫上建立信任的內容物件，請使用下列範例命令。<pre>CREATE TRUSTED CONTEXT CTX_LUW_ZOS<br />BASED UPON CONNECTION USING SYSTEM AUTHID ZPROXY<br />ATTRIBUTES (<br />ADDRESS '10.10.10.10'<br />)<br />NO DEFAULT ROLE<br />ENABLE<br />WITH USE FOR PUBLIC WITHOUT AUTHENTICATION;</pre>在此定義中， `CTX_LUW_ZOS`是受信任內容物件的任意名稱。物件包含代理使用者 ID，以及信任連線必須源自的伺服器 IP 地址。在此範例中，AWS 上的 Db2 LUW 資料庫伺服器。您可以使用網域名稱，而不是 IP 地址。子句`WITH USE FOR PUBLIC WITHOUT AUTHENTICATION`指出每個使用者 ID 允許在信任的連線上切換使用者 ID。不需要提供密碼。 | DBA | 

## 相關資源
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-resources"></a>
+ [IBM 資源存取控制設施 (RACF)](https://www.ibm.com/products/resource-access-control-facility)
+ [IBM Db2 LUW 聯合](https://www.ibm.com/docs/en/db2/11.5?topic=federation)
+ [信任的內容](https://www.ibm.com/docs/en/db2-for-zos/13?topic=contexts-trusted)

## 其他資訊
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional"></a>

**Db2 信任的內容**

受信任內容是 Db2 資料庫物件，可定義聯合伺服器與遠端資料庫伺服器之間的信任關係。若要定義信任關係，信任的內容會指定信任屬性。信任屬性有三種類型：
+ 發出初始資料庫連線請求的系統授權 ID
+ 進行連線的 IP 地址或網域名稱
+ 資料庫伺服器與資料庫用戶端之間資料通訊的加密設定

當連線請求的所有屬性符合伺服器上定義之任何信任內容物件中指定的屬性時，就會建立信任的連線。信任的連線有兩種類型：隱含和明確。建立隱含信任的連線後，使用者會繼承在該信任的連線定義範圍外無法使用的角色。建立明確信任的連線後，使用者可以在相同實體連線上開啟，無論是否進行身分驗證。此外，可以授予 Db2 使用者角色，這些角色會指定只能在信任連線內使用的權限。此模式使用明確的信任連線。

*此模式中的信任內容*

模式完成後，Db2 LUW 上的 PERSON1 會使用聯合信任內容從 Db2 z/OS 存取遠端資料。如果連線源自於信任內容定義中指定的 IP 地址或網域名稱，則會透過代理使用者建立 PERSON1 的連線。建立連線後，會切換 PERSON1 的對應 Db2 z/OS 使用者 ID，無需重新驗證，而且使用者可以根據為該使用者設定的 Db2 權限來存取資料或物件。

*聯合信任內容的優點*
+ 此方法透過消除使用一般使用者 ID 或應用程式 ID 來維護最低權限原則，這些 ID 需要所有使用者所需權限的超集。
+ 對聯合資料庫和遠端資料庫執行交易的使用者的真實身分始終是已知的，並且可以進行稽核。
+ 效能提升，因為實體連線會在使用者之間重複使用，而不需要重新驗證聯合伺服器。