

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 메인프레임 런타임 보안 암호에 대한 변환
<a name="ba-runtime-config-app-secrets"></a>

보안 인증이 포함된 일부 리소스 구성은 AWS 암호를 사용하여 보안을 더 강화할 수 있습니다. 중요한 데이터를 AWS 보안 암호에 저장하고 보안 암호에 대한 참조를 YAML 구성에 저장하여 Apache Tomcat 시작 시 보안 암호 콘텐츠를 즉시 선택하는 것이 좋습니다.

## Aurora에 대한 암호
<a name="ba-runtime-config-app-secrets-aur"></a>

Aurora 데이터베이스 구성(JICS, Blusam, 고객 db 등)은 기본 제공 [데이터베이스 보안](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html) 암호를 사용하며,이 보안 암호는 해당 데이터베이스에서 모든 관련 필드를 자동으로 채웁니다.

**참고**  
`dbname` 키는 선택 사항이며, 데이터베이스 구성에 따라 비밀에 포함되거나 포함되지 않을 수 있습니다. 수동으로 추가하거나 YAML 파일에 이름을 제공하여 추가할 수 있습니다.

## 기타 암호
<a name="ba-runtime-config-app-secrets-other"></a>

다른 비밀은 단일 비밀번호를 가진 리소스(특히 password-protected redis 캐시)에 대한 것입니다. 이 경우 [다른 유형의 암호](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)를 사용해야 합니다.

### 비밀에 대한 YAML 참조
<a name="ba-runtime-config-app-secrets-reference"></a>

`application-main.yml`은 다양한 리소스의 암호 ARN을 참조할 수 있습니다.

### JICS 데이터베이스
<a name="jics-database"></a>

`spring.aws.jics.db.secret`이 있는 JICS 데이터베이스 자격 증명

```
spring:
   aws:
     jics:
       db:
         dbname: jics
         secret: arn:aws:secretsmanager:XXXX
```

지원되는 JICS 데이터베이스 보안 암호 키:


| 보안 키 | 보안 키 설명 | 
| --- | --- | 
| host | 호스트 이름 | 
| 포트 | 포트 | 
| dbname | 데이터베이스의 이름 | 
| 사용자 이름 | 사용자 이름 | 
| 암호 | 암호 | 
| engine | 데이터베이스 엔진: Postgres, Oracle, Db2, Microsoft SQL Server | 
| currentSchema | 사용할 특정 스키마(Db2 지원만 해당) | 
| sslConnection | SSL 연결 사용 여부(Db2 지원만 해당) | 
| sslTrustStoreLocation | 클라이언트의 트러스트 스토어 위치(Db2 지원만 해당) | 
| sslTrustStorePassword | 클라이언트의 트러스트 스토어 암호(Db2 지원만 해당) | 

**참고**  
데이터베이스 이름은 보안 암호 또는 yaml 참조 `spring.aws.jics.db.dbname`에 제공됩니다.

### Blusam 데이터베이스
<a name="blusam-database"></a>

Blusam를 사용한 데이터베이스 자격 증명 `spring.aws.client.bluesam.db.secret`

```
spring:
   aws:
     client:
       bluesam:
         db:
           dbname: bluesam 
           secret: arn:aws:secretsmanager:XXXX
```

지원되는 Blusam 데이터베이스 보안 키:


| 보안 키 | 보안 키 설명 | 
| --- | --- | 
| host | 호스트 이름 | 
| 포트 | 포트 | 
| dbname | 데이터베이스의 이름 | 
| 사용자 이름 | 사용자 이름 | 
| 암호 | 암호 | 
| engine | 데이터베이스 엔진: Postgres | 

**참고**  
데이터베이스 이름은 보안 암호 또는 yaml 참조 `spring.aws.client.bluesam.db.dbname`에 제공됩니다.

### 클라이언트 데이터베이스
<a name="client-database"></a>

클라이언트 `application-profile.yml`는 클라이언트 데이터베이스의 비밀 ARN을 참조할 수 있습니다. 이렇게 하려면 데이터 소스 이름 `spring.aws.client.datasources.names`를 나열하는 추가 속성이 필요합니다. 각 데이터 소스 이름에 대해 `ds_name`은 다음 속성에서 보안 암호 ARN을 지정합니다. `spring.aws.client.datasources.ds_name.secret` 예제:

```
spring:
   aws:
     client:
       datasources:
         names: primary,host 
         primary:
           secret: arn:aws:secretsmanager:XXXX
         host:
           dbname: hostdb 
           secret: arn:aws:secretsmanager:XXXX
```

