使用可信上下文保护和简化用户在 Db2 联合数据库中的访问权限 AWS - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用可信上下文保护和简化用户在 Db2 联合数据库中的访问权限 AWS

由 Sai Parthasaradhi 创作 () AWS

环境:PoC 或试点

技术:数据库;安全、身份、合规性

工作量:IBM

AWS服务:亚马逊 EC2

Summary

许多公司正在将其传统的大型机工作负载迁移到 Amazon Web Services (AWS)。此次迁移包括将适用于 z/OS 数据库的 IBM Db2 转移到亚马逊弹性计算云(亚马逊)LUW上适用于 Linux、Unix 和 Windows 的 Db2 ()。EC2在从本地到本地的分阶段迁移过程中AWS,用户可能需要访问 IBM Db2 z/OS 和 A EC2 mazon LUW 上的 Db2 中的数据,直到所有应用程序和数据库都完全迁移到 Db2。LUW鉴于不同平台使用不同身份验证机制,故在该远程数据访问场景中进行用户身份验证可能具有挑战性。

此模式介绍如何在 Db2 上设置联合服务器,将 db2 f LUW or z/OS 作为远程数据库。该模式使用可信上下文将用户的身份从 Db2 传播到 Db2 z/OSLUW,而无需在远程数据库上重新进行身份验证。有关可信上下文的更多信息,请参阅其他信息部分。

先决条件和限制

先决条件

架构

目标架构

本地大型机通过本地 Db2 服务器连接并连接VPN到 Db2 数据库。EC2

工具

AWS服务

其他服务

  • db2cli 是 Db2 交互式命令行界面 () CLI 命令。

操作说明

任务描述所需技能

在DB2LUW数据库上启用联合。

要启用联合 DB2LUW,请运行以下命令。

update dbm cfg using federated YES
DBA

重新启动数据库。

若要重新启动数据库,请运行以下命令。

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

对远程 Db2 z/OS 子系统编目。

要对LUW正在运行的 Db2 上的远程 Db2 z/OS 数据库进行编目AWS,请使用以下示例命令。

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 用户 ID — 具有BIND权限的用户,仅创建服务器定义需要该权限(例如,)dbuser1

  • Db2 z/OS 密码 – dbuser1 的密码(例如dbpasswd

  • Db2 z/OS 代理用户 – 代理用户的 ID,用于建立可信连接(例如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 数据库的可信连接的代理用户。只有在 Db2 LUW 数据库中创建远程服务器对象时才需要授权用户 ID 和密码。将来不用于运行时。

DBA
任务描述所需技能

为代理用户创建用户映射。

若要创建代理用户的用户映射,请运行以下命令。

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

在 Db2 LUW 上为每个用户创建用户映射。

为 Db2 LUW 数据库上所有需要通过代理用户访问远程数据的AWS用户创建用户映射。若要创建用户组映射,请运行以下命令。

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'通过代理用户建立连接后,用户可以使用 Db2 z/OS 用户 ID (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 是可信上下文对象的任意名称。该对象包含代理用户 ID 以及可信连接的必需服务器的 IP 地址。在此示例中,Db2 LUW 数据库所在的服务器。AWS您可以使用域名,而不是 IP 地址。该子句 WITH USE FOR PUBLIC WITHOUT AUTHENTICATION 表示允许在可信连接上切换每个用户 ID。不需要提供密码。

DBA

相关资源

其他信息

Db2 可信上下文

可信上下文是定义了联合服务器和远程数据库服务器的信任关系的 Db2 数据库对象。若要定义信任关系,则利用可信上下文指定信任属性。有三类可信属性:

  • 发出初始数据库连接请求的系统授权 ID

  • 建立连接的 IP 地址或域名

  • 数据库服务器和数据库客户端之间的数据通信加密设置

当连接请求的所有属性都与服务器上定义的任何可信上下文对象中指定的属性匹配时,就会建立可信连接。有两类可信连接:隐式连接与显式连接。建立隐式可信连接后,用户将继承在该可信连接定义范围之外无法使用的角色。建立显式可信连接后,无论是否进行身份验证,都可在同一个物理连接上切换用户。此外,可向 Db2 用户授予用于指定仅限可信连接使用的权限的角色。此模式使用了显式可信连接。

此模式下的可信上下文

模式完成后,PERSON1在 Db2 上使用联合LUW可信上下文访问来自 Db2 z/OS 的远程数据。如果连接来自PERSON1可信上下文定义中指定的 IP 地址或域名,则通过代理用户建立连接。建立连接后,无需重新进行身份验证即可切换相应PERSON1的 Db2 z/OS 用户 ID,并且用户可以根据为该用户设置的 Db2 权限访问数据或对象。

联合可信上下文的优势

  • 此方法坚持了最低权限原则,避免了通用用户 ID 或应用程序 ID 获取所有用户所需权限的超集。

  • 在联合身份验证数据库和远程数据库执行事务的用户的真实身份始终为已知并可予以审计。

  • 性能得到提高,因为用户之间可以重复使用物理连接,无需联合服务器重新进行身份验证。