

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# クライアントと の間の相互 TLS を設定する AWS CloudHSM (推奨)
<a name="getting-started-setup-mtls"></a>

以下のトピックでは、クライアントと 間の相互 Transport Layer Security (mTLS) を有効にするために完了する必要があるステップについて説明します AWS CloudHSM。

**考慮事項**
+ 現在、この機能は hsm2m.medium でのみ利用できます。HSM タイプの詳細については、「[AWS CloudHSM クラスターモード](cluster-hsm-types.md)」を参照してください。
+ で使用する AWS CloudHSM キーストアでは、mTLS はサポートされていません AWS Key Management Service。

**Topics**
+ [ステップ 1. トラストアンカーを作成して HSM に登録する](#setup-mtls-create-and-register-trust-anchor)
+ [ステップ 2. の mTLS を有効にする AWS CloudHSM](#getting-start-setup-mtl-sdk)
+ [ステップ 3. の mTLS 適用を設定する AWS CloudHSM](#getting-start-setup-mtls-enforcement)

## ステップ 1. トラストアンカーを作成して HSM に登録する
<a name="setup-mtls-create-and-register-trust-anchor"></a>

mTLS を有効にする前に、トラストアンカーを作成して HSM に登録する必要があります。これは 2 ステップのプロセスです。

**Topics**
+ [プライベートキーを使用して、自己署名ルート証明書を作成します。](#setup-mtls-create-trust-anchor)
+ [トラストアンカーを HSM に登録する](#setup-mtls-register-trust-anchor)

### プライベートキーを使用して、自己署名ルート証明書を作成します。
<a name="setup-mtls-create-trust-anchor"></a>

**注記**  
実稼働用クラスターでは、作成しようとしているキーはランダム性の信頼できるソースを使用して安全な方法で作成されている必要があります。安全なオフサイトあるいはオフライン HSM またはその同等を使用することが推奨されます。キーを安全に保存します。  
開発とテストでは、任意の便利なツール (OpenSSL など) を使用してキーを作成し、ルート証明書に自己署名できます。[mTLS を有効にする AWS CloudHSM](#getting-start-setup-mtl-sdk) でクライアント証明書に署名するには、 キーとルート証明書が必要です。

次の例は、[OpenSSL](https://www.openssl.org/) を使用してプライベートキーと自己署名ルート証明書を作成する方法を示しています。

**Example — OpenSSL でプライベートキーを作成する**  
次のコマンドを使用して、AES-256 アルゴリズムで暗号化された 4096 ビット RSA キーを作成します。この例を使用するには、*<mtls\$1ca\$1root\$11.key>* を、キーの保存先のファイル名に置き換えてください。  

```
$ openssl genrsa -out <mtls_ca_root_1.key> -aes256 4096
Generating RSA private key, 4096 bit long modulus
.....................................+++
.+++
e is 65537 (0x10001)
Enter pass phrase for mtls_ca_root_1.key:
Verifying - Enter pass phrase for mtls_ca_root_1.key:
```

**Example – OpenSSL を使用して自己署名ルート証明書を作成する**  
次のコマンドを使用して、作成したプライベートキーから `mtls_ca_root_1.crt`という名前の自己署名ルート証明書を作成します。証明書の有効期間は 25 年間 (9130 日) です。画面の指示を読み、プロンプトに従います。  

```
$ openssl req -new -x509 -days 9130 -key mtls_ca_root_1.key -out mtls_ca_root_1.crt
Enter pass phrase for mtls_ca_root_1.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
```

### トラストアンカーを HSM に登録する
<a name="setup-mtls-register-trust-anchor"></a>

自己署名ルート証明書を作成した後、管理者はそれを信頼アンカーとして AWS CloudHSM クラスターに登録する必要があります。

**HSM にトラストアンカーを登録するには**

1. CloudHSM CLI を起動するには、次のコマンドを使用します。

------
#### [ Linux ]

   ```
   $ /opt/cloudhsm/bin/cloudhsm-cli interactive
   ```

------
#### [ Windows ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
   ```

------

1. CloudHSM CLI を使用して、管理者としてログインします。

   ```
   aws-cloudhsm > login --username <admin> --role admin
   Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "<admin>",
       "role": "admin"
     }
   }
   ```

1. ** [CloudHSM CLI でトラストアンカーを登録する](cloudhsm_cli-cluster-mtls-register-trust-anchor.md) ** コマンドを使用してトラストアンカーを登録します。詳細については、次の例を参照するか、または **help cluster mtls register-trust-anchor** コマンドを使用してください。

**Example — AWS CloudHSM クラスターにトラストアンカーを登録する**  
以下の例では、CloudHSM CLI で **cluster mtls register-trust-anchor** コマンドを使用して、トラストアンカーを HSM に登録する方法を示しています。このコマンドを使用するには、管理者が HSM にログインしている必要があります。以下の値を自分の値に置き換えてください。  

```
aws-cloudhsm > cluster mtls register-trust-anchor --path </path/mtls_ca_root_1.crt>
{
  "error_code": 0,
  "data": {
    "trust_anchor": {
      "certificate-reference": "0x01",
      "certificate": "<PEM Encoded Certificate>",
      "cluster-coverage": "full"
    }
  }
}
```
AWS CloudHSM では、中間証明書をトラストアンカーとして登録できます。このような場合は、PEM でエンコードされた証明書チェーンファイル全体を、証明書を階層順にして、HSM に登録する必要があります。  
 AWS CloudHSM は、6980 バイトの証明書チェーンをサポートします。
トラストアンカーを正常に登録したら、**cluster mtls list-trust-anchors** コマンドを実行して、以下に示すように、現在登録されているトラストアンカーを確認できます。  

```
aws-cloudhsm > cluster mtls list-trust-anchors
{
  "error_code": 0,
  "data": {
    "trust_anchors": [
      {
        "certificate-reference": "0x01",
        "certificate": "<PEM Encoded Certificate>",
        "cluster-coverage": "full"
      }
    ]
  }
}
```
 hsm2m.medium に登録できるトラストアンカーの最大数は 2 です。

## ステップ 2. の mTLS を有効にする AWS CloudHSM
<a name="getting-start-setup-mtl-sdk"></a>

の mTLS を有効にするには AWS CloudHSM、「Create and [register a trust anchor on the HSM](#setup-mtls-create-and-register-trust-anchor)」で生成したルート証明書によって署名されたプライベートキーとクライアント証明書を作成し、任意の Client SDK 5 設定ツールを使用してプライベートキーパスとクライアント証明書チェーンパスを設定する必要があります。

**Topics**
+ [プライベートキーとクライアント証明書チェーンを作成する](#create-client-ssl)
+ [クライアント SDK 5 の mTLS を設定する](#enable-ssl-5)

### プライベートキーとクライアント証明書チェーンを作成する
<a name="create-client-ssl"></a>

**Example — OpenSSL でプライベートキーを作成する**  
次のコマンドを使用して、4,096 ビット RSA キーを作成します。この例を使用するには、*<ssl-client.key>* を、キーの保存先のファイル名に置き換えてください。  

```
$ openssl genrsa -out <ssl-client.key> 4096
Generating RSA private key, 4096 bit long modulus
.....................................+++
.+++
e is 65537 (0x10001)
```

**Example – OpenSSL を使用して証明書署名リクエスト (CSR) を生成する**  
次のコマンドを使用して、作成したプライベートキーから証明書署名リクエスト (CSR) を生成します。画面の指示を読み、プロンプトに従います。  

```
$ openssl req -new -key <ssl-client.key> -out <ssl-client.csr>
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
```

**Example – ルート証明書を使用して CSR に署名する**  
次のコマンドを使用して、[[トラストアンカーを作成して HSM に登録する]](#setup-mtls-create-and-register-trust-anchor) で作成および登録したルート証明書を使用して CSR に署名し、`ssl-client.crt` という名前のクライアント証明書を作成します。証明書の有効期間は 5 年間 (1826 日) です。  

```
$ openssl x509 -req -days 1826 -in <ssl-client.csr> -CA <mtls_ca_root_1.crt> -CAkey <mtls_ca_root_1.key> -CAcreateserial -out <ssl-client.crt>
```

**Example – クライアント証明書チェーンを作成する**  
次のコマンドを使用して、[[トラストアンカーを作成して HSM に登録する]](#setup-mtls-create-and-register-trust-anchor) で作成および登録したクライアント証明書とルート証明書を組み合わせて、`ssl-client.pem` という名前のクライアント証明書チェーンを作成します。これは次の手順での設定に使用されます。  

```
$ cat <ssl-client.crt> <mtls_ca_root_1.crt> > <ssl-client.pem>
```
 [[トラストアンカーを作成して HSM に登録する]](#setup-mtls-create-and-register-trust-anchor) で中間証明書をトラストアンカーとして登録した場合は、必ずクライアント証明書と証明書チェーン全体を組み合わせてクライアント証明書チェーンを作成してください。

### クライアント SDK 5 の mTLS を設定する
<a name="enable-ssl-5"></a>

任意のクライアント SDK 5 設定ツールを使用して、適切なクライアントキーパスとクライアント証明書チェーンパスを指定することで、相互 TLS を有効にします。クライアント SDK 5 の設定ツールの詳細については、「[AWS CloudHSM クライアント SDK 5 設定ツール](configure-sdk-5.md)」 を参照してください。

------
#### [ PKCS \$111 library ]

**Linux のクライアント SDK 5 で TLS クライアントと HSM の相互認証にカスタム証明書とキーを使用するには**

1. キーと証明書を適切なディレクトリにコピーします。

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   $ sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  構成ツールで `ssl-client.pem`、`ssl-client.key` を指定します。

   ```
   $ sudo /opt/cloudhsm/bin/configure-pkcs11 \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

**Windows のクライアント SDK 5 で TLS クライアントと HSM の相互認証にカスタム証明書とキーを使用するには**

1. キーと証明書を適切なディレクトリにコピーします。

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  PowerShell インタプリタでは、構成ツールを使用して `ssl-client.pem` と `ssl-client.key` を指定します。

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------
#### [ OpenSSL Dynamic Engine ]

**Linux のクライアント SDK 5 で TLS クライアントと HSM の相互認証にカスタム証明書とキーを使用するには**

1. キーと証明書を適切なディレクトリにコピーします。

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  構成ツールで `ssl-client.pem`、`ssl-client.key` を指定します。

   ```
   $ sudo /opt/cloudhsm/bin/configure-dyn \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

------
#### [ Key Storage Provider (KSP) ]

**Windows のクライアント SDK 5 で TLS クライアントと HSM の相互認証にカスタム証明書とキーを使用するには**

1. キーと証明書を適切なディレクトリにコピーします。

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  PowerShell インタプリタでは、構成ツールを使用して `ssl-client.pem` と `ssl-client.key` を指定します。

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-ksp.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------
#### [ JCE provider ]

**Linux のクライアント SDK 5 で TLS クライアントと HSM の相互認証にカスタム証明書とキーを使用するには**

1. キーと証明書を適切なディレクトリにコピーします。

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  構成ツールで `ssl-client.pem`、`ssl-client.key` を指定します。

   ```
   $ sudo /opt/cloudhsm/bin/configure-jce \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

**Windows のクライアント SDK 5 で TLS クライアントと HSM の相互認証にカスタム証明書とキーを使用するには**

1. キーと証明書を適切なディレクトリにコピーします。

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  PowerShell インタプリタでは、構成ツールを使用して `ssl-client.pem` と `ssl-client.key` を指定します。

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-jce.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------
#### [ CloudHSM CLI ]

**Linux のクライアント SDK 5 で TLS クライアントと HSM の相互認証にカスタム証明書とキーを使用するには**

1. キーと証明書を適切なディレクトリにコピーします。

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  構成ツールで `ssl-client.pem`、`ssl-client.key` を指定します。

   ```
   $ sudo /opt/cloudhsm/bin/configure-cli \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

**Windows のクライアント SDK 5 で TLS クライアントと HSM の相互認証にカスタム証明書とキーを使用するには**

1. キーと証明書を適切なディレクトリにコピーします。

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  PowerShell インタプリタでは、構成ツールを使用して `ssl-client.pem` と `ssl-client.key` を指定します。

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-cli.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------

## ステップ 3. の mTLS 適用を設定する AWS CloudHSM
<a name="getting-start-setup-mtls-enforcement"></a>

クライアント SDK 5 の設定ツールを使用して を設定した後、クライアントと 間の接続 AWS CloudHSM はクラスター内の相互 TLS になります。ただし、設定ファイルからプライベートキーパスとクライアント証明書チェーンパスを削除すると、接続が再び通常の TLS になります。CloudHSM CLI を使用して、次の手順を実行してクラスター内の mtls 強制を設定できます。

1. CloudHSM CLI を起動するには、次のコマンドを使用します。

------
#### [ Linux ]

   ```
   $ /opt/cloudhsm/bin/cloudhsm-cli interactive
   ```

------
#### [ Windows ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
   ```

------

1. CloudHSM CLI を使用して、管理者としてログインします。

   ```
   aws-cloudhsm > login --username <admin> --role admin
   Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "<admin>",
       "role": "admin"
     }
   }
   ```
**注記**  
 1. CloudHSM CLI が設定されていることを確認し、mTLS 接続で CloudHSM CLI を起動します。  
 2. mTLS 適用を設定する前に、**admin** としてのユーザー名を持つ管理者が HSM にログインする必要があります。

1. ** [CloudHSM CLI で mTLS 適用レベルを設定する](cloudhsm_cli-cluster-mtls-set-enforcement.md) ** コマンドを使用して適用を設定します。詳細については、次の例を参照するか、または **help cluster mtls set-enforcement** コマンドを使用してください。  
**Example – AWS CloudHSM クラスターで mTLS 強制を設定する**  

   次の例は、CloudHSM CLI で **cluster mtls set-enforcement** コマンドを使用して HSM で mTLS 適用を設定する方法を示しています。このコマンドを使用するには、ユーザー名が admin の管理者が HSM にログインする必要があります。

   ```
   aws-cloudhsm > cluster mtls set-enforcement --level cluster
   {
     "error_code": 0,
     "data": {
       "message": "Mtls enforcement level set to Cluster successfully"
     }
   }
   ```
**警告**  
クラスターで mTLS の使用を適用すると、既存の非 mTLS 接続はすべて削除され、mTLS 証明書を持つクラスターにのみ接続できます。