*names: primary,host*:

primary 및 host라는 두 개의 클라이언트 데이터 원본이 있고 각각 데이터베이스와 보안 인증이 있는 예제입니다.

*dbname: hostdb*:

이 예제에서 “host” 데이터베이스의 이름은 암호에 없고 대신 여기에 입력되지만, “primary” 데이터베이스의 경우 암호에 있습니다.

지원되는 클라이언트 데이터베이스 보안 키:


| 보안 키 | 보안 키 설명 | 
| --- | --- | 
| host | 호스트 이름 | 
| 포트 | 포트 | 
| dbname | 데이터베이스의 이름 | 
| 사용자 이름 | 사용자 이름 | 
| 암호 | 암호 | 
| engine | 데이터베이스 엔진: Postgres, Oracle, Db2, Microsoft SQL Server | 
| currentSchema | 사용할 특정 스키마(Db2 지원만 해당) | 
| sslConnection | SSL 연결 사용 여부(Db2 지원만 해당) | 
| sslTrustStoreLocation | 클라이언트의 트러스트 스토어 위치(Db2 지원만 해당) | 
| sslTrustStorePassword | 클라이언트의 트러스트 스토어 암호(Db2 지원만 해당) | 

### PGM 유틸리티 데이터베이스
<a name="pgm-utility-database"></a>

`application-utility-pgm.yml`은 다양한 리소스의 암호 ARN을 참조할 수 있습니다.
+  `spring.aws.client.datasources.primary` 
  + `secret`

     애플리케이션 데이터베이스의 보안 암호 ARN입니다.

유형: 문자열
+ `type`

사용할 연결 풀 구현의 정규화된 이름입니다.

유형: 문자열

기본값: `com.zaxxer.hikari.HikariDataSource`
+ `spring.aws.client.utility.pgm.datasources` 
  + `names`

데이터 소스 이름 목록입니다.

유형: 문자열
+ `dsname` 
  + `dbname`

호스트의 이름입니다.

유형: 문자열
+ `secret`

호스트 데이터베이스의 보안 암호 ARN입니다.

유형: 문자열
+ `type`

사용할 연결 풀 구현의 정규화된 이름입니다.

유형: 문자열

기본값: `com.zaxxer.hikari.HikariDataSource`

다중 데이터 소스 보안 암호의 경우:

```
spring:
   aws:
     client:
       primary:
         secret: arn:aws:secretsmanager:XXXX
         type: dataSourceType
       utility:
         pgm:
           datasources:
             names: dsname1,dsname2,dsname3
               dsname1:
                 dbname: dbname1
                 secret: arn:aws:secretsmanager:XXXX
                 type: dataSourceType
               dsname2:
                 dbname: dbname2
                 secret: arn:aws:secretsmanager:XXXX
                 type: dataSourceType
               dsname3:
                 dbname: dbname3
                 secret: arn:aws:secretsmanager:XXXX
                 type: dataSourceType
```

### XA 지원 보안 암호 키 없음
<a name="no-xa"></a>
+ 엔진(postgres/oracle/db2/mssql)
+ 포트
+ dbname
+ currentSchema
+ 사용자 이름
+ 암호
+ url
+ sslConnection
+ sslTrustStoreLocation
+ sslTrustStorePassword

`postgres`의 경우 `sslMode` 보안 암호 키 값(`disable/allow/prefer/require/verify-ca/verify-full`) 및 `spring.aws.rds.ssl.cert-path` YAML 속성으로만 SSL에 연결할 수 있습니다.

### XA 지원 보안 암호 키
<a name="xa"></a>

클라이언트 데이터베이스가 XA를 사용하는 경우 보안 암호 값을 통해 하위 xa-properties가 지원됩니다.
+ host
+ 포트
+ dbname
+ currentSchema
+ 사용자 이름
+ 암호
+ url
+ sslConnection(true/false)
+ sslTrustStoreLocation
+ sslTrustStorePassword

그러나 다른 xa-properties(예: `maxPoolSize` 또는 `driverType`)의 경우 일반 YAML 키 `spring.jta.atomikos.datasource.XXXX.unique-resource-name`를 계속 제공해야 합니다.

보안 암호 값은 YAML 속성을 재정의합니다.

### 기본 최고 관리자 BAC 및 JAC
<a name="bac-and-jac"></a>

