

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、、顧客 db など) ではBlusam、組み込み[データベースシークレット](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html)が使用されます。これにより、対応するデータベースからすべての関連フィールドが自動的に入力されます。

**注記**  
`dbname` キーはオプションで、データベースの設定によっては、シークレットに入るか入らないかが決まります。手動で追加することも、YAML ファイルに名前を指定して追加することもできます。

## 他のシークレット
<a name="ba-runtime-config-app-secrets-other"></a>

その他のシークレットは、パスワードが 1 つしかないリソース (特にパスワードで保護された 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 データベースシークレットキー:


| シークレットキー | シークレットキーの説明 | 
| --- | --- | 
| ホスト | ホスト名 | 
| port | ポート | 
| dbname | データベースの名前 | 
| username | ユーザー名 | 
| password | パスワード | 
| 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データベースシークレットキー:


| シークレットキー | シークレットキーの説明 | 
| --- | --- | 
| ホスト | ホスト名 | 
| port | ポート | 
| dbname | データベースの名前 | 
| username | ユーザー名 | 
| password | パスワード | 
| 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 という名前の 2 つのクライアントデータソースがあり、それぞれにデータベースと認証情報が設定された例です。

*dbname: hostdb*:

この例では、"host" データベースの名前はシークレットにはなく、代わりにここで指定されています。一方、"primary" データベースの名前はシークレットにあります。

サポートされているクライアントデータベースシークレットキー：


| シークレットキー | シークレットキーの説明 | 
| --- | --- | 
| ホスト | ホスト名 | 
| port | ポート | 
| dbname | データベースの名前 | 
| username | ユーザー名 | 
| password | パスワード | 
| 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)
+ port
+ dbname
+ currentSchema
+ username
+ password
+ 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 がサポートされます。
+ ホスト
+ port
+ dbname
+ currentSchema
+ username
+ password
+ 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
```

サポートされているデフォルトスーパー管理者データベースシークレットキー:


| シークレットキー | シークレットキーの説明 | 
| --- | --- | 
| username | ユーザー名。 | 
| password | パスワード。 | 

### 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 のクライアントシークレットは、AWS Secrets Manager で指定した ARN から取得されます。この設定により、プロバイダー名とそのシークレット ARN が動的に解決されるため、複数のプロバイダーをサポートできます。

サポートされる OAuth2 シークレットキー:


| シークレットキー | シークレットキーの説明 | 
| --- | --- | 
| client-secret | アプリケーションの登録プロセス中に認証サーバーによって生成されたシークレット。 | 

### Redis キャッシュのシークレットマネージャー
<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 認証情報
+ Bluesam は `spring.aws.client.bluesam.locks.redis.secret` を使用して 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 認証情報
+ Gapwalk ファイルは `spring.aws.client.gapwalk.files.locks.redis.secret` を使用して Redis 認証情報をロックします
+ Blu4IV は `spring.aws.client.blu4iv.locks.redis.secret` を使用して 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 サーバーのホスト名。 | 
| port | Redis サーバーのポート。 | 
| username | ユーザー名。 | 
| password | パスワード。 | 

### SSL パスワード設定のシークレットマネージャー
<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 パスワード設定のシークレットマネージャー
<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)を参照してください。

シークレットで定義されたプロパティは、YAML `jmsMQ` 設定の対応する値を上書きします。

シークレットで `queueManager`が設定されている場合、YAML ファイルの`mq.queues.jmsMQQueueManagers[N].jmsMQQueueManager`値が上書きされます。


| シークレットキー | シークレットキーの説明 | 
| --- | --- | 
| queueManager | IBM MQ キューマネージャー名。 | 
| appName | IBM MQ アプリケーション名。 | 
| channel | IBM MQ チャネル名。 | 
| ホスト | IBM MQ ホスト名。 | 
| port | IBM MQ ポート。 | 
| userId | IBM MQ ユーザー名。 | 
| password | 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
```

サポートされているクライアントデータベースシークレットキー：


| シークレットキー | シークレットキーの説明 | 
| --- | --- | 
| ホスト | ホスト名。 | 
| port | ポート。 | 
| dbname | データベースの名前。 | 
| username | ユーザー名。 | 
| password | パスワード。 | 
| engine | データベースエンジン: Postgres(Postgres のみをサポートするようになりました）。 | 
| currentSchema | 使用する特定のスキーマ。 | 