신뢰할 수 있는 컨텍스트를 사용하여 AWS에서 Db2 페더레이션 데이터베이스의 사용자 액세스 보호 및 간소화 - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

신뢰할 수 있는 컨텍스트를 사용하여 AWS에서 Db2 페더레이션 데이터베이스의 사용자 액세스 보호 및 간소화

작성자: Sai Parthasaradhi(AWS)

환경: PoC 또는 파일럿

기술: 데이터베이스, 보안, 자격 증명, 규정 준수

워크로드: IBM

AWS 서비스: Amazon EC2

요약

많은 기업이 기존 메인프레임 워크로드를 Amazon Web Services(AWS)로 마이그레이션하고 있습니다. 이 마이그레이션에는 Amazon Elastic Compute Cloud(Amazon EC2)에서 IBM Db2 for z/OS 데이터베이스를 Db2 for Linux, Unix and Windows(LUW)로 전환하는 작업이 포함됩니다. 온프레미스에서 AWS로 단계별 마이그레이션하는 동안 사용자는 모든 애플리케이션과 데이터베이스가 Db2 LUW로 완전히 마이그레이션될 때까지 Amazon EC2의 IBM Db2 z/OS 및 Db2 LUW에 있는 데이터에 액세스해야 할 수 있습니다. 이러한 원격 데이터 액세스 시나리오에서는 플랫폼마다 다른 인증 메커니즘을 사용하기 때문에 사용자 인증이 어려울 수도 있습니다.

이 패턴은 Db2 for z/OS를 원격 데이터베이스로 사용하여 Db2 for LUW에서 페더레이션 서버를 설정하는 방법을 다룹니다. 이 패턴은 원격 데이터베이스에서 재인증하지 않고도 신뢰할 수 있는 컨텍스트를 사용하여 사용자 ID를 Db2 LUW에서 Db2 z/OS로 전파합니다. 신뢰할 수 있는 컨텍스트에 대한 자세한 내용은 추가 정보 섹션을 참조하세요.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정

  • Amazon EC2 인스턴스에서 실행되는 Db2 인스턴스

  • 온프레미스에서 실행되는 원격 Db2 for z/OS 데이터베이스

  • AWS Site-to-Site VPN 또는 AWS Direct Connect를 통해 AWS에 연결된 온프레미스 네트워크

아키텍처

대상 아키텍처

온프레미스 메인프레임은 온프레미스 Db2 서버 및 AWS Site-to-Site VPN을 통해 EC2의 Db2 DB에 연결됩니다.

도구

서비스

  • Amazon Elastic Compute Cloud(Amazon EC2)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. 필요한 만큼 가상 서버를 시작하고 빠르게 스케일 업하거나 스케일 다운할 수 있습니다.

  • AWS Site-to-Site VPN을 사용하면 AWS에서 시작하는 인스턴스와 자체 원격 네트워크 간에 트래픽을 전달할 수 있습니다.

기타 서비스

  • db2cli는 Db2 대화형 명령줄 인터페이스(CLI) 명령입니다.

에픽

작업설명필요한 기술

DB2 LUW DB에서 페더레이션을 활성화합니다.

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 사용자 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 데이터베이스에 대한 신뢰할 수 있는 연결을 설정하는 데 사용할 프록시 사용자를 지정합니다. 인증 사용자 ID와 암호는 Db2 LUW 데이터베이스에서 원격 서버 객체를 생성하는 데에만 필요합니다. 나중에 런타임 중에는 사용되지 않습니다.

DBA
작업설명필요한 기술

프록시 사용자를 위한 사용자 매핑을 생성합니다.

프록시 사용자를 위한 사용자 매핑을 생성하려면 다음 명령을 실행합니다.

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')에 신뢰할 수 있는 연결을 설정할 수 있음을 지정합니다. 프록시 사용자를 통해 연결이 설정되면 사용자는 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 주소가 포함됩니다. 이 예에서는 서버가 AWS의 Db2 LUW 데이터베이스입니다. IP 주소 대신 도메인 이름을 사용할 수 있습니다. WITH USE FOR PUBLIC WITHOUT AUTHENTICATION 절은 모든 사용자 ID에 대해 신뢰할 수 있는 연결에서 사용자 ID를 전환할 수 있음을 나타냅니다. 암호는 제공할 필요가 없습니다.

DBA

관련 리소스

추가 정보

Db2 신뢰할 수 있는 컨텍스트

신뢰할 수 있는 컨텍스트는 페더레이션된 서버와 원격 데이터베이스 서버 간의 신뢰 관계를 정의하는 Db2 데이터베이스 객체입니다. 신뢰할 수 있는 관계를 정의하기 위해 신뢰할 수 있는 컨텍스트는 신뢰 속성을 지정합니다. 신뢰 속성에는 다음 세 가지 유형이 있습니다.

  • 초기 데이터베이스 연결 요청을 수행하는 시스템 인증 ID

  • 연결이 이루어진 IP 주소 또는 도메인 이름

  • 데이터베이스 서버와 데이터베이스 클라이언트 간의 데이터 통신을 위한 암호화 설정

연결 요청의 모든 속성이 서버에 정의된 신뢰할 수 있는 컨텍스트 객체에 지정된 속성과 일치할 때 신뢰할 수 있는 연결이 설정됩니다. 신뢰할 수 있는 연결에는 암시적 연결과 명시적 연결의 두 가지 유형이 있습니다. 암시적으로 신뢰할 수 있는 연결이 설정되면 사용자는 해당 신뢰할 수 있는 연결 정의의 범위 밖에서 사용할 수 없는 역할을 상속받습니다. 명시적으로 신뢰할 수 있는 연결이 설정되면 인증을 사용하거나 사용하지 않고 사용자를 동일한 물리적 연결로 전환할 수 있습니다. 또한 신뢰할 수 있는 연결 내에서만 사용할 수 있는 권한을 지정하는 역할을 Db2 사용자에게 부여할 수 있습니다. 이 패턴은 명시적으로 신뢰할 수 있는 연결을 사용합니다.

이 패턴의 신뢰할 수 있는 컨텍스트

패턴이 완료되면 Db2 LUW의 PERSON1은 페더레이션된 신뢰할 수 있는 컨텍스트를 사용하여 Db2 z/OS의 원격 데이터에 액세스합니다. PERSON1의 연결이 신뢰할 수 있는 컨텍스트 정의에 지정된 IP 주소 또는 도메인 이름에서 시작된 경우 연결은 프록시 사용자를 통해 설정됩니다. 연결이 설정되면 PERSON1의 해당 Db2 z/OS 사용자 ID는 재인증 없이 전환되며 사용자는 해당 사용자에 대해 설정된 Db2 권한에 따라 데이터 또는 객체에 액세스할 수 있습니다.

페더레이션된 신뢰할 수 있는 컨텍스트의 이점

  • 이 접근 방식은 모든 사용자에게 필요한 모든 권한의 상위 집합이 필요한 공통 사용자 ID나 애플리케이션 ID를 사용하지 않으므로 최소 권한 원칙을 유지합니다.

  • 페더레이션된 데이터베이스와 원격 데이터베이스 모두에서 트랜잭션을 수행하는 사용자의 실제 ID는 항상 알려져 있으며 감사할 수 있습니다.

  • 페더레이션된 서버를 재인증할 필요 없이 사용자 간에 물리적 연결이 재사용되므로 성능이 향상됩니다.