또한 ARN을 지정하여 AWS Secrets Manager에서 보안 암호의 기본 최고 관리자 사용자의 사용자 이름과 암호를 검색하도록 application-main.yml을 구성할 수 있습니다. 다음 예제에서는 YAML 파일에서 이러한 보안 암호를 선언하는 방법을 보여줍니다.

```
spring:
   aws:
     client:
       defaultSuperAdmin:
         secret: arn:aws:secretsmanager:XXXX
```

지원되는 기본 최고 관리자 데이터베이스 보안 암호 키:


| 보안 키 | 보안 키 설명 | 
| --- | --- | 
| 사용자 이름 | 사용자 이름입니다. | 
| 암호 | 암호입니다. | 

### OAuth2
<a name="oauth2"></a>

공급자와 ARN을 지정하여 AWS Secrets Manager 에서 OAuth2 클라이언트 보안 암호를 검색하도록 `application-main.yml`을 구성할 수도 있습니다. 공급자 속성의 기본값은 Amazon Cognito입니다. 다음은 OAuth2 공급자 Keycloak에 대한 구성의 예입니다.

```
spring:
   aws:
     client:
       provider: keycloak
       keycloak:
         secret: arn:aws:secretsmanager:XXXX
```

이 예제에서는 OAuth2 공급자 Keycloak의 client-secret이 AWS Secrets Manager의 지정된 ARN에서 검색됩니다. 이 구성은 공급자 이름과 해당 보안 암호 ARN을 동적으로 확인하여 여러 공급자를 지원합니다.

지원되는 OAuth2 보안 암호 키:


| 보안 키 | 보안 키 설명 | 
| --- | --- | 
| client-secret | 애플리케이션 등록 프로세스 중에 권한 부여 서버에서 생성된 보안 암호입니다. | 

### Redis 캐시용 Secrets Manager
<a name="ba-runtime-redis-secrets-properties"></a>

`application-main.yml` 파일은 Redis 캐시에 대한 보안 암호 ARN을 참조할 수 있습니다. 지원되는 항목은 다음과 같습니다.
+ `spring.aws.client.gapwalk.redis.secret`을 사용한 Gapwalk Redis 자격 증명
+ `spring.aws.client.bluesam.redis.secret`을 사용한 Bluesam Redis 자격 증명
+ `spring.aws.client.bluesam.locks.redis.secret`을 사용한 Bluesam 잠금 Redis 자격 증명
+ `spring.aws.client.dataset.catalog.redis.secret`을 사용한 데이터세트 카탈로그 Redis 자격 증명
+ `spring.aws.client.jics.redis.secret`을 사용한 JICS Redis 자격 증명
+ `spring.aws.client.jics.redis.secret`을 사용한 세션 Redis 자격 증명
+ `spring.aws.client.session.tracker.redis.secret`을 사용한 세션 트래커 Redis 자격 증명
+ `spring.aws.client.jics.queues.ts.redis.secret`을 사용한 JICS TS Queues Redis 자격 증명
+ `spring.aws.client.jcl.checkpoint.redis.secret`을 사용한 JCL 체크포인트 Redis 자격 증명
+ `spring.aws.client.gapwalk.files.locks.redis.secret`을 사용한 Gapwalk 파일 잠금 Redis 자격 증명
+ `spring.aws.client.blu4iv.locks.redis.secret`을 사용한 Blu4IV 잠금 Redis 자격 증명

 다음 예제에서는 YAML 파일에서 이러한 암호를 선언하는 방법을 보여줍니다.

```
spring:
   aws:
     client:
       gapwalk:
         redis:
           secret: arn:aws:secretsmanager:XXXX
       bluesam:
         locks:
           redis:
             secret: arn:aws:secretsmanager:XXXX
         redis:
           secret: arn:aws:secretsmanager:XXXX
       dataset:
         catalog:
           redis:
             secret: arn:aws:secretsmanager:XXXX
       jics:
         redis:
           secret: arn:aws:secretsmanager:XXXX
       session:
         tracker:
           redis:
             secret: arn:aws:secretsmanager:XXXX
       jics:
         queues:
           ts:
             redis:
               secret: arn:aws:secretsmanager:XXXX
       jcl:
         checkpoint:
           redis:
             secret: arn:aws:secretsmanager:XXXX
       gapwalk:
         files:
           locks:
             redis:
               secret: arn:aws:secretsmanager:XXXX
       blu4iv:
         locks:
           redis:
             secret: arn:aws:secretsmanager:XXXX
```

