

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

# 신뢰할 수 있는 컨텍스트를 사용하여 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)로 마이그레이션하고 있습니다. 이 마이그레이션에는 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로 전파합니다. 신뢰할 수 있는 컨텍스트에 대한 자세한 내용은 [추가 정보](#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 인스턴스
+ 온프레미스에서 실행되는 원격 Db2 for z/OS 데이터베이스
+ [AWS Site-to-Site VPN](https://aws.amazon.com/vpn/) 또는 [AWS Direct Connect](https://aws.amazon.com/directconnect/)를 통해 AWS에 연결된 온프레미스 네트워크

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

**대상 아키텍처**

![온프레미스 메인프레임은 온프레미스 Db2 서버 및 VPN을 통해 EC2의 Db2 DB에 연결됩니다.](http://docs.aws.amazon.com/ko_kr/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>

**서비스**
+ [Amazon Elastic Compute Cloud(Amazon EC2)](https://docs.aws.amazon.com/ec2/)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. 필요한 만큼 가상 서버를 시작하고 빠르게 스케일 업하거나 스케일 다운할 수 있습니다.
+ [Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)을 사용하면 인스턴스와 자체 원격 네트워크 간에 트래픽을 전달할 수 있습니다.

**기타 도구**
+ [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>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| DB2 LUW DB에서 페더레이션을 활성화합니다. | 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>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 원격 Db2 z/OS 하위 시스템을 카탈로그화합니다. | AWS에서 실행되는 Db2 LUW의 원격 Db2 z/OS 데이터베이스를 카탈로그화하려면 다음 예제 명령을 사용합니다.<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>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 원격 Db2 z/OS 데이터베이스의 사용자 보안 인증 정보를 수집합니다. | 다음 단계를 진행하기 전에 다음 정보를 수집합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/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><br />이 정의에서 `FED_PROXY_USER`는 Db2 z/OS 데이터베이스에 대한 신뢰할 수 있는 연결을 설정하는 데 사용할 프록시 사용자를 지정합니다. 인증 사용자 ID와 암호는 Db2 LUW 데이터베이스에서 원격 서버 객체를 생성하는 데에만 필요합니다. 나중에 런타임 중에는 사용되지 않습니다. | DBA | 

### 사용자 매핑 생성
<a name="create-user-mappings"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 프록시 사용자를 위한 사용자 매핑을 생성합니다. | 프록시 사용자를 위한 사용자 매핑을 생성하려면 다음 명령을 실행합니다.<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><br />이 문은 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>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 신뢰할 수 있는 컨텍스트 객체를 생성합니다. | 원격 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><br />이 정의에서 `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 Resource Access Control Facility(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의 원격 데이터에 액세스합니다. PERSON1의 연결이 신뢰할 수 있는 컨텍스트 정의에 지정된 IP 주소 또는 도메인 이름에서 시작된 경우 연결은 프록시 사용자를 통해 설정됩니다. 연결이 설정되면 PERSON1의 해당 Db2 z/OS 사용자 ID는 재인증 없이 전환되며 사용자는 해당 사용자에 대해 설정된 Db2 권한에 따라 데이터 또는 객체에 액세스할 수 있습니다.

*페더레이션된 신뢰할 수 있는 컨텍스트의 이점*
+ 이 접근 방식은 모든 사용자에게 필요한 모든 권한의 상위 집합이 필요한 공통 사용자 ID나 애플리케이션 ID를 사용하지 않으므로 최소 권한 원칙을 유지합니다.
+ 페더레이션된 데이터베이스와 원격 데이터베이스 모두에서 트랜잭션을 수행하는 사용자의 실제 ID는 항상 알려져 있으며 감사할 수 있습니다.
+ 페더레이션된 서버를 재인증할 필요 없이 사용자 간에 물리적 연결이 재사용되므로 성능이 향상됩니다.