

AWS Mainframe Modernization Service(관리형 런타임 환경 환경 환경)는 더 이상 신규 고객에게 공개되지 않습니다. AWS Mainframe Modernization Service(관리형 런타임 환경 환경)와 유사한 기능은 AWS Mainframe Modernization Service(자체 관리형 환경)를 참조하세요. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [AWS Mainframe Modernization 가용성 변경을](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html) 참조하세요.

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

# AWS Mainframe Modernization 애플리케이션 정의 참조
<a name="applications-m2-definition"></a>

에서는 선택한 런타임 엔진에 고유한 애플리케이션 정의 JSON 파일에서 마이그레이션된 메인프레임 애플리케이션을 AWS Mainframe Modernization구성합니다. 애플리케이션 정의에는 일반 정보와 엔진별 정보가 모두 포함됩니다. 이 주제에서는 메인프레임용 AWS 변환과 Rocket 소프트웨어(이전 Micro Focus) 애플리케이션 정의를 모두 설명하고 모든 필수 및 선택적 요소를 식별합니다.

**Contents**
+ [일반 헤더 섹션](#applications-m2-definition-general)
+ [정의 섹션 개요](#applications-m2-definition-overview)
+ [AWS 메인프레임 애플리케이션 정의 샘플에 대한 변환](#applications-m2-definition-ba)
+ [AWS 메인프레임 정의 세부 정보에 대한 변환](#applications-m2-definition-ba-details)
  + [리스너 - 필수](#applications-m2-definition-ba-details-listener)
  + [AWS 메인프레임 애플리케이션을 위한 변환 - 필수](#applications-m2-definition-ba-details-application)
  + [Blusam - 선택 사항](#applications-m2-definition-ba-details-blusam)
  + [AWS 메인프레임 메시지 대기열 변환 - 선택 사항](#applications-m2-definition-ba-message-queues)
  + [AWS 메인프레임 애플리케이션 스토리지 EFS 구성에 대한 변환 - 선택 사항](#applications-m2-definitions-ba--details-efs)
+ [Rocket Software(이전 Micro Focus) 애플리케이션 정의](#applications-m2-definition-mf)
+ [Rocket 소프트웨어 정의 세부 정보](#applications-m2-definition-mf-details)
  + [리스너 - 필수](#applications-m2-definition-mf-details-listeners)
  + [데이터 세트 위치 - 필수](#applications-m2-definition-mf-details-datasets)
  + [Amazon Cognito 인증 및 권한 부여 핸들러 - 선택 사항](#applications-m2-definition-mf-details-cognito)
  + [LDAP 및 Active Directory 핸들러 - 선택 사항](#applications-m2-definition-mf-details-ldap-ad)
  + [Batch 설정 - 필수](#applications-m2-definition-mf-details-batch)
  + [CICS 설정 - 필수](#applications-m2-definition-mf-details-cics)
  + [프린터 - 선택 사항](#applications-m2-definition-mf-details-printers)
  + [XA 리소스 - 선택 사항](#applications-m2-definition-mf-details-xa)
  + [런타임 설정 - 선택 사항](#applications-m2-definition-mf-details-runtime-settings)

## 일반 헤더 섹션
<a name="applications-m2-definition-general"></a>

각 애플리케이션 정의는 템플릿 버전 및 소스 위치에 대한 일반 정보로 시작됩니다. 애플리케이션 정의의 현재 버전은 2.0입니다.

다음 구조를 사용하여 템플릿 버전과 소스 위치를 지정합니다.

```
"template-version": "2.0",
    "source-locations": [
        {
            "source-id": "s3-source",
            "source-type": "s3",
            "properties": {
                "s3-bucket": "mainframe-deployment-bucket",
                "s3-key-prefix": "v1"
            }
        }
    ]
```

**참고**  
S3 ARN을 s3-버킷으로 입력하려는 경우 다음 구문을 사용할 수 있습니다.  

```
"template-version": "2.0",
  "source-locations": [
      {
          "source-id": "s3-source",
          "source-type": "s3",
          "properties": {
              "s3-bucket": "arn:aws:s3:::mainframe-deployment-bucket",
              "s3-key-prefix": "v1"
          }
      }
  ]
```

**template-version**  
(필수) 애플리케이션 정의 파일의 버전을 지정합니다. 이 값은 변경하지 마세요. 현재, 유일하게 허용되는 값은 2.0입니다. 문자열을 사용하여 `template-version`를 지정합니다.

**source-locations**  
런타임 중에 응용 프로그램에 필요한 파일 및 기타 리소스의 위치를 지정합니다.

**source-id**  
위치의 이름을 지정합니다. 이 이름은 애플리케이션 정의 JSON에서 필요에 따라 소스 위치를 참조하는 데 사용됩니다.

**source-type**  
소스 유형을 지정합니다. 현재 유일하게 허용되는 값은 s3입니다.

**속성**  
소스 위치의 세부 정보를 제공합니다. 각 속성은 문자열로 지정됩니다.  
+ `s3-bucket` - 필수 항목입니다. 원본 파일이 저장된 Amazon S3 버킷 이름입니다.
+ `s3-key-prefix` - 필수 항목입니다. 파일이 저장되는 Amazon S3 버킷의 폴더 이름을 지정합니다.

## 정의 섹션 개요
<a name="applications-m2-definition-overview"></a>

애플리케이션을 실행하는 데 필요한 서비스, 설정, 데이터 및 기타 일반 리소스의 리소스 정의를 지정합니다. 애플리케이션 정의를 업데이트하면 AWS Mainframe Modernization 은 애플리케이션 정의 JSON 파일의 이전 버전과 현재 버전 모두에 있는 `source-locations` 및 `definition` 목록을 비교하여 변경 사항을 감지합니다.

정의 섹션은 엔진별로 다르며 변경될 수도 있습니다. 다음 섹션에서는 두 엔진에 대한 샘플 엔진별 애플리케이션 정의를 보여줍니다.

## AWS 메인프레임 애플리케이션 정의 샘플에 대한 변환
<a name="applications-m2-definition-ba"></a>

```
{
 "template-version": "2.0",
 "source-locations": [
        {
            "source-id": "s3-source",
            "source-type": "s3",
            "properties": {
                "s3-bucket": "mainframe-deployment-bucket-aaa",
                "s3-key-prefix": "v1"
            }
        }
    ],
    "definition" : {
        "listeners": [{
            "port": 8194,
            "type": "http"
        }],
        "ba-application": {
            "app-location": "${s3-source}/murachs-v6/"
        },
        "blusam": {
            "db": {
                "nb-threads": 8,
                "batch-size": 10000,
                "name": "blusam",
                "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:blusam-FfmXLG"
            },
            "redis": {
                "hostname": "blusam.c3geul.ng.0001.usw2.cache.amazonaws.com",
                "port": 6379,
                "useSsl": true,
                "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:bluesamredis-nioefm"
            }
        }
    }
}
```

## AWS 메인프레임 정의 세부 정보에 대한 변환
<a name="applications-m2-definition-ba-details"></a>

### 리스너 - 필수
<a name="applications-m2-definition-ba-details-listener"></a>

 AWS Mainframe Modernization생성된 Elastic Load Balancing을 통해 애플리케이션에 액세스하는 데 사용할 포트를 지정합니다. 다음 구조를 사용합니다.

```
"listeners": [{
            "port": 8194,
            "type": "http"
}],
```

**포트**  
(필수) 잘 알려진 포트(0\$11023)를 제외하고 사용 가능한 모든 포트를 사용할 수 있습니다. 8192 \$1 8199 사이의 값을 사용하는 것이 좋습니다. 이 포트에서 작동하는 다른 리스너나 애플리케이션이 없는지 확인하세요.

**type**  
(필수) 현재 `http`만 지원됩니다.

### AWS 메인프레임 애플리케이션을 위한 변환 - 필수
<a name="applications-m2-definition-ba-details-application"></a>

다음 구조를 사용하여 엔진이 애플리케이션 이미지 파일을 픽업하는 위치를 지정합니다.

```
"ba-application": {
            "app-location": "${s3-source}/murachs-v6/",
            "files-directory": "/m2/mount/myfolder", 
            "enable-jics": <true|false>,
            "enable-batch-restart": <true|false>,
            "shared-app-location": "${s3-source}/shared/"
},
```

**app-location**  
애플리케이션 이미지 파일이 저장되는 Amazon S3의 특정 위치입니다.

**app-location**  
(선택 사항) 배치의 입력/출력 파일 위치. 환경 수준에서 Amazon EFS 또는 Amazon FSx 마운트 포인트 설정의 하위 폴더여야 합니다. 하위 폴더는 내부에서 실행되는 **메인프레임 애플리케이션용 AWS 변환**에서 사용할 수 있는 적절한 사용자가 소유해야 합니다 AWS Mainframe Modernization. 이렇게 하려면 드라이브를 Linux Amazon EC2 인스턴스에 연결할 때 ID가 `101`인 그룹과 ID가 `3001`인 사용자를 생성해야 하며 이 사용자가 원하는 폴더를 소유해야 합니다. *예를 들어 이러한 방식으로 **메인프레임 관리용 AWS 변환** AWS Mainframe Modernization 에서 `testclient` 폴더를 사용할 수 있습니다.*  

```
groupadd -g 101 mygroup
useradd -M -g mygroup -p mypassword -u 3001 myuser
mkdir testclient
chown myuser:mygroup testclient
```

**enable-jics**  
(선택 사항) JICS의 활성화 여부를 지정합니다. 기본값은 true입니다. 이 값을 false로 설정하면 JICS 데이터베이스가 생성되지 않습니다.

**enable-batch-restart**  
(선택 사항) 배치 작업에 대해 재시작 기능을 활성화할지 여부를 지정합니다. 기본값은 false입니다. 배치 재시작 구성에 대한 자세한 내용은 메인프레임 엔진용 AWS 변환을 사용하는 관리형 애플리케이션의 구성 속성`jcl.checkpoint`에 접두사가 붙은 메인프레임 엔진용 변환 속성을 참조하세요. [AWS](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-ba-config-props.html#gapwalk-app-props) 

** shared-app-location **  
(선택 사항) 공유 애플리케이션 요소가 저장되는 Amazon S3의 추가 위치입니다. 앱 위치와 같은 종류의 애플리케이션 구조를 포함할 수 있습니다.

### Blusam - 선택 사항
<a name="applications-m2-definition-ba-details-blusam"></a>

다음 구조를 사용하여 Blusam 데이터베이스 및 Redis 캐시를 지정합니다.

```
"blusam": {
            "db": {
                "nb-threads": 8,
                "batch-size": 10000,
                "name": "blusam",
                "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:blusam-FfmXLG"
            },
            "redis": {
                "hostname": "blusam.c3geul.ng.0001.usw2.cache.amazonaws.com",
                "port": 6379,
                "useSsl": true,
                "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:bluesamredis-nioefm"
            }
}
```

**db**  
애플리케이션과 함께 사용되는 데이터베이스의 속성을 지정합니다. 데이터베이스는 Aurora PostgreSQL 데이터베이스여야 합니다. 다음과 같은 옵션을 지정할 수 있습니다.  
+ `nb-threads` - (선택 사항) Blusam 엔진이 의존하는 쓰기 뒤 메커니즘에 사용되는 전용 스레드 수를 지정합니다. 기본값은 8입니다.
+ `batch-size` - (선택 사항) 쓰기 숨김 메커니즘이 일괄 저장 작업을 시작하는 데 사용하는 임곗값을 지정합니다. 임계값은 수정된 레코드가 지속되도록 일괄 저장 작업을 시작하는 수정된 레코드의 수를 나타냅니다. 트리거 자체는 배치 크기와 1초의 경과 시간(둘 중 먼저 도달하는 시점)의 조합을 기반으로 합니다. 기본값은 10000입니다.
+ `name` - (선택 사항) 데이터베이스의 이름을 지정합니다.
+ `secret-manager-arn` - 데이터베이스 자격 증명이 포함된 암호의 Amazon 리소스 이름(ARN)을 지정합니다. 자세한 내용은 [4단계: AWS Secrets Manager 데이터베이스 보안 암호 생성 및 구성](tutorial-runtime-mf.md#tutorial-runtime-mf-secret) 섹션을 참조하세요.

**Redis**  
애플리케이션이 성능 개선을 위해 필요한 임시 데이터를 중앙 위치에 저장하는 데 사용하는 Redis 캐시의 속성을 지정합니다. Redis 캐시를 암호화하고 암호로 보호하는 것이 좋습니다.  
+ `hostname` - Redis 캐시의 위치를 지정합니다.
+ `port` - Redis 캐시가 통신을 보내고 받는 포트(일반적으로 6379)를 지정합니다.
+ `useSsl` - Redis 캐시의 암호화 여부를 지정합니다. 캐시가 암호화되지 않은 경우 `useSsl` false로 설정합니다.
+ `secret-manager-arn` - Redis 캐시 암호가 포함된 보안 암호의 Amazon 리소스 이름(ARN)을 지정합니다. Redis 캐시가 암호로 보호되지 않는 경우 `secret-manager-arn`를 지정하지 마세요. 자세한 내용은 [4단계: AWS Secrets Manager 데이터베이스 보안 암호 생성 및 구성](tutorial-runtime-mf.md#tutorial-runtime-mf-secret) 단원을 참조하십시오.

### AWS 메인프레임 메시지 대기열 변환 - 선택 사항
<a name="applications-m2-definition-ba-message-queues"></a>

메인프레임 애플리케이션용 AWS 변환에 대한 JMS-MQ 연결 세부 정보를 지정합니다.

```
"message-queues": [ 
  {
      "product-type": "JMS-MQ",
      "queue-manager": "QMgr1",
      "channel": "mqChannel1",
      "hostname": "mqserver-host1",
      "port": 1414,
      "user-id": "app-user1",
      "ssl-cipher": "*TLS12ORHIGHER",
      "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:sample/mq/test-279PTa"
  },
  {
      "product-type": "JMS-MQ",
      "queue-manager": "QMgr2",
      "channel": "mqChannel2",
      "hostname": "mqserver-host2",
      "port": 1412,
      "user-id": "app-user2",
      "ssl-cipher": "*TLS12ORHIGHER",
      "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:sample/mq/test-279PTa"
  }
]
```

**product-type**  
(필수) 제품 유형을 지정합니다. 현재 메인프레임 애플리케이션용 AWS 변환의 경우 "JMS-MQ"만 가능합니다.

**queue-manager**  
(필수) 대기열 관리자의 이름을 지정합니다.

**채널**  
(필수) 서버 연결 채널의 이름을 지정합니다.

**hostname **  
(필수) 메시지 대기열 서버의 호스트 이름을 지정합니다.

**포트**  
(필수) 서버가 수신 중인 리스너 포트 번호를 지정합니다.

**user-id**  
(선택 사항) 지정된 채널에서 메시지 대기열 작업을 수행할 수 있는 사용자 계정 ID를 지정합니다.

**ssl-암호**  
(선택 사항) 연결에 대한 SSL 암호 사양을 지정합니다.

**secret-manager-arn**  
(선택 사항) 지정된 사용자의 암호를 제공하는 Secrets Manager의 Amazon 리소스 이름(ARN)을 지정합니다.

### AWS 메인프레임 애플리케이션 스토리지 EFS 구성에 대한 변환 - 선택 사항
<a name="applications-m2-definitions-ba--details-efs"></a>

다음 구조를 사용하여 애플리케이션 스토리지 EFS 액세스 포인트 세부 정보를 지정합니다.

```
"ba-application": {
            "file-permission-mask": "UMASK002"
},
"efs-configs": [
           {
            "file-system-id": "fs-01376dfsvfvrsvsr",
            "mount-point": "/m2/mount/efs-ap2", 
            "access-point-id": fsap-0eaesefvrefrewgv8"
           }
]
```

**file-system-id**  
(필수) 액세스 포인트가 적용되는 EFS 파일 시스템의 ID입니다. 패턴: ‘fs-([0-9a-f]\$18,40\$1)\$11,128\$1\$1’

**mount-point**  
(필수) 애플리케이션 수준 파일 시스템의 탑재 지점입니다. 이는 환경 수준 스토리지 탑재 지점과 달라야 합니다.

**access-point-id**  
(필수) Amazon EFS에서 할당한 액세스 포인트의 ID입니다. 패턴: ‘^fsap-([0-9a-f]\$18,40\$1)\$11,128\$1\$1’

** file-permission-mask **  
(선택 사항) 애플리케이션 프로세스에서 생성한 파일에 대한 파일 생성 마스크를 정의합니다. 예를 들어 값이 `UMASK006`으로 설정되면 모든 파일에 권한 660이 부여됩니다. 즉, 파일 소유자와 파일 그룹만 읽기 및 쓰기 액세스 권한을 가지지만 다른 사용자에게는 권한이 없습니다.  
이 필드에 설정된 값은 애플리케이션 수준 EFS 스토리지를 사용할 때만 고려됩니다.

**참고**  
efs 구성이 제공되면 애플리케이션 정의 섹션에 files-directory를 지정해야 합니다. 애플리케이션 수준에서 설정된 Amazon EFS 탑재 지점의 하위 폴더여야 합니다.

## Rocket Software(이전 Micro Focus) 애플리케이션 정의
<a name="applications-m2-definition-mf"></a>

다음 샘플 정의 섹션은 Rocket Software 런타임 엔진용이며 필수 및 선택적 요소를 모두 포함합니다.

```
{
 "template-version": "2.0",
 "source-locations": [
        {
            "source-id": "s3-source",
            "source-type": "s3",
            "properties": {
                "s3-bucket": "mainframe-deployment-bucket-aaa",
                "s3-key-prefix": "v1"
            }
        }
    ],
    "definition" : {
        "listeners": [{
            "port": 5101,
            "type": "tn3270"
        }],
        "dataset-location": {
            "db-locations": [{
                "name": "Database1",
                "secret-manager-arn": "arn:aws:secrets:1234:us-east-1:secret:123456"
            }]
        },
        "cognito-auth-handler": {
            "user-pool-id": "cognito-idp.us-west-2.amazonaws.com/us-west-2_rvYFnQIxL",
            "client-id": "58k05jb8grukjjsudm5hhn1v87",
            "identity-pool-id": "us-west-2:64464b12-0bfb-4dea-ab35-5c22c6c245f6"
        },
        "ldap-ad-auth-handler": {
            "ldap-ad-connection-secrets": [LIST OF AD-SECRETS]
        },
        "batch-settings": {
            "initiators": [{
                "classes": ["A", "B"],
                "description": "initiator...."
            }],
            "jcl-file-location": "${s3-source}/batch/jcl",
            "program-path": "/m2/mount/libs/loadlib:$EFS_MOUNT/emergency/loadlib",
            "system-procedure-libraries":"SYS1.PROCLIB;SYS2.PROCLIB",
            "aliases": [
               {"alias": "FDSSORT", "program": "SORT"},
               {"alias": "MFADRDSU", "program": "ADRDSSU"}
            ]
        },
        "cics-settings": {
            "binary-file-location": "${s3-source}/cics/binaries",
            "csd-file-location": "${s3-source}/cics/def",
            "system-initialization-table": "BNKCICV"
        },
        "jes-printers": [
           {
             "name": "printerName",
              "classes": [
                 "A",
                 "B"
             ],
             "description": "printer desc....",
             "exit-module": {
                 "name": "lrsprte6"
                }
             } 
         ],
        "xa-resources" : [{
            "name": "XASQL",
            "secret-manager-arn": "arn:aws:secrets:1234:us-east-1:secret:123456",
            "xa-connection-type": "postgres",
            "module": "${s3-source}/xa/ESPGSQLXA64.so"
        }],
        "runtime-settings": {
          "base-configuration-location": "${s3-source}/exported.json",
          "environment-variables": {
            "ES_JES_RESTART": "N",
            "EFS_MOUNT": "/m2/mount/efs",
            "LRSQ_ADDRESS": "<lrsq-address>"
          } 
        }
    }
}
```

## Rocket 소프트웨어 정의 세부 정보
<a name="applications-m2-definition-mf-details"></a>

Rocket Software 애플리케이션 정의 파일의 정의 섹션에 있는 콘텐츠는 마이그레이션된 메인프레임 애플리케이션에 런타임 시 필요한 리소스에 따라 달라집니다.

### 리스너 - 필수
<a name="applications-m2-definition-mf-details-listeners"></a>

다음 구조를 사용하여 리스너를 지정합니다.

```
"listeners": [{
    "port": 5101,
    "type": "tn3270"
}],
```

**포트**  
tn3270의 경우 기본값은 5101입니다. 다른 유형의 서비스 리스너의 경우 포트가 다릅니다. 잘 알려진 포트(0\$11023)를 제외하고 사용 가능한 모든 포트를 사용할 수 있습니다. 각 리스너에는 고유한 포트가 있어야 합니다. 리스너는 포트를 공유해서는 안 됩니다. 자세한 내용은 *Micro Focus 엔터프라이즈 서버* 설명서의 [리스너 제어](https://www.microfocus.com/documentation/enterprise-developer/ed70/ES-UNIX/GUID-63F6D8B0-024F-48D1-956A-1E079E4BD891.html)를 참조하세요.

**type**  
서비스 리스너 유형을 지정합니다. 자세한 내용은 *Microsoft 엔터프라이즈 서버* 설명서에서 [리스너](https://www.microfocus.com/documentation/enterprise-developer/ed70/ES-UNIX/HTPHMDSAL100.html)를 참조하세요.

### 데이터 세트 위치 - 필수
<a name="applications-m2-definition-mf-details-datasets"></a>

다음 구조를 사용하여 데이터 세트 위치를 지정합니다.

```
"dataset-location": {
            "db-locations": [{
                "name": "Database1",
                "secret-manager-arn": "arn:aws:secrets:1234:us-east-1:secret:123456"
            }],
 }
```

**db-locations**  
마이그레이션된 애플리케이션이 생성하는 데이터 세트의 위치를 지정합니다. 현재는 단일 VSAM 데이터베이스의 데이터 세트만 AWS Mainframe Modernization 지원합니다.  
+ `name` - 마이그레이션된 애플리케이션에서 생성하는 데이터 세트를 포함하는 데이터베이스 인스턴스의 이름을 지정합니다.
+ `secret-manager-arn` - 데이터베이스 자격 증명이 포함된 암호의 Amazon 리소스 이름(ARN)을 지정합니다.

### Amazon Cognito 인증 및 권한 부여 핸들러 - 선택 사항
<a name="applications-m2-definition-mf-details-cognito"></a>

AWS Mainframe Modernization 는 마이그레이션된 애플리케이션의 인증 및 권한 부여에 Amazon Cognito를 사용합니다. 다음 구조를 사용하여 Amazon Cognito 인증 핸들러를 지정합니다.

```
"cognito-auth-handler": {
            "user-pool-id": "cognito-idp.Region.amazonaws.com/Region_rvYFnQIxL",
            "client-id": "58k05jb8grukjjsudm5hhn1v87",
            "identity-pool-id": "Region:64464b12-0bfb-4dea-ab35-5c22c6c245f6"
}
```

**user-pool-id**  
가 마이그레이션된 애플리케이션의 사용자를 인증하는 데 AWS Mainframe Modernization 사용하는 Amazon Cognito 사용자 풀을 지정합니다. 사용자 풀 AWS 리전 의는 AWS Mainframe Modernization 애플리케이션의 AWS 리전 와 일치해야 합니다.

**client-id**  
인증된 사용자가 액세스할 수 있는 마이그레이션된 애플리케이션을 지정합니다.

**identity-pool-id**  
인증된 사용자가 AWS Mainframe Modernization에 액세스할 수 있는 자격 증명으로 사용자 풀 토큰을 교환하는 Amazon Cognito ID 풀을 지정합니다. 자격 증명 풀 AWS 리전 의는 AWS Mainframe Modernization 애플리케이션의 AWS 리전 와 일치해야 합니다.

### LDAP 및 Active Directory 핸들러 - 선택 사항
<a name="applications-m2-definition-mf-details-ldap-ad"></a>

애플리케이션을 Active Directory(AD) 또는 모든 유형의 LDAP 서버와 통합하여 애플리케이션 사용자가 권한 부여 및 인증에 LDAP/AD 보안 인증 정보를 사용하도록 할 수 있습니다.

**애플리케이션을 AD와 통합하려면**

1. Micro Focus Enterprise Server 설명서의 [Enterprise Server 보안을 위한 Active Directory 구성](https://www.microfocus.com/documentation/server-cobol/51/chessa64.htm)에 설명된 단계를 따릅니다.

1. 애플리케이션에 사용할 각 AD/LDAP 서버에 대한 AD/LDAP 세부 정보를 사용하여 AWS Secrets Manager 보안 암호를 생성합니다. 보안 암호를 생성하는 방법에 대한 자세한 내용은 AWS Secrets Manager 사용 설명서의 [ AWS Secrets Manager 보안 암호 생성을](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) 참조하세요. 암호 유형에서 **기타 유형의 암호**를 선택하고 다음 키-값 페어를 포함합니다.

   ```
   {
       "connectionPath"       : "<HOST-ADDRESS>:<PORT>",
       "authorizedId"         : "<USER-FULL-DN>",
       "password"             : "<PASSWORD>",
       "baseDn"               : "<BASE-FULL-DN>",
       "userClassDn"          : "<USER-TYPE>",
       "userContainerDn"      : "<USER-CONTAINER-DN>",
       "groupContainerDn"     : "<GROUP-CONTAINER-DN>",
       "resourceContainerDn"  : "<RESOURCE-CONTAINER-DN>"
   }
   ```
**보안 권장 사항**  
의 경우는 LDAP 및 LDAP over SSL(LDAPS) 프로토콜을 `connectionPath` AWS Mainframe Modernization 지원합니다. LDAPS는 더 안전하며 네트워크 전송 시 보안 인증 정보가 드러나지 않도록 하므로, LDAPS를 사용하는 것이 좋습니다.
`authorizedId` 및 `password`의 경우 애플리케이션 실행에 필요한 가장 제한적인 읽기 전용 및 확인 권한보다 많은 권한이 없는 사용자의 보안 인증 정보를 지정하는 것이 좋습니다.
AD/LDAP 보안 인증 정보를 정기적으로 교체하는 것이 좋습니다.
사용자 이름 `awsuser` 또는 `mfuser`로 AD 사용자를 생성하지 마세요. 이 두 사용자 이름은 AWS 사용에 예약되어 있습니다.

   다음은 예입니다.

   ```
   {
       "connectionPath" : "ldaps://msad4.m2.example.people.aws.dev:636",
       "authorizedId" : "CN=LDAPUser,OU=Users,OU=msad4,DC=msad4,DC=m2,DC=example,DC=people,DC=aws,DC=dev",
       "password" : "ADPassword",
       "userContainerDn" : "CN=Enterprise Server Users,CN=Micro Focus,CN=Program Data,OU=msad4,DC=msad4,DC=m2,DC=example,DC=people,DC=aws,DC=dev",
       "groupContainerDn" : "CN=Enterprise Server Groups,CN=Micro Focus,CN=Program Data,OU=msad4,DC=msad4,DC=m2,DC=example,DC=people,DC=aws,DC=dev",
       "resourceContainerDn" : "CN=Enterprise Server Resources,CN=Micro Focus,CN=Program Data,OU=msad4,DC=msad4,DC=m2,DC=example,DC=people,DC=aws,DC=dev"
   }
   ```

   고객 관리형 KMS 키로 암호를 생성합니다. AWS Mainframe Modernization 에 보안 암호에 대한 `GetSecretValue` 및 `DescribeSecret` 권한, KMS 키에 대한 `Decrypt` 및 `DescribeKey` 권한을 부여해야 합니다. 자세한 내용은 AWS Secrets Manager 사용 설명서[의 KMS 키에 대한 권한을 참조하세요](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-authz).

1. 애플리케이션 정의에 다음을 추가합니다.

   ```
   "ldap-ad-auth-handler": {
       "ldap-ad-connection-secrets": [LIST OF AD/LDAP SECRETS]
   }
   ```

   다음은 예입니다.

   ```
   "ldap-ad-auth-handler": {
       "ldap-ad-connection-secrets": ["arn:aws:secrets:1234:us-east-1:secret:123456"]
   }
   ```

애플리케이션이 LDAP와 통합되고 시작된 경우, 지원되는 권한 부여 목록에 언급된 애플리케이션 관련 작업을 하나 이상 실행하려면 자격 증명을 제공해야 합니다.

LDAP/AD 인증 핸들러는 Micro Focus(Rocket) 8.0.11 이상 버전에서 사용할 수 있습니다.

**참고**  
현재 LDAP 관리자는 LDAP 디렉터리의 'OPERCMDS' 엔터프라이즈 서버 리소스에 있는 `casstart` 유틸리티에 '변경' 권한을 제공해야 합니다. 애플리케이션을 성공적으로 시작하려면 필요한 모든 기본 사용자(예: CICSUSER - 애플리케이션이 CICS와 관련된 경우)에 대해 이 작업을 수행해야 합니다.

**인증 및 권한 부여를 위한 LDAP 사용자 자격 증명을 제공하려면**

1. 다음 키와 값을 AWS Secrets Manager 사용하여를 생성합니다.

   ```
   {
     "username" : "<USERNAME>",
     "password" : "<PASSWORD>"
   }
   ```
**중요**  
사용 중인 Secrets Manager에서 `DescribeSecrets` 및 `GetSecretValue`를 실행할 수 있는 권한이 있어야 합니다. 또한 [선택 AWS KMS key](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-choose-key)에 설명된 AWS Secrets Manager대로 KMS 키와에 필요한 권한을 연결합니다.

1. Secrets Manager 파라미터를 선택합니다.

------
#### [ AWS console ]

    AWS 콘솔에서 작업을 실행하는 동안 전달해야 하는 Secrets Manager를 선택할 수 있는 옵션이 있습니다.

------
#### [ AWS CLI (or SDK) ]

   AWS CLI(또는 SDK)에서 작업을 실행하는 동안 API 파라미터 `auth-secrets-manager-arn`은 Secrets Manager ARN과 함께 전달되어야 합니다.

------

현재 권한 부여를 지원하는 애플리케이션 작업 목록은 다음과 같습니다.
+ `StartBatchJob`
+ `CancelBatchJobExecution`
+ `ListBatchJobRestartPoints`

### Batch 설정 - 필수
<a name="applications-m2-definition-mf-details-batch"></a>

다음 구조를 사용하여 응용 프로그램의 일부로 실행되는 배치 작업에 필요한 세부 정보를 지정합니다.

```
"batch-settings": {
            "initiators": [{
                "classes": ["A", "B"],
                "description": "initiator...."
            }],
            "jcl-file-location": "${s3-source}/batch/jcl",
            "program-path": "/m2/mount/libs/loadlib:$EFS_MOUNT/emergency/loadlib",
            "system-procedure-libraries":"SYS1.PROCLIB;SYS2.PROCLIB",
            "aliases": [
               {"alias": "FDSSORT", "program": "SORT"},
               {"alias": "MFADRDSU", "program": "ADRDSSU"}
    ]
}
```

**시작한 사용자**  
마이그레이션된 응용 프로그램이 성공적으로 시작될 때 시작되고 응용 프로그램이 중지될 때까지 계속 실행되는 배치 이니시에이터를 지정합니다. 시작한 사용자당 하나 이상의 클래스를 정의할 수 있습니다. 여러 시작한 사용자를 정의할 수도 있습니다. 예제:  

```
"batch-settings": {
            "initiators": [
                {
                  "classes": ["A", "B"],
                  "description": "initiator...."
                },
                {
                  "classes": ["C", "D"],
                  "description": "initiator...."
                }
            
        ],
 }
```
자세한 내용은 *Micro Focus 엔터프라이즈 서버* 설명서의 [배치 시작한 사용자 또는 프린터 SEP 정의하기](https://www.microfocus.com/documentation/enterprise-developer/ed70/ES-UNIX/HHMTTHJCLE08.html)를 참조하세요.  
+ `classes` - 시작한 사용자가 실행할 수 있는 작업 클래스를 지정합니다. 최대 36자의 유니코드 문자를 사용할 수 있습니다. A-Z 또는 0-9와 같은 문자를 사용할 수 있습니다.
+ `description`- 시작한 사용자의 용도를 설명합니다.

**jcl-file-location**  
마이그레이션된 애플리케이션이 실행하는 일괄 작업에 필요한 JCL(작업 제어 언어) 파일의 위치를 지정합니다.

**program-path**  
JCL의 프로그램이 기본 위치에 있지 않을 때 일괄 작업을 실행하는 데 필요한 경로를 지정합니다. 서로 다른 경로 이름은 콜론(:)으로 구분됩니다.  
프로그램 경로는 EFS 경로만 될 수 있습니다.

**system-procedure-libraries**  
JCL 프로시저를 검색할 분할된 기본 데이터 세트를 지정합니다. 그러나 절차는 JCL 또는 JCLLIB 문에서 찾을 수 없습니다. 이러한 데이터 세트는 카탈로그화해야 하며 카탈로그 이름을 사용해야 합니다. 그리고 항목은 세미콜론(;)으로 구분됩니다.

**별칭**  
JCL에 사용되는 유틸리티 및 프로그램 이름에 대한 매핑을 유틸리티의 구현 이름으로 정의합니다. AWS 및 타사 배치 유틸리티(예: M2SFTP, M2WAIT, Syncsort 등)에는 선택적으로 별칭이 있어 JCL을 변경할 필요가 없습니다. 예제:  
+ SORT용 FDSSORT 별칭 FDSSORT 및 ICETOOL용 별칭 FDSICET
+ ADRDSSU용 ADRDSSU 별칭 MFADRDSU
+ SORT용 Syncsort 별칭 DMXMFSRT

### CICS 설정 - 필수
<a name="applications-m2-definition-mf-details-cics"></a>

다음 구조를 사용하여 응용 프로그램의 일부로 실행되는 CICS 트랜잭션에 필요한 세부 정보를 지정합니다.

```
"cics-settings": {
            "binary-file-location": "${s3-source}/cics/binaries",
            "csd-file-location": "${s3-source}/cics/def",
            "system-initialization-table": "BNKCICV"
}
```

**binary-file-location**  
CICS 트랜잭션 프로그램 파일의 위치를 지정합니다.

**csd-file-location**  
이 응용 프로그램의 CICS 리소스 정의(CSD) 파일 위치를 지정합니다. 자세한 내용은 *Micro Focus 엔터프라이즈 서버* 설명서의 [CICS 리소스 정의](https://www.microfocus.com/documentation/enterprise-developer/ed80/ES-UNIX/HRMTRHCSDS01.html)를 참조하세요.

**system-initialization-table**  
마이그레이션된 애플리케이션이 사용하는 시스템 초기화 테이블(SIT)을 지정합니다. SIT 테이블 이름은 최대 8자까지 가능합니다. A\$1Z, 0\$19, \$1, @ 및 \$1을 사용할 수 있습니다. 자세한 내용은 *Micro Focus 엔터프라이즈 서버* 설명서의 [CICS 리소스 정의](https://www.microfocus.com/documentation/enterprise-developer/ed70/ES-UNIX/HRMTRHCSDS01.html)를 참조하세요.

### 프린터 - 선택 사항
<a name="applications-m2-definition-mf-details-printers"></a>

다음 구조를 사용하여 JES 프린터를 지정합니다.

```
"jes-printers": [
    {
        "name": "printerName",
        "classes": [
            "A", 
            "B"
        ],
        "description": "printer desc....",
        "exit-module": {
            "name": "lrsprte6",
            "module" : "program"
        }
    }
],
```

**참고**  
지정된 애플리케이션에 대해 구성된 프린터는 최대 25개일 수 있습니다.

**이름**  
(필수) 이 프린터 리소스와 연결할 이름을 지정합니다. 이름은 프린터마다 고유해야 하며 128자의 영숫자를 사용할 수 있습니다.

**클래스**  
(필수) 이 프린터 리소스에 적용할 수 있는 출력 클래스를 지정합니다. 36자의 영숫자를 사용할 수 있습니다.

**description**  
(선택 사항) 프린터에 대한 추가 설명 텍스트입니다.

**exit-module**  
(선택 사항) 인쇄 종료를 위한 사용자 지정 모듈을 지정합니다. 기본값은 없습니다. 지정하지 않으면 종료 모듈이 사용되지 않습니다. 관리형 인쇄 종료 모듈을 사용하거나 직접 제공할 수 있습니다. 관리형 인쇄 종료 모듈은 LRS 대기열에 대해 예약된 이름 `lrsprte6`을 사용하거나 모듈 파라미터를 사용하여 자체적으로 위치 및 이름을 지정하여 정의됩니다.  
`exit-module` 구조에는 다음 두 가지 구성 요소가 있습니다.  
+ `name` - (필수), `exit-module`이 사용되는 경우. 종료 모듈의 항목 이름입니다. 종료 모듈 항목 이름은 최대 8자로 제한됩니다.
+ `module` - (선택 사항) 인쇄 종료 모듈 바이너리의 S3 위치입니다.

[프린터](mf-app-config.md#mf-app-config-integations-printers) 섹션에서 종료 모듈을 정의하는 추가 예제를 볼 수 있습니다.

### XA 리소스 - 선택 사항
<a name="applications-m2-definition-mf-details-xa"></a>

다음 구조를 사용하여 애플리케이션에 필요한 XA 리소스에 필요한 세부 정보를 지정하세요.

```
"xa-resources" : [{
            "name": "XASQL",
            "secret-manager-arn": "arn:aws:secrets:1234:us-east-1:secret:123456",
            "xa-connection-type": "postgres",
            "module": "${s3-source}/xa/ESPGSQLXA64.so"
}]
```

**참고**  
XA 리소스 정의가 선택적 `xa-connection-type` 필드를 포함하도록 업데이트되었습니다. 제공하지 않으면 연결 유형이 ‘postgres’로 간주됩니다.

**이름**  
(필수) XA 리소스 공유의 이름을 지정합니다.

**secret-manager-arn**  
(필수) 데이터베이스에 연결하기 위한 자격 증명이 포함된 보안 암호의 Amazon 리소스 이름(ARN)을 지정합니다.

**xa-connection-type**  
(선택 사항) XA 리소스 연결 유형을 지정합니다.

**모듈**  
(필수) RM 스위치 모듈 실행 파일의 위치를 지정합니다. 자세한 내용은 *Micro Focus 엔터프라이즈 서버* 설명서의 [XAR 계획 및 설계](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-91C0E7E4-C012-4DF2-8996-CF6C52437FB7.html)를 참조하세요.

### 런타임 설정 - 선택 사항
<a name="applications-m2-definition-mf-details-runtime-settings"></a>

다음 구조를 사용하여 허용된 환경 변수를 관리하기 위한 런타임 설정에 필요한 세부 정보를 지정합니다.

```
"runtime-settings": {
          "base-configuration-location": "${s3-source}/exported.json",
          "environment-variables": {
            "ES_JES_RESTART": "N",
            "EFS_MOUNT": "/m2/mount/efs"
    } 
}
```

**base-configuration-location**  
(선택 사항) Micro Focus 서버 구성의 대량 가져오기 위치를 지정합니다. 이 파일은 유효한 JSON이어야 하며 위에 정의된 애플리케이션 아티팩트 위치와 동일한 S3 위치에 있어야 합니다. 기존 애플리케이션에서 구성을 내보내려면 *Rocket 소프트웨어 설명서*의 [ESCWA에서 리전을 내보내려면](https://www.microfocus.com/documentation/enterprise-developer/ed90/ED-Eclipse/GUID-6CDD00CC-4086-4602-8EE2-0C07E04ACC6A.html) *섹션을* 참조하세요.

**environment-variables**  
이 애플리케이션의 런타임에 적용되는 Micro Focus 지원 환경 변수를 지정합니다.  
+ `ES_JES_RESTART`는 JCL 재시작 처리를 활성화하는 Rocket Software 환경 변수입니다. 선택적으로를 Rocket Software 환경 변수`ES_ALLOC_OVERRIDE`로 사용할 수도 있습니다.
+ `EFS_MOUNT`는 애플리케이션이 환경의 EFS 탑재 위치를 식별하는 데 사용할 수 있는 사용자 지정 환경 변수입니다.

[Rocket Enterprise Server for UNIX 가이드의 모든 Rocket Software 환경 변수](https://www.microfocus.com/documentation/enterprise-developer/ed80/ES-UNIX/GUID-F0C24B4E-9720-47C1-A77C-2E9B30CC4328.html)*에 액세스할 수 있습니다.*