지원되는 Redis 보안 암호 키:


| 보안 키 | 보안 키 설명 | 
| --- | --- | 
| hostname | Redis 서버 호스트 이름입니다. | 
| 포트 | Redis 서버 포트입니다. | 
| 사용자 이름 | 사용자 이름입니다. | 
| 암호 | 암호입니다. | 

### SSL 암호 설정을 위한 Secrets Manager
<a name="ba-runtime-ssl-secrets-properties"></a>

`application-main.yml` 파일은 SSL 암호 설정에 대한 보안 암호 ARN을 참조할 수 있습니다. 다음은 지원되지 않습니다.
+ `spring.aws.client.ssl.secret`을 사용한 Gapwalk SSL 자격 증명

다음 예제에서는 YAML 파일에서 이러한 암호를 선언하는 방법을 보여줍니다.

```
spring:
   aws:
     client:
       ssl:
         secret: arn:aws:secretsmanager:XXXX
```


| 보안 키 | 보안 키 설명 | 
| --- | --- | 
| trustStorePassword | 트러스트 스토어 암호입니다. | 
| keyStorePassword | 키 스토어 암호입니다. | 

### IBM MQ 암호 설정을 위한 Secrets Manager
<a name="ba-runtime-IBMMQ-secrets-properties"></a>

`application-main.yml` 파일은 IBM MQ 설정에 대한 보안 암호 ARN을 참조할 수 있습니다. 다음은 지원되지 않습니다.
+ IBM MQ 연결은 목록으로 정의되며 자격 증명도 마찬가지입니다.

  `mq.queues.jmsMQQueueManagers[N].secret:`

  N은 첫 번째 연결에 대해 0에서 시작합니다.

다음 예제에서는 YAML 파일에서 이러한 암호를 선언하는 방법을 보여줍니다.

```
mq.queues.jmsMQQueueManagers[0].secret: {{Secret-0-ARN}} 
mq.queues.jmsMQQueueManagers[1].secret: {{Secret-1-ARN}}
```

보안 암호 ARN에 대한 자세한 내용은 [Secrets Manager 보안 암호란 무엇인가요?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/whats-in-a-secret.html)를 참조하세요.

보안 암호에 정의된 속성은 `jmsMQ` YAML 구성에서 해당 값을 재정의합니다.

`queueManager`가 보안 암호에 설정된 경우 YAML 파일의 `mq.queues.jmsMQQueueManagers[N].jmsMQQueueManager` 값을 재정의합니다.


| 보안 키 | 보안 키 설명 | 
| --- | --- | 
| queueManager | IBM MQ 대기열 관리자 이름입니다. | 
| appName | IBM MQ 애플리케이션 이름입니다. | 
| 채널 | IBM MQ 채널 이름입니다. | 
| host | IBM MQ 호스트 이름입니다. | 
| 포트 | IBM MQ 포트입니다. | 
| userId | IBM MQ 사용자 이름입니다. | 
| 암호 | IBM MQ 사용자 암호입니다. | 
| maxPoolSize | IBM MQ 최대 풀 크기입니다. | 
| sslCipherKey | IBM MQ SSL 암호 제품군입니다. | 

### JHDB 데이터베이스
<a name="JHDB-database"></a>

클라이언트 `application-jhdb.yml` 파일은 JHDB 메타데이터 데이터베이스의 보안 암호 ARNs을 참조할 수 있습니다. 각 데이터베이스 연결에는 고유한 이름과 연결 자격 증명이 포함된 해당 보안 암호 ARN이 필요합니다. 데이터베이스 이름은 쉼표로 구분된 목록에 정의되며, 개별 보안 암호 ARNs 각 데이터베이스 이름에 매핑됩니다.

```
spring:
   aws:
     jhdb:
       cnxs:
         datasources:
           names: DBD1,DBD2
           DBD1:  
             secret: arn:aws:secretsmanager:XXXX
           DBD2:
             secret: arn:aws:secretsmanager:XXXX
```

지원되는 클라이언트 데이터베이스 보안 키:


| 보안 키 | 보안 키 설명 | 
| --- | --- | 
| host | 호스트 이름 | 
| 포트 | 포트. | 
| dbname | 데이터베이스의 이름입니다. | 
| 사용자 이름 | 사용자 이름입니다. | 
| 암호 | 암호입니다. | 
| engine | 데이터베이스 엔진: Postgres(현재 Postgres만 지원). | 
| currentSchema | 사용할 특정 스키마입니다. | 