

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

# の開始方法 AWS CloudHSM
<a name="getting-started"></a>

以下のトピックは、 でクラスターを作成、初期化、アクティブ化するのに役立ちます AWS CloudHSM。これらの手順を完了したら、ユーザーやクラスターを管理できるほか、付属のソフトウェアライブラリを使用して、暗号化オペレーションを実行できるようになります。最適なエクスペリエンスを得るには、一覧表示されている順序でトピックに従ってください。

**Topics**
+ [の IAM 管理グループを作成する AWS CloudHSM](create-iam-user.md)
+ [の仮想プライベートクラウド (VPC) を作成する AWS CloudHSM](create-vpc.md)
+ [でクラスターを作成する AWS CloudHSM](create-cluster.md)
+ [でクラスターのセキュリティグループを確認する AWS CloudHSM](configure-sg.md)
+ [とやり取りするための Amazon EC2 クライアントインスタンスを起動する AWS CloudHSM](launch-client-instance.md)
+ [のクライアント Amazon EC2 インスタンスセキュリティグループを設定する AWS CloudHSM](configure-sg-client-instance.md)
+ [で HSM を作成する AWS CloudHSM](create-hsm.md)
+ [でクラスターの HSM のアイデンティティと信頼性を検証する AWS CloudHSM (オプション)](verify-hsm-identity.md)
+ [でクラスターを初期化する AWS CloudHSM](initialize-cluster.md)
+ [CloudHSM CLI をインストールして設定する](gs_cloudhsm_cli-install.md)
+ [でクラスターをアクティブ化する AWS CloudHSM](activate-cluster.md)
+ [クライアントと の間の相互 TLS を設定する AWS CloudHSM (推奨)](getting-started-setup-mtls.md)
+ [でキーを作成して使用する AWS CloudHSM](create-apps.md)

# の IAM 管理グループを作成する AWS CloudHSM
<a name="create-iam-user"></a>

の使用を開始するための最初のステップ AWS CloudHSM は、IAM アクセス許可を設定することです。

[ベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users)として、 を使用して AWSを AWS アカウントのルートユーザー 操作しないでください AWS CloudHSM。代わりに、 AWS Identity and Access Management (IAM) を使用して IAM ユーザー、IAM ロール、またはフェデレーティッドユーザーを作成します。セクション「[IAM ユーザーおよび管理者グループの作成](#create-iam-admin)」の手順に従って管理者グループを作成し、[**AdministratorAccess**] ポリシーをそれにアタッチします。次に新しい管理者ユーザーを作成し、ユーザーをグループに追加します。必要に応じて、追加のユーザーをグループに追加します。追加した各ユーザーは､グループから [**AdministratorAccess**] ポリシーを継承します。

もう 1 つのベストプラクティスは、実行に必要なアクセス許可のみを持つ AWS CloudHSM 管理者グループを作成することです AWS CloudHSM。必要に応じて個々のユーザーをこのグループに追加します。 AWS へのフルアクセスではなく、グループにアタッチされた制限付きのアクセス許可が各ユーザーに継承されます。次の[のカスタマー管理ポリシー AWS CloudHSM](identity-access-management.md#permissions-for-cloudhsm)セクションには、 AWS CloudHSM 管理者グループにアタッチする必要があるポリシーが含まれています。

AWS CloudHSM は、 AWS アカウントの[サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)を定義します。サービスにリンクされたロールは現在、アカウントが AWS CloudHSM イベントを記録できるようにするアクセス許可を定義します。ロールは、 によって自動的に作成 AWS CloudHSM することも、手動で作成することもできます。ロールを編集することはできませんが、削除することはできます。詳細については、「[のサービスにリンクされたロール AWS CloudHSM](service-linked-roles.md)」を参照してください。

## IAM ユーザーおよび管理者グループの作成
<a name="create-iam-admin"></a>

IAM ユーザーと、その管理者グループの作成から開始します。

### にサインアップする AWS アカウント
<a name="sign-up-for-aws"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

### 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

にサインアップしたら AWS アカウント、日常的なタスクにルートユーザーを使用しないように AWS アカウントのルートユーザー、 を保護し AWS IAM アイデンティティセンター、 を有効にして管理ユーザーを作成します。

**を保護する AWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、「*AWS サインイン ユーザーガイド*」の「[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)」を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[AWS IAM アイデンティティセンターの有効化](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、「 *AWS IAM アイデンティティセンター ユーザーガイド*」の[「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM Identity Center ユーザーを使用してサインインする方法については、*AWS サインイン 「 ユーザーガイド*[」の AWS 「 アクセスポータルにサインイン](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)する」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)」を参照してください。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[グループを追加する](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)」を参照してください。

IAM ユーザーグループにアタッチできる のポリシーの例については、 AWS CloudHSM 「」を参照してください[の ID とアクセスの管理 AWS CloudHSM](identity-access-management.md)。

# の仮想プライベートクラウド (VPC) を作成する AWS CloudHSM
<a name="create-vpc"></a>

のクラスターには Virtual Private Cloud (VPC) が必要です AWS CloudHSM。まだ VPC を作成していない場合は、このトピックのステップに従って、VPC を作成します。

**注記**  
これらの手順に従うと、パブリックサブネットとプライベートサブネットが作成されます。

**VPC を作成するには**

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

1. ナビゲーションバーで、リージョンセレクタを使用して、 [AWSAWS CloudHSM が現在サポートされているリージョン](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloudhsm_region)のいずれかを選択します。

1. **VPC を作成** ボタンを選択します。

1. **[Resources to create]** (作成するリソース) で、**[VPC and more]** (VPC など) を選択します。

1. [**名前タグの自動生成**] に、「**CloudHSM**」などの識別可能な名前を入力します。

1. **IPv6 CIDR ブロック**の場合は、**Amazon が提供する IPv6 CIDR ブロック**を選択して HSM に IPv6 接続を使用し、クラスターに IPv6 CIDR ブロックを AWS 割り当てます。 HSMs この設定は、デュアルスタックのネットワークタイプをサポートします。IPv6 接続が必要ない場合は、デフォルト設定のままにします。

1. 他のすべてのオプションはデフォルト設定のままにします。

1. **VPC を作成** を選択します。

1. VPC が作成されたら、**VPC を表示** を選択して、先ほど作成した VPC を表示します。

# でクラスターを作成する AWS CloudHSM
<a name="create-cluster"></a>

クラスターは、個々のハードウェアセキュリティモジュール (HSMs。 AWS CloudHSM は、論理単位として機能するように各クラスターの HSMs を同期します。 は、*hsm1.medium *と *hsm2m.medium* の 2 種類の HSMs AWS CloudHSM を提供します。クラスターを作成するときに、2 つのうちのどちらをクラスターに含めるかを選択します。各 HSM タイプとクラスターモードの違いの詳細については、「[AWS CloudHSM クラスターモード](cluster-hsm-types.md)」を参照してください。

クラスターを作成すると、 はユーザーに代わってクラスターのセキュリティグループ AWS CloudHSM を作成します。このセキュリティグループは、クラスター内の HSM へのネットワークアクセスを制御します。これにより、セキュリティグループの Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからのみインバウンド接続ができます。デフォルトでは、セキュリティグループにインスタンスは一切含まれていません。後で、[クライアントインスタンスを起動](launch-client-instance.md)し、[クラスターのセキュリティグループを設定](configure-sg.md)して、HSM との接続および通信を可能にします。

**考慮事項**
+ 以下は、 AWS CloudHSMでクラスターを作成する際の考慮事項です。
  + クラスターを作成すると、 は AWSServiceRoleForCloudHSM という名前[のサービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) AWS CloudHSM を作成します。がロールを作成 AWS CloudHSM できない場合、またはロールがまだ存在しない場合は、クラスターを作成できない可能性があります。詳細については、「[AWS CloudHSM クラスター作成の失敗の解決](troubleshooting-create-cluster.md)」を参照してください。サービスにリンクされたロールの詳細については、「[のサービスにリンクされたロール AWS CloudHSM](service-linked-roles.md)」を参照してください。
  +  [AWS CloudHSM デュアルスタックエンドポイント](https://docs.aws.amazon.com/general/latest/gr/cloudhsm.html) (cloudhsmv2.*<region>*.api.aws など) を使用している場合は、IAM ポリシーが更新されて IPv6 が処理されていることを確認します。詳細については、「[Control API access with IAM policies](https://docs.aws.amazon.com/cloudhsm/latest/userguide/ip-access.html)」を参照してください。

[AWS CloudHSM コンソール](https://console.aws.amazon.com/cloudhsm/)、[AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)、または AWS CloudHSM API からクラスターを作成できます。

クラスター引数と APIs「」を参照してください。 [https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/create-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/create-cluster.html) AWS CLI 

------
#### [ Console ]

**クラスターを作成するには (コンソール)**

1. [https://console.aws.amazon.com/cloudhsm/home](https://console.aws.amazon.com/cloudhsm/home) で AWS CloudHSM コンソールを開きます。

1. ナビゲーションバーで、リージョンセレクタを使用して、[AWS CloudHSM が現在サポートされているAWS リージョン](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloudhsm_region)のいずれかを選択します。

1. **[クラスターを作成]** を選択します。

1. [**Cluster configuration**] セクションで、以下の操作を実行します。

   1. **VPC** では、[の仮想プライベートクラウド (VPC) を作成する AWS CloudHSM](create-vpc.md) で作成した VPC を選択します。

   1. **Availability Zone(s)** では、各アベイラビリティーゾーンの横にある、作成したプライベートサブネットを選択します。
**注記**  
が特定のアベイラビリティーゾーンでサポート AWS CloudHSM されていない場合でも、クラスター内のすべての HSMs 間で自動的に負荷分散されるため AWS CloudHSM 、パフォーマンスには影響しません。アベイラビリティーゾーンのサポートについては*AWS 全般のリファレンス*、[AWS CloudHSM 「」の「リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloudhsm_region)」を参照してください AWS CloudHSM。

   1. **H[SM タイプ]** では、クラスター内に作成できる HSM タイプとクラスター使用するモードを選択します。各リージョンでサポートされている HSM タイプについては、[AWS CloudHSM 料金計算ツール](https://aws.amazon.com/cloudhsm/pricing/) をご覧ください。
**重要**  
クラスターの作成後は、クラスターモードを変更できません。どのタイプとモードがユースケースに適しているかについては、[AWS CloudHSM クラスターモード](cluster-hsm-types.md) を参照してください。

   1. **[ネットワークタイプ]** では、HSM にアクセスするための IP アドレスプロトコルを選択します。IPv4 を選択すると、アプリケーションと HSM 間の通信は IPv4 のみに制限されます。これはデフォルトのオプションです。デュアルスタックを選択すると、IPv4 と IPv6 の両方の通信が有効になります。デュアルスタックを使用するには、VPC とサブネットの設定に IPv4 と IPv6 の CIDR の両方を追加します。ネットワークタイプは初期設定後に変更するのが難しいです。変更するには、既存クラスターのバックアップを作成し、目的のネットワークタイプを指定した新しいクラスターへ復元します。詳細については、[「バックアップからの AWS CloudHSM クラスターの作成](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)」を参照してください。

   1. **[クラスターモード]** では、新しいクラスターを作成するか、既存のバックアップから復元するかを指定します。
      + 非 FIPS モードのクラスターのバックアップは、非 FIPS モードのクラスターを復元するためにのみ使用できます。
      + FIPS モードのクラスターのバックアップは、FIPS モードのクラスターを復元するためにのみ使用できます。

1. [**次へ**] を選択します。

1. サービスがバックアップを保持する期間を指定します。

   1. デフォルトの保存期間である 90 日を受け入れるか、7 ～ 379 日の間に新しい値を入力します。このサービスは、ここで指定した値よりも古いこのクラスター内のバックアップを自動的に削除します。これは後で変更できます。詳細については、「[バックアップ保持の設定](manage-backup-retention.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. (オプション) タグキーとオプションのタグ値を入力します。クラスターに複数のタグを追加するには、**タグの追加** を選択します。

1. [**Review**] (レビュー) を選択します。

1. クラスター設定を確認し、[**Create cluster (クラスターの作成)**] を選択します。

クラスターの作成が失敗した場合、 AWS CloudHSM サービスにリンクされたロールの問題に関連している可能性があります。障害を解決するためのヘルプについては、「[AWS CloudHSM クラスター作成の失敗の解決](troubleshooting-create-cluster.md)」を参照してください。

------
#### [ AWS CLI ]

**クラスターを作成するには ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ コマンドラインプロンプトで、**[create-cluster](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/create-cluster.html)** コマンドを実行します。HSM インスタンスタイプ、バックアップ保持期間、HSM を作成するサブネットのサブネット ID を指定します。作成したプライベートサブネットのサブネット ID を使用します。サブネットは、アベイラビリティーゾーンごとに 1 つだけ指定できます。

  ```
  $ aws cloudhsmv2 create-cluster --hsm-type hsm2m.medium \
                      --backup-retention-policy Type=DAYS,Value=<number of days> \
                      --subnet-ids <subnet ID> \
                      --mode <FIPS> \
                      --network-type <IPV4>
  
  {
      "Cluster": {
          "BackupPolicy": "DEFAULT",
          "BackupRetentionPolicy": {
              "Type": "DAYS",
              "Value": 90
           },
          "VpcId": "vpc-50ae0636",
          "SubnetMapping": {
              "us-west-2b": "subnet-49a1bc00",
              "us-west-2c": "subnet-6f950334",
              "us-west-2a": "subnet-fd54af9b"
          },
          "SecurityGroup": "sg-6cb2c216",
          "HsmType": "hsm2m.medium",
          "NetworkType": "IPV4",
          "Certificates": {},
          "State": "CREATE_IN_PROGRESS",
          "Hsms": [],
          "ClusterId": "cluster-igklspoyj5v",
          "ClusterMode": "FIPS",
          "CreateTimestamp": 1502423370.069
      }
  }
  ```
**注記**  
`ClusterMode` は、hsm1.medium を除くすべての hsm タイプに必要なパラメータです。`--mode`:  

  ```
  $ aws cloudhsmv2 create-cluster --hsm-type hsm2m.medium \
    				--backup-retention-policy Type=DAYS,Value=<number of days> \
    				--subnet-ids <subnet ID> \
  				--mode NON_FIPS
  ```

クラスターの作成が失敗した場合、 AWS CloudHSM サービスにリンクされたロールの問題に関連している可能性があります。障害を解決するためのヘルプについては、「[AWS CloudHSM クラスター作成の失敗の解決](troubleshooting-create-cluster.md)」を参照してください。

------
#### [ AWS CloudHSM API ]

**クラスターを作成するには (AWS CloudHSM API)**
+ [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateCluster.html) リクエストを送信します。HSM インスタンスタイプ、バックアップ保持ポリシー、HSM を作成するサブネットのサブネット ID を指定します。作成したプライベートサブネットのサブネット ID を使用します。サブネットは、アベイラビリティーゾーンごとに 1 つだけ指定できます。

クラスターの作成が失敗した場合、 AWS CloudHSM サービスにリンクされたロールの問題に関連している可能性があります。障害を解決するためのヘルプについては、「[AWS CloudHSM クラスター作成の失敗の解決](troubleshooting-create-cluster.md)」を参照してください。

------

# でクラスターのセキュリティグループを確認する AWS CloudHSM
<a name="configure-sg"></a>

 クラスターを作成するか、HSM をクラスターに追加すると、 は名前を持つセキュリティグループをまだ存在しない`cloudhsm-cluster-<clusterID>-sg`場合は AWS CloudHSM 作成します。このクラスターセキュリティグループには、ポート 2,223〜2,225 経由のインバウンド通信とアウトバウンド通信を許可する事前に設定された TCP ルールが含まれます。この SG により、EC2 インスタンスは VPC を使用してクラスター内の HSM と通信できます。

**警告**  
 事前設定された TCP ルールを削除または変更しないでください。このルールは、クラスターセキュリティグループに追加されています。このルールによって、接続の問題と HSM への不正アクセスを防ぐことができます。
 クラスターのセキュリティグループに追加することで、HSM への不正アクセスを防ぐことができます。セキュリティグループ内のインスタンスにアクセスできるユーザーはいずれも、HSM にアクセスできます。ほとんどのオペレーションでは、ユーザーは HSM にログインする必要があります。ただし、認証せずに HSM をゼロ化することもできます。ゼロ化すると、キーマテリアル、証明書などのデータは破棄されます。ゼロ化した場合、最後にバックアップしてから作成または変更したデータは失われ、復旧することはできません。不正アクセスを防ぐために、デフォルトのセキュリティグループのインスタンスの変更またはアクセスは、信頼されている管理者のみ行うことができることを確認します。  
 hsm2m.medium クラスターには、権限のないユーザーがクラスターに接続することを制限する mTLS 機能が導入されています。許可されていないユーザーは、ゼロ化を試みる前にクラスターに正常に接続するために有効な mTLS 認証情報が必要です。

 次のステップでは、[Amazon EC2 インスタンスを起動](launch-client-instance.md) し、そのインスタンスに [クラスターセキュリティグループを接続](configure-sg-client-instance.md) して、HSM に接続します。

# とやり取りするための Amazon EC2 クライアントインスタンスを起動する AWS CloudHSM
<a name="launch-client-instance"></a>

 AWS CloudHSM クラスターと HSM インスタンスを操作して管理するには、HSMs の Elastic Network Interface と通信できる必要があります。これを行う最も簡単な方法として、同じ VPC 内の EC2 インスタンスをクラスターとして使用できます。以下の AWS リソースを使用してクラスターに接続することもできます。
+ [Amazon VPC ピアリング](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html)
+ [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)
+ [VPN 接続](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpn-connections.html)

**注記**  
このガイドでは、EC2 インスタンスを AWS CloudHSM クラスターに接続する方法の簡単な例を示します。安全なネットワーク設定に関するベストプラクティスについては、「[クラスターへの安全なアクセス](bp-cluster-management.md#bp-secure-access)」を参照してください。

 この AWS CloudHSM ドキュメントでは、通常、クラスターを作成するのと同じ VPC とアベイラビリティーゾーン (AZ) で EC2 インスタンスを使用していることを前提としています。

**EC2 インスタンスを作成するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で **EC2 ダッシュボード** を開きます。

1. **[Launch instance]** (インスタンスを起動) を選択します。ドロップダウンメニューから、[**インスタンスの起動**] を選択します。

1. [**名前**] フィールドに、EC2 インスタンスの名前を入力します。

1. [**アプリケーションおよび OS イメージ (Amazon マシンイメージ)] ** セクションで、CloudHSM がサポートするプラットフォームに対応する Amazon マシンイメージ (AMI) を選択します。詳細については、「[AWS CloudHSM クライアント SDK 5 でサポートされているプラットフォーム](client-supported-platforms.md)」を参照してください。

1. **インスタンスタイプ]** セクションで、インスタンスタイプを選択します。

1. [**キーペア**] セクションで、既存のキーペアを使用するか、[**新しいキーペアの作成**] を選択して次の手順を実行します。

   1. [**キーペア名**] に、新しいキーペアの名前を入力します。

   1. [**キーペアタイプ**] で、キーペアタイプを選択します。

   1. [**プライベートキーファイル形式**] で、プライベートキーファイルの形式を選択します。

   1. **[Create key pair]** (キーペアを作成) を選択します。

   1. プライベートキーファイルをダウンロードして保存します。
**重要**  
このタイミングでのみ、プライベートキーファイルを保存できます。ダウンロードしたファイルを安全な場所に保存します。インスタンスの起動時に、キーペアの名前を指定する必要があります。さらに、インスタンスに接続するたびに対応するプライベートキーを提供し、セットアップ時に作成したキーペアを選択する必要があります。

1. [**ネットワーク設定]** で [**編集**] を選択します。

1. **VPC** には、クラスター用に以前に作成した VPC を選択します。

1. [**サブネット**] で、VPC で以前に作成したパブリックサブネットを選択します。

1. **[自動割り当てパブリック IP]** で、**[有効]** を選択します。

1. **[自動割り当て IPv6 IP]** では、**[有効]** を選択すると、クラスターで IPv6 接続を使用できるようになり、デュアルスタックのネットワークタイプを利用できます。このオプションを有効にする場合は、Amazon EC2 インスタンスから HSM への IPv6 送信トラフィックを許可するため、このインスタンスのセキュリティグループのルール、VPC およびサブネットのルートテーブル、ネットワーク ACL を更新してください。

1. [Select an existing security group (既存のセキュリティグループの選択)] を選択します。

1. [**共通セキュリティグループ**] では、ドロップダウンメニューからデフォルトのセキュリティグループを選択します。

1. **ストレージの設定** では、ドロップダウンメニューを使用してストレージ設定を選択します。

1. 「**概要**」ウィンドウで「**インスタンスを起動**」を選択します。
**注記**  
このステップを完了すると、EC2 インスタンスの作成プロセスが開始されます。

Linux Amazon EC2 クライアントを作成する方法の詳細については、[ Amazon EC2 Linux インスタンスの開始方法](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) を参照してください。実行中のクライアントへの接続については、次のトピックを参照してください。
+ [SSH を使用した Linux インスタンスへの接続](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)
+ [PuTTY を使用した Windows から Linux インスタンスへの接続](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html)

 Amazon EC2 ユーザーガイドは、Amazon EC2 インスタンスを設定および使用するための詳細な手順が含まれます。次のリストは、Linux と Windows Amazon EC2 クライアントで使用できるドキュメントの概要を示します。
+ Linux Amazon EC2 クライアントを作成するには、[Amazon EC2 Linux インスタンスの開始方法](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) を参照してください。

  実行中のクライアントへの接続については、次のトピックを参照してください。
  + [SSH を使用した Linux インスタンスへの接続](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)
  + [PuTTY を使用した Windows から Linux インスタンスへの接続](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html)
+  Windows Amazon EC2 クライアントを作成するには、[ Amazon EC2 Windows インスタンスの開始方法](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html) を参照してください。Windows クライアントに接続する方法については、「[Windows インスタンスへの接続](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)」を参照してください。

**注記**  
 EC2 インスタンスは、このガイドに含まれるすべての AWS CLI コマンドを実行できます。 AWS CLI がインストールされていない場合は、「[AWS Command Line Interface](https://aws.amazon.com/cli/)」からダウンロードすることができます。Windows を使用している場合は、64 ビットまたは 32 ビットの Windows インストーラをダウンロードして実行できます。Linux または macOS を使用している場合は、pip を使用して CLI をインストールできます。

# のクライアント Amazon EC2 インスタンスセキュリティグループを設定する AWS CloudHSM
<a name="configure-sg-client-instance"></a>

でクラスターの Amazon EC2 インスタンスを起動すると AWS CloudHSM、デフォルトの Amazon VPC セキュリティグループに関連付けられます。このトピックでは、クラスターセキュリティグループを EC2 インスタンスに関連付ける方法について説明します。この関連付けにより、EC2 インスタンスで実行されている AWS CloudHSM クライアントが HSMsと通信できるようになります。EC2 インスタンスを AWS CloudHSM クラスターに接続するには、VPC のデフォルトのセキュリティグループを適切に設定*し*、クラスターのセキュリティグループをインスタンスに関連付ける必要があります。

設定の変更を完了するには、次の手順を実行します。

**Topics**
+ [ステップ 1. デフォルトのセキュリティグループの変更](#configure-sg-client-instance-modify-default-security-group)
+ [ステップ 2. Amazon EC2 インスタンスを AWS CloudHSM クラスターに接続する](#configure-sg-client-instance-connect-the-ec2-instance-to-the-HSM-cluster)

## ステップ 1. デフォルトのセキュリティグループの変更
<a name="configure-sg-client-instance-modify-default-security-group"></a>

クライアントソフトウェアをダウンロードしてインストールし、HSM と通信できるように、SSH 接続または RDP 接続が許可されるようにデフォルトのセキュリティグループを変更する必要があります。

**デフォルトのセキュリティグループを変更するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で **EC2 ダッシュボード** を開きます。

1. **インスタンス (実行中) **を選択し、 AWS CloudHSM クライアントをインストールする EC2 インスタンスの横にあるチェックボックスをオンにします。

1. [**セキュリティ**] タブで、[**デフォルト**] という名前のセキュリティグループを選択します。

1. ページの一番上で、[**アクション**]、[**インバウンドのルールの編集**] の順に選択します。

1. [**Add rule (ルールの追加)**] を選択します。

1. [**タイプ**] で、以下のいずれかを実行します。
   + Windows Server の Amazon EC2 インスタンスで、**RDP** を選択します。ポート `3389` は自動的に追加されています。
   + Linux Amazon EC2 インスタンスの場合は、**SSH** を選択します。ポート範囲 `22` は自動的に追加されています。

1. いずれのオプションでも、[**ソース**] を [**My IP**] に設定すると、Amazon EC2 インスタンスと通信できるようになります。
**重要**  
誰もがインスタンスにアクセスできないようにするには、CIDR 範囲として 0.0.0.0/0 を指定しないでください。

1. **[保存]** を選択します。

## ステップ 2. Amazon EC2 インスタンスを AWS CloudHSM クラスターに接続する
<a name="configure-sg-client-instance-connect-the-ec2-instance-to-the-HSM-cluster"></a>

EC2 インスタンスがクラスター内の HSM と通信できるように、クラスターのセキュリティグループを EC2 インスタンスに接続する必要があります。クラスターのセキュリティグループには、ポート 2223〜2225 経由のインバウンド通信を許可する事前に設定されたルールが含まれます。

**EC2 インスタンスを AWS CloudHSM クラスターに接続するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で **EC2 ダッシュボード** を開きます。

1. **インスタンス (実行中)** を選択し、 AWS CloudHSM クライアントをインストールする EC2 インスタンスのチェックボックスをオンにします。

1. ページの一番上で、**アクション**、**セキュリティ**、**セキュリティグループの変更** を選択します。

1. クラスターの ID と一致するグループ名のセキュリティグループ (例: `cloudhsm-cluster-<clusterID>-sg`) を選択します。

1. [**セキュリティグループを追加**] を選択します。

1. **[保存]** を選択します。

**注記**  
 最大 5 つのセキュリティグループを 1 つの Amazon EC2 インスタンスに割り当てることができます。上限に達した場合は、Amazon EC2 のインスタンスのデフォルトのセキュリティグループとクラスターのセキュリティグループを変更する必要があります。  
デフォルトのセキュリティグループで、以下の操作を行います。  
クラスターセキュリティグループからポート `2223-2225` 経由で TCP プロトコルを使用したトラフィックを許可するアウトバウンドルールを追加します。
クラスターのセキュリティグループで、以下の操作を行います。  
デフォルトのセキュリティグループからポート `2223-2225` 経由で TCP プロトコルを使用したトラフィックを許可するインバウンドルールを追加します。

# で HSM を作成する AWS CloudHSM
<a name="create-hsm"></a>

 でクラスターを作成したら AWS CloudHSM、ハードウェアセキュリティモジュール (HSM) を作成できます。ただし､クラスター内に HSM を作成する前に、クラスターを初期化されていない状態にする必要があります。クラスターの状態を確認するには、 [AWS CloudHSM コンソールでクラスターページ](https://console.aws.amazon.com/cloudhsm/home)を表示するか、 AWS CLI を使用して **[describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html)** コマンドを実行するか、 AWS CloudHSM API で [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) リクエストを送信します。HSM は、[AWS CloudHSM コンソール](https://console.aws.amazon.com/cloudhsm/)、[AWS CLI](https://aws.amazon.com/cli/)、あるいは AWS CloudHSM API で作成できます。

**重要**  
 クラスターが初期化されていない状態にある間は、HSM を 1 つだけ作成します。

------
#### [ Console ]

**HSM を作成するには (コンソール)**

1. [https://console.aws.amazon.com/cloudhsm/home](https://console.aws.amazon.com/cloudhsm/home) で AWS CloudHSM コンソールを開きます。

1. HSM を作成するクラスターの ID の横のラジオボタンを選択します。

1. **アクション** を選択します。ドロップダウンメニューから **初期化** を選択します。

1. 作成中の HSM のアベイラビリティーゾーン (AZ) を選択します。

1. **[作成]** を選択します。

クラスターと HSM を作成した後、オプションで [HSM のアイデンティティを確認する](verify-hsm-identity.md)か、直接「[クラスターの初期化](initialize-cluster.md)」に進むことができます。

------
#### [ AWS CLI ]

**HSM を作成するには ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ コマンドラインプロンプトで、**[create-hsm](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/create-hsm.html)** コマンドを実行します。以前に作成したクラスターのクラスター ID と、HSM のアベイラビリティーゾーンを指定します。アベイラビリティーゾーンは、`us-west-2a`、`us-west-2b` などの形式で指定します。

  ```
  $ aws cloudhsmv2 create-hsm --cluster-id <cluster ID> --availability-zone <Availability Zone>
  
  {
      "Hsm": {
          "HsmId": "hsm-ted36yp5b2x",
          "EniIp": "10.0.1.12",
          "EniIpV6": "2600:113f:404:be09:310e:ed34:3412:f733",
          "AvailabilityZone": "us-west-2a",
          "ClusterId": "cluster-igklspoyj5v",
          "EniId": "eni-5d7ade72",
          "SubnetId": "subnet-fd54af9b",
          "State": "CREATE_IN_PROGRESS"
      }
  }
  ```

クラスターと HSM を作成した後、オプションで [HSM のアイデンティティを確認する](verify-hsm-identity.md)か、直接「[クラスターの初期化](initialize-cluster.md)」に進むことができます。

------
#### [ AWS CloudHSM API ]

**HSM (AWS CloudHSM API) を作成するには**
+ [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html) リクエストを送信します。以前に作成したクラスターのクラスター ID と、HSM のアベイラビリティーゾーンを指定します。

クラスターと HSM を作成した後、オプションで [HSM のアイデンティティを確認する](verify-hsm-identity.md)か、直接「[クラスターの初期化](initialize-cluster.md)」に進むことができます。

------

# でクラスターの HSM のアイデンティティと信頼性を検証する AWS CloudHSM (オプション)
<a name="verify-hsm-identity"></a>

クラスターを初期化するには AWS CloudHSM、クラスターの最初のハードウェアセキュリティモジュール (HSM) によって生成された証明書署名リクエスト (CSR) に署名します。その前に、HSM のアイデンティティと正当性を確認することをお勧めします。

**注記**  
このプロセスはオプションです。ただし、使用できるのはクラスターが初期化される前に限られます。クラスターの初期化後は、このプロセスを使用して証明書の取得や HSM の検証を行うことはできません。

クラスターの最初の HSM のアイデンティティを確認するには、次のステップを実行します。

1. [証明書と CSR の取得](#get-certificates) - このステップでは、3 つの証明書と CSR を HSM から取得します。また、2 つのルート証明書も取得します。1 つは HSM ハードウェアメーカーから AWS CloudHSM 、もう 1 つは HSM ハードウェアメーカーから取得します。

1. [証明書チェーンの検証](#verify-certificate-chains) – このステップでは、2 つの証明書チェーンを作成します。1 つは AWS CloudHSM ルート証明書、もう 1 つは製造元ルート証明書です。次に、これらの証明書チェーンを使用して HSM 証明書を検証し、 AWS CloudHSM とハードウェア製造元の両方が HSM のアイデンティティと信頼性を証明しているかどうかを確認します。

1. [パブリックキーの比較](#compare-public-keys) - このステップでは、HSM 証明書とクラスター CSR のパブリックキーを抽出および比較し、それらが同じであることを確認します。これにより、CSR は認証され、信頼された HSM によって生成されていることを確信できます。

次の図は、CSR、証明書、およびその相互関係を示しています。以下のリストでは、各証明書を定義します。

![\[HSM 証明書とその関係。\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/images/hsm-certificate-relationships.png)


**AWS ルート証明書**  
これはルート証明書 AWS CloudHSMです。

**製造元のルート証明書**  
これは、ハードウェア製造元のルート証明書です。

**AWS ハードウェア証明書**  
AWS CloudHSM は、HSM ハードウェアがフリートに追加されると、この証明書を作成しました。この証明書は、ハードウェア AWS CloudHSM を所有する をアサートします。

**製造元のハードウェア証明書**  
この証明書は、HSM ハードウェア製造元が HSM ハードウェアを製造したときに作成したものです。この証明書は、製造元がハードウェアを作成したことを主張しています。

**HSM 証明書**  
クラスターの最初の HSM を作成すると、FIPS 検証済みハードウェアが HSM 証明書を生成します。この証明書は、HSM ハードウェアが HSM の作成元であることを証明します。

**クラスター CSR**  
最初の HSM によってクラスター CSR が作成されます。[クラスター CSR に署名する](initialize-cluster.md#sign-csr) と、クラスターがクレームされます。次に、署名した CSR を使用して [クラスターを初期化](initialize-cluster.md#initialize) できます。

## ステップ 1. HSM からの証明書の取得
<a name="get-certificates"></a>

HSM のアイデンティティと正当性を確認するには、最初に CSR と 5 つの証明書を取得します。HSM から 3 つの証明書を取得します。これは、[AWS CloudHSM コンソール](https://console.aws.amazon.com/cloudhsm/)、 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)、または AWS CloudHSM API で実行できます。

------
#### [ Console ]

**CSR および HSM 証明書を取得するには (コンソール)**

1. [https://console.aws.amazon.com/cloudhsm/home](https://console.aws.amazon.com/cloudhsm/home) で AWS CloudHSM コンソールを開きます。

1. 検証する HSM のクラスター ID の横にあるラジオボタンをオンにします。

1. **アクション** を選択します。ドロップダウンメニューから **初期化** を選択します。

1. HSM を作成する [前のステップ](create-hsm.md) を完了していない場合は、作成する HSM のアベイラビリティーゾーン (AZ) を選択します。次に、**作成** を選択します。

1. 証明書と CSR の準備ができると、それらをダウンロードするためのリンクが表示されます。  
![\[AWS CloudHSM コンソールのダウンロード証明書署名リクエストページ。\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/images/download-csr-hsm-cert.png)

1. 各リンクを選択し、CSR と証明書をダウンロードして保存します。以降のステップを簡素化するために、すべてのファイルを同じディレクトリに保存し、デフォルトのファイル名を使用します。

------
#### [ AWS CLI ]

**CSR および HSM 証明書を取得するには ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ コマンドプロンプトで、**[describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html)** コマンドを 4 回実行し、毎回 CSR と異なる証明書を抽出してファイルに保存します。

  1. 次のコマンドを発行してクラスター CSR を抽出します。*<cluster ID>* を、前に作成したクラスターの ID に置き換えます。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.ClusterCsr' \
                                        > <cluster ID>_ClusterCsr.csr
     ```

  1. 次のコマンドを発行して HSM 証明書を抽出します。*<cluster ID>* を、前に作成したクラスターの ID に置き換えます。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.HsmCertificate' \
                                        > <cluster ID>_HsmCertificate.crt
     ```

  1. 次のコマンドを発行して、 AWS ハードウェア証明書を抽出します。*<cluster ID>* を、前に作成したクラスターの ID に置き換えます。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.AwsHardwareCertificate' \
                                        > <cluster ID>_AwsHardwareCertificate.crt
     ```

  1. 次のコマンドを発行して製造元のハードウェア証明書を抽出します。*<cluster ID>* を、前に作成したクラスターの ID に置き換えます。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.ManufacturerHardwareCertificate' \
                                        > <cluster ID>_ManufacturerHardwareCertificate.crt
     ```

------
#### [ AWS CloudHSM API ]

**CSR 証明書と HSM 証明書を取得するには (AWS CloudHSM API)**
+ [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) リクエストを送信し、レスポンスから CSR と証明書を抽出して保存します。

------

## ステップ 2. ルート証明書の取得
<a name="get-root-certificates"></a>

 AWS CloudHSM および製造元のルート証明書を取得するには、次の手順に従います。ルート証明書ファイルを、CSR と HSM 証明書ファイルが含まれているディレクトリに保存します。

**AWS CloudHSM および製造元のルート証明書を取得するには**

1.  AWS CloudHSM ルート証明書のダウンロード: [AWS\$1CloudHSM\$1Root-G1.zip](samples/AWS_CloudHSM_Root-G1.zip)

1. HSM タイプに適した製造元のルート証明書をダウンロードします。
   + hsm1.medium 製造元ルート証明書: [liquid\$1security\$1certificate.zip](https://www.marvell.com/content/dam/marvell/en/public-collateral/security-solutions/liquid_security_certificate.zip)
   + hsm2m.medium 製造元ルート証明書: [liquid\$1security\$1certificate.zip](https://www.marvell.com/content/dam/marvell/en/public-collateral/security-solutions/liquidsecurity2_ar_v1.zip)
**注記**  
ランディングページから各証明書をダウンロードするには、次のリンクにアクセスします。  
hsm1.medium の[製造元ルート証明書](https://www.marvell.com/products/security-solutions/liquid-security-hsm-adapters-and-appliances/liquidsecurity-certificate.html)のランディングページ
hsm2m.medium の[製造元ルート証明書](https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/liquidsecurity2-certificate-ls2-g-axxx-ar-f-bo-v1.html)のランディングページ
[**Download Certificate**] リンクを右クリックしてから、[**Save Link As...**] を選択して証明書ファイルを保存することが必要になる場合があります。

1. ファイルをダウンロードした後、内容を抽出 (解凍) します。

## ステップ 3. 証明書チェーンの確認
<a name="verify-certificate-chains"></a>

このステップでは、2 つの証明書チェーンを作成します。1 つは AWS CloudHSM ルート証明書、もう 1 つは製造元ルート証明書です。次に、OpenSSL を使用して各証明書チェーンの HSM 証明書を検証します。

証明書チェーンを作成するには、Linux シェルを開きます。OpenSSL が必要です (ほとんどの Linux シェルにあります)。さらに、ダウンロードした[ルート証明書](#get-root-certificates)と [HSM 証明書ファイル](#get-certificates)が必要です。ただし、このステップ AWS CLI では は必要ありません。シェルを AWS アカウントに関連付ける必要はありません。

**AWS CloudHSM ルート証明書を使用して HSM 証明書を検証するには**

1. ダウンロードした[ルート証明書](#get-root-certificates)と [HSM 証明書ファイル](#get-certificates)の保存先のディレクトリに移動します。以下のコマンドでは、すべての証明書が現在のディレクトリにあり、デフォルトのファイル名を使用しているものとします。

   次のコマンドを使用して、ハードウェア証明書と AWS CloudHSM ルート証明書を含む AWS 証明書チェーンをその順序で作成します。*<cluster ID>* を、前に作成したクラスターの ID に置き換えます。

   ```
   $ cat <cluster ID>_AwsHardwareCertificate.crt \
         AWS_CloudHSM_Root-G1.crt \
         > <cluster ID>_AWS_chain.crt
   ```

1.  AWS 証明書チェーンで HSM 証明書を検証するには、次の OpenSSL コマンドを使用します。*<cluster ID>* を、前に作成したクラスターの ID に置き換えます。

   ```
   $ openssl verify -CAfile <cluster ID>_AWS_chain.crt <cluster ID>_HsmCertificate.crt
   <cluster ID>_HsmCertificate.crt: OK
   ```

**製造元のルート証明書で HSM 証明書を検証するには**

1. 次のコマンドを使用して、製造元のハードウェア証明書と、製造元のルート証明書が含まれている証明書チェーンを、その順番で作成します。*<cluster ID>* を、前に作成したクラスターの ID に置き換えます。

   ```
   $ cat <cluster ID>_ManufacturerHardwareCertificate.crt \
         liquid_security_certificate.crt \
         > <cluster ID>_manufacturer_chain.crt
   ```

1. 製造元の証明書チェーンで HSM 証明書を検証するには、次の OpenSSL コマンドを使用します。*<cluster ID>* を、前に作成したクラスターの ID に置き換えます。

   ```
   $ openssl verify -CAfile <cluster ID>_manufacturer_chain.crt <cluster ID>_HsmCertificate.crt
   <cluster ID>_HsmCertificate.crt: OK
   ```

## ステップ 4. パブリックキーの抽出と比較
<a name="compare-public-keys"></a>

OpenSSL を使用して HSM 証明書とクラスター CSR のパブリックキーを抽出および比較して、それらが同じであることを確認します。

パブリックキーを比較するには、Linux シェルを使用します。ほとんどの Linux シェルで使用できる OpenSSL が必要ですが、このステップ AWS CLI では は必要ありません。シェルを AWS アカウントに関連付ける必要はありません。

**パブリックキーを抽出して比較するには**

1. 次のコマンドを使用して、HSM 証明書からパブリックキーを抽出します。

   ```
   $ openssl x509 -in <cluster ID>_HsmCertificate.crt -pubkey -noout > <cluster ID>_HsmCertificate.pub
   ```

1. 次のコマンドを使用して、クラスター CSR からパブリックキーを抽出します。

   ```
   $ openssl req -in <cluster ID>_ClusterCsr.csr -pubkey -noout > <cluster ID>_ClusterCsr.pub
   ```

1. 次のコマンドを使用してパブリックキーを比較します。パブリックキーが同じである場合、次のコマンドによる出力はありません。

   ```
   $ diff <cluster ID>_HsmCertificate.pub <cluster ID>_ClusterCsr.pub
   ```

HSM のアイデンティティと正当性を確認したら、「[クラスターの初期化](initialize-cluster.md)」に進みます。

# でクラスターを初期化する AWS CloudHSM
<a name="initialize-cluster"></a>

クラスターを作成して にハードウェアセキュリティモジュール (HSM) を追加したら AWS CloudHSM、クラスターを初期化できます。 クラスターを初期化するには、以下のトピックの手順を実行します。

**注記**  
クラスターを初期化する前に、[HSM のアイデンティティと正当性を検証](verify-hsm-identity.md)するプロセスを確認します。このプロセスはオプションですが、使用期間はクラスターが初期化されるまでの間に限ります。クラスターの初期化後は、このプロセスを使用して証明書の取得や HSM の検証を行うことはできません。

**Topics**
+ [概要:](#initialize-cluster-overview)
+ [ステップ 1. クラスター CSR の取得](#get-csr)
+ [ステップ 2. ルート CA のプライベートキーを作成する](#sign-csr-create-key)
+ [ステップ 3. CSR の署名](#sign-csr)
+ [ステップ 4. クラスターの初期化](#initialize)

## 概要:
<a name="initialize-cluster-overview"></a>

 クラスターの初期化プロセスでは、証明書ベースの認証システムを通じて、クラスターと HSMsの所有権と制御を確立します。このプロセスは、お客様がクラスター内の HSMs の唯一の所有者であることを証明し、HSM への今後のすべての接続に必要な信頼の基盤を作成します HSMs 。

 このページでは、以下の方法を示します。
+ クラスターの証明書署名リクエスト (CSR) を取得します。
+ プライベートキー (複数可) を生成して使用して、自己署名ルート証明書または証明書チェーンを作成します。
+ クラスターの CSR に署名して、署名付き HSM 証明書を作成します。
+ 署名付き HSM 証明書と自己署名証明書または証明書チェーンを使用してクラスターを初期化します。

始める準備ができたら、「[ステップ 1. クラスター CSR の取得](#get-csr)」を参照してください。

## ステップ 1. クラスター CSR の取得
<a name="get-csr"></a>

クラスターを初期化する前に、クラスターの最初の HSM によって生成された証明書署名リクエスト (CSR) をダウンロードして署名する必要があります。「[クラスターの HSM のアイデンティティの確認](verify-hsm-identity.md)」のステップに従っていれば、既に CSR があり、「CSR の署名」に進むことができます。それ以外の場合は、[AWS CloudHSM コンソール](https://console.aws.amazon.com/cloudhsm/)、 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)、または AWS CloudHSM API を使用して CSR を取得します。

------
#### [ Console ]

**CSR を取得するには (コンソール)**

1. [https://console.aws.amazon.com/cloudhsm/home](https://console.aws.amazon.com/cloudhsm/home) で AWS CloudHSM コンソールを開きます。

1. 検証する HSM のクラスター ID の横にあるラジオボタンをオンにします。

1. **アクション** を選択します。ドロップダウンメニューから **初期化** を選択します。

1. HSM を作成する [前のステップ](create-hsm.md) を完了していない場合は、作成する HSM のアベイラビリティーゾーン (AZ) を選択します。次に、**作成** を選択します。

1. CSR の準備ができると、CSR をダウンロードするためのリンクが表示されます。  
![\[AWS CloudHSM コンソールで証明書署名リクエストページをダウンロードします。\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/images/download-csr-hsm-cert.png)

1. [**Cluster CSR**] を選択して CSR をダウンロードし、保存します。

------
#### [ AWS CLI ]

**CSR を取得するには ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ コマンドプロンプトで、次の **[describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html)** コマンドを実行し、CSR を抽出してファイルに保存します。*<cluster ID>* を、[前に作成した](create-cluster.md)クラスターの ID に置き換えます。

  ```
  $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                     --output text \
                                     --query 'Clusters[].Certificates.ClusterCsr' \
                                     > <cluster ID>_ClusterCsr.csr
  ```

------
#### [ AWS CloudHSM API ]

**CSR (AWS CloudHSM API) を取得するには**

1. [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) リクエストを送信します。

1. レスポンスから CSR を抽出して保存します。

------

## ステップ 2. ルート CA のプライベートキーを作成する
<a name="sign-csr-create-key"></a>

**注記**  
実稼働用クラスターでは、作成しようとしているキーはランダム性の信頼できるソースを使用して安全な方法で作成されている必要があります。安全なオフサイトあるいはオフライン HSM またはその同等を使用することが推奨されます。キーを安全に保存します。このキーによってクラスターの ID が確立され、クラスターに含まれる HSM をユーザーが単独で制御できるようになります。  
開発とテストには、クラスター証明書の作成と署名に任意のツール (OpenSSL) などを使用できます。以下の例では、 キーを作成する方法を示します。キーを使用して自己署名証明書 (以下を参照) を作成したら、安全な方法でキーを保存する必要があります。 AWS CloudHSM インスタンスにサインインするには、証明書が存在する必要がありますが、プライベートキーは存在しません。

次の表は、証明書生成でサポートされているアルゴリズム、キーサイズ、曲線の概要を示しています。


| アルゴリズム | サイズ/カーブ | 
| --- | --- | 
| **RSA PKCSv1.5** |  2048、3072、4096  | 
| **RSA-PSS** |  2048、3072、4096  | 
| **ECDSA** |  prime256v1、secp384r1、secp521r1  | 
| **ダイジェスト** |  SHA-224, SHA-256, SHA-384、SHA-512  | 

次のコマンド例を使用して、自己署名ルート CA のプライベートキーを作成します。

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

## ステップ 3. CSR の署名
<a name="sign-csr"></a>

前のステップでは、クラスターの CSR を取得し、ルート CA のプライベートキーを作成しました。このステップでは、プライベートキーを使用して署名証明書を生成し、クラスターの CSR に署名します。以下のトピックでは、OpenSSL を使用して単一の自己署名証明書または証明書チェーンを作成するプロセスについて説明します。このステップ AWS CLI では は必要なく、シェルを AWS アカウントに関連付ける必要はありません。

**重要**  
クラスターを初期化するには、トラストアンカーが [RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280) に準拠し、次の要件を満たしている必要があります。  
X509v3 エクステンションを使用する場合は、X509v3 基本制約エクステンションが必要です。
トラストアンカーは自己署名証明書でなければなりません。
エクステンションの値は互いに矛盾してはいけません。

クラスターの CSR に署名するには、次のいずれかの方法を選択します。

### 証明書のアプローチを選択する
<a name="certificate-approach-choice"></a>

次の 2 つのアプローチのいずれかを選択する必要があります。両方のアプローチを完了しないでください。

**オプション A: 単一の自己署名証明書**  
クラスターの CSR に署名する自己署名ルート証明書を 1 つ作成します。これは、信頼を確立する最もシンプルで直接的な方法です。  
**推奨対象:**  
+ 外部 PKI が不要な環境
+ シンプルさが優先されるテスト環境と開発環境
次に移動します。 [自己署名証明書を 1 つ作成する](#self-signed-certificate)

**オプション B: 中間 CA を持つ証明書チェーン**  
中間認証機関を使用して証明書チェーンを作成します。中間証明書チェーンは、証明書の発行を中間 CAs に委任しながらルート認証機関 (CAs) をオフラインのままにすることで、セキュリティ、スケーラビリティ、柔軟性を強化し、ルート CA が侵害されるリスクを軽減します。  
**推奨対象:**  
+ 外部 PKI が必要な環境
+ AWS Private Certificate Authority (PCA) との統合
**AWS PCA 統合の例:** AWS プライベート認証機関を使用して中間 CA 証明書を作成および管理できます。これにより、ルート CA をオフラインにしておくというセキュリティ上の利点を維持しながら、更新や失効などの証明書ライフサイクル管理を自動化できます。 AWS PCA の詳細については、[AWS Private Certificate Authority ユーザーガイド](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html)を参照してください。  
次に移動します。 [中間認証機関 (ICA) チェーンを作成する](#certificate-chain)

### 自己署名証明書を 1 つ作成する
<a name="self-signed-certificate"></a>

本稼働のクラスター用のプライベートキーの作成に使用する信頼できるハードウェアも、このキーを使用した自己署名証明書を生成するソフトウェアツールを提供していることが必要です。次の例では、OpenSSL と前のステップで作成したプライベートキーを使用して、自己署名ルート CA 署名証明書を作成します。証明書の有効期間は 10 年 (3652 日) です。画面の指示を読み、プロンプトに従います。

```
$ openssl req -new -x509 -days 3652 -key customerRootCA.key -out customerRootCA.crt
Enter pass phrase for customerRootCA.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 []:
```

このコマンドは `customerRootCA.crt` という名前の証明書を作成します。この証明書は、 AWS CloudHSM クラスターに接続するすべてのホストに配置します。ファイルに別の名前を付与した場合、またはホストのルート以外のパスにファイルを保存した場合には、それぞれに応じてクライアント設定ファイルを編集する必要があります。作成したばかりの証明書およびプライベートキーを使用して、次のステップでクラスター証明書署名リクエスト (CSR) に署名します。

#### 自己署名ルート CA を使用してクラスター CSR に署名する
<a name="sign-csr-sign-cluster-csr-with-root-ca"></a>

本稼働のクラスター用のプライベートキーの作成に使用する信頼できるハードウェアも、このキーを使用して CSR に署名するツールを提供している必要があります。次の例では、OpenSSL を使用してクラスターの CSR に署名します。以下のコマンド例では、自己署名を使用して CSR に署名します。 `customerRootCA.crt`

```
$ openssl x509 -req -days 3652 -in <cluster ID>_ClusterCsr.csr \
		-CA <customerRootCA>.crt \
		-CAkey <customerRootCA>.key \
		-CAcreateserial \
		-out <cluster ID>_CustomerHsmCertificate.crt
Signature ok
subject=/C=US/ST=CA/O=Cavium/OU=N3FIPS/L=SanJose/CN=HSM:<HSM identifier>:PARTN:<partition number>, for FIPS mode
Getting CA Private Key
Enter pass phrase for <customerRootCA>.key:
```

完了すると、このコマンドは `<cluster ID>_CustomerHsmCertificate.crt` という名前のファイルを作成します。クラスターを初期化する際は、これを署名済み証明書として使用します。

署名付き証明書をルート CA と照合します (オプション）。

```
$ openssl verify -purpose sslserver -CAfile customerRootCA.crt <cluster ID>_CustomerHsmCertificate.crt
<cluster ID>_CustomerHsmCertificate.crt: OK
```

自己署名ルート CA を使用して署名付き HSM 証明書を生成したら、「」に進みます[ステップ 4. クラスターの初期化](#initialize)。

### 中間認証機関 (ICA) チェーンを作成する
<a name="certificate-chain"></a>

次の例では、ルート認証局 (CA) と中間 CA で構成される長さ 2 の証明書チェーンを作成する手順を説明します。最初に自己署名ルート CA 証明書を作成し、ルート CA によって署名された中間 CA を生成します。最後に、中間 CA を使用してクラスターの CSR に署名し、HSM 証明書からルート CA への完全な信頼チェーンを作成します。このアプローチは、day-to-day証明書オペレーションに中間 CA を使用しながら、ルート CA をオフラインに保つことで、セキュリティを強化します。

**重要**  
証明書チェーンを使用してクラスターを初期化するには、チェーンが次の要件を満たしている必要があります。  
チェーンは、クラスター CSR に署名する中間 CA から順に並べる必要があります。この順序では、最初の ICA には、チェーン内の次の ICA の件名に一致する発行者が必要です。
ルート CA のみが自己署名である必要があります。つまり、発行者とサブジェクトは同一である必要があります。
チェーンは 4 つ以下の証明書 (末尾のルート CA を含む) で構成されている必要があり、チェーンの合計サイズは 16 KB (キロバイト) を超えることはできません。
すべての認証機関 (CAs) は、[RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280) ガイドラインに準拠する必要があります。

このセクションでは、ローカル証明書生成用の OpenSSL とマネージド証明書サービス用の AWS Private Certificate Authority (PCA) の 2 つの異なるアプローチを使用して中間認証機関チェーンを作成する例を示します。環境とセキュリティ要件に最適なアプローチを選択します。

**注記**  
次の例は一般的なユースケースであり、最も基本的な設定を使用して簡素化されています。本番環境では、ユースケースに固有の追加の設定オプションとセキュリティ要件を確認してください。

------
#### [ OpenSSL ]

CA の一般的な v3 拡張機能を使用して OpenSSL 設定ファイルを作成します。

```
$ cat > ca-extensions.conf <<EOF
[req]
distinguished_name = req_distinguished_name
[req_distinguished_name]
C = Country Name (2 letter code)
ST = State or Province Name (full name)
L = Locality Name (eg, city)
O = Organization Name (eg, company)
OU = Organizational Unit Name (eg, section)
CN = Common Name (e.g. server FQDN or YOUR name)
[v3_ca]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical,CA:true
keyUsage = critical, keyCertSign, cRLSign, digitalSignature
EOF
```

OpenSSL を使用して自己署名ルート CA を生成します。

```
$ openssl req -new -x509 -days 3652 -key customerRootCA.key -out customerRootCA.crt -extensions v3_ca -config ca-extensions.conf
Enter pass phrase for customerRootCA.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 []:
```

中間 CA キーを生成します。

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

中間 CA 証明書署名リクエスト (CSR) を作成します。

```
$ openssl req -new -key intermediateCA.key -out intermediateCA.csr
Enter pass phrase for intermediateCA.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 []:
```

自己署名ルート CA を使用して、中間 CA 証明書を作成します。

```
$ openssl x509 -req -in intermediateCA.csr \
		-CA customerRootCA.crt \
		-CAkey customerRootCA.key \
		-CAcreateserial \
		-days 3652 \
		-extensions v3_ca \
		-extfile ca-extensions.conf \
		-out intermediateCA.crt

Certificate request self-signature ok
subject=C= , ST= , L= , O= , OU=
```

証明書をチェーンファイルに結合します。

```
$ cat intermediateCA.crt customerRootCA.crt > chainCA.crt

-----BEGIN CERTIFICATE-----
[Intermediate CA]
-----END CERTIFICATE-----
...
...
-----BEGIN CERTIFICATE-----
[Root CA]
-----END CERTIFICATE-----
```

中間 CA を使用してクラスター CSR に署名します。

```
$ openssl x509 -req -days 3652 -in <cluster ID>_ClusterCsr.csr \
			-CA intermediateCA.crt \
			-CAkey intermediateCA.key \
			-CAcreateserial \
			-out <cluster ID>_CustomerHsmCertificate.crt
Signature ok
subject=/C=US/ST=CA/O=Cavium/OU=N3FIPS/L=SanJose/CN=HSM:<HSM identifier>:PARTN:<partition number>, for FIPS mode
Getting CA Private Key
Enter pass phrase for intermediateCA.key:
```

------
#### [ AWS PCA ]

AWS Private Certificate Authority を使用してルート CA を作成してアクティブ化します。

```
$ # 1. Create Root CA
aws acm-pca create-certificate-authority \
    --certificate-authority-configuration \
        "KeyAlgorithm=RSA_4096,
        SigningAlgorithm=SHA256WITHRSA,
        Subject={Country=US,Organization=MyOrg,OrganizationalUnit=IT,CommonName=RootCA}" \
    --certificate-authority-type ROOT

# Store the Root CA Authority ARN from the previous output
ROOT_CA_AUTHORITY_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<ca-authority-id>"

# 2. Generate Root CA CSR
aws acm-pca get-certificate-authority-csr \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --output text > customerRootCA.csr

# 3. Self-sign Root CA Certificate
aws acm-pca issue-certificate \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --csr fileb://customerRootCA.csr \
    --signing-algorithm SHA256WITHRSA \
	--template-arn arn:aws:acm-pca:::template/RootCACertificate/V1 \
    --validity Value=3652,Type=DAYS

# Store the Root CA certificate ARN from the previous output
ROOT_CA_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<ca-authority-id>/certificate/<cert-id>"

# 4. Retrieve the Root CA certificate
aws acm-pca get-certificate \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --certificate-arn $ROOT_CA_ARN \
    --output text > customerRootCA.crt

# 5. Import the Root CA Certificate
aws acm-pca import-certificate-authority-certificate \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --certificate fileb://customerRootCA.crt
```

下位 CA (中間 CA とも呼ばれます) を作成してアクティブ化します。

```
$ # 6. Create Subordinate CA
aws acm-pca create-certificate-authority \
    --certificate-authority-configuration \
        "KeyAlgorithm=RSA_4096,
        SigningAlgorithm=SHA256WITHRSA,
        Subject={Country=US,Organization=MyOrg,OrganizationalUnit=IT,CommonName=SubordinateCA}" \
    --certificate-authority-type SUBORDINATE

# Store the Subordinate CA Authority ARN from the previous output
SUB_CA_AUTHORITY_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<sub-ca-authority-id>"

# 7. Generate Subordinate CA CSR
aws acm-pca get-certificate-authority-csr \
    --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \
    --output text > intermediateCA.csr

# 8. Issue Subordinate CA Certificate using Root CA
aws acm-pca issue-certificate \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --csr fileb://intermediateCA.csr \
    --signing-algorithm SHA256WITHRSA \
    --template-arn arn:aws:acm-pca:::template/SubordinateCACertificate_PathLen0/V1 \
    --validity Value=3651,Type=DAYS

# Store the Subordinate CA certificate ARN from the previous output
SUB_CA_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<sub-ca-authority-id>"

# 9. Retrieve Subordinate CA Certificate
aws acm-pca get-certificate \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --certificate-arn $SUB_CA_ARN \
    --query 'Certificate' \
    --output text > intermediateCA.crt

# 10. Import the Subordinate CA Certificate
aws acm-pca import-certificate-authority-certificate \
    --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \
    --certificate fileb://intermediateCA.crt \
    --certificate-chain fileb://customerRootCA.crt
```

証明書をチェーンファイルに結合します。

```
$ cat intermediateCA.crt customerRootCA.crt > chainCA.crt

-----BEGIN CERTIFICATE-----
[Intermediate CA]
-----END CERTIFICATE-----
...
...
-----BEGIN CERTIFICATE-----
[Root CA]
-----END CERTIFICATE-----
```

AWS PCA を使用してクラスター CSR に署名します。

```
$ aws acm-pca issue-certificate \
    --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \
    --csr fileb://<cluster ID>_ClusterCsr.csr \
    --signing-algorithm SHA256WITHRSA \
    --template-arn arn:aws:acm-pca:::template/EndEntityCertificate/V1 \
    --validity Value=3650,Type=DAYS

# Store your cluster's cert ARN from the previous output
CLUSTER_CERT_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<cluster-cert-arn>"
```

署名付きクラスター証明書をダウンロードします。

```
$ aws acm-pca get-certificate \
    --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \
    --certificate-arn $CLUSTER_CERT_ARN \
    --output text --query Certificate > <cluster ID>_CustomerHsmCertificate.crt
```

------

完了すると、このコマンドは `<cluster ID>_CustomerHsmCertificate.crt` という名前のファイルを作成します。クラスターを初期化する際は、これを署名済み証明書として使用します。

署名付き証明書を証明書チェーンと照合します (オプション）。

```
$ openssl verify -purpose sslserver -CAfile chainCA.crt <cluster ID>_CustomerHsmCertificate.crt
<cluster ID>_CustomerHsmCertificate.crt: OK
```

中間 CA を使用して署名付き HSM 証明書を生成したら、「」に進みます[ステップ 4. クラスターの初期化](#initialize)。

## ステップ 4. クラスターの初期化
<a name="initialize"></a>

署名済み HSM 証明書と署名証明書を使用して、クラスターを初期化します。[AWS CloudHSM コンソール](https://console.aws.amazon.com/cloudhsm/)、[AWS CLI](https://aws.amazon.com/cli/)、または AWS CloudHSM API を使用できます。

------
#### [ Console ]

**クラスターを初期化するには (コンソール)**

1. [https://console.aws.amazon.com/cloudhsm/home](https://console.aws.amazon.com/cloudhsm/home) で AWS CloudHSM コンソールを開きます。

1. 検証する HSM のクラスター ID の横にあるラジオボタンをオンにします。

1. **アクション** を選択します。ドロップダウンメニューから **初期化** を選択します。

1. HSM を作成する [前のステップ](create-hsm.md) を完了していない場合は、作成する HSM のアベイラビリティーゾーン (AZ) を選択します。次に、**作成** を選択します。

1. [**Download certificate signing request**] ページで、[**Next**] を選択します。[**Next**] が利用できない場合は、最初にいずれかの CSR または証明書のリンクを選択します。次いで、**[次へ]** を選択します。

1. [**Sign certificate signing request (CSR)**] ページで、[**Next**] を選択します。

1. [**Upload the certificates**] ページで、以下の作業を行います。

   1. [**Cluster certificate (クラスター証明書)**] の横にある [**Upload file (ファイルのアップロード)**] を選択します。先に署名した HSM 証明書を探し選択します。前のセクションのステップを完了したら、`<cluster ID>_CustomerHsmCertificate.crt` という名前のファイルを選択します。

   1. [**証明書の発行**] の横にある [**ファイルのアップロード**] を選択します。次に、選択したアプローチに基づいて署名証明書を選択します。
      + **オプション A (単一の自己署名証明書) を選択した場合**: という名前のファイルを選択します。 `<customerRootCA>.crt`
      + **オプション B (証明書チェーン):** という名前のファイルを選択します。 `<chainCA>.crt`

   1. [**Upload and initialize**] を選択します。

------
#### [ AWS CLI ]

**クラスターを初期化するには ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ コマンドラインプロンプトで、**[initialize-cluster](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/initialize-cluster.html)** コマンドを実行します。以下を指定します。
  + 前に作成したクラスターの ID。
  + 前に署名した HSM 証明書。前のセクションのステップを完了すると、`<cluster ID>_CustomerHsmCertificate.crt` というファイル名で保存されています。
  + 選択した方法に基づいて証明書に署名します。
    + **オプション A (単一の自己署名証明書):** という名前のファイルを使用する `<customerRootCA>.crt`
    + **オプション B (証明書チェーン):** という名前のファイルを使用します。 `<chainCA>.crt`

  ```
  $ aws cloudhsmv2 initialize-cluster --cluster-id <cluster ID> \
                                      --signed-cert file://<cluster ID>_CustomerHsmCertificate.crt \
                                      --trust-anchor file://<customerRootCA.crt OR chainCA.crt>
  {
      "State": "INITIALIZE_IN_PROGRESS",
      "StateMessage": "Cluster is initializing. State will change to INITIALIZED upon completion."
  }
  ```

------
#### [ AWS CloudHSM API ]

**クラスターを初期化するには (AWS CloudHSM API)**
+ 以下を使用して [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_InitializeCluster.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_InitializeCluster.html) リクエストを送信します。
  + 前に作成したクラスターの ID。
  + 前に署名した HSM 証明書。前のセクションのステップを完了すると、`<cluster ID>_CustomerHsmCertificate.crt` というファイル名で保存されています。
  + 選択した方法に基づいて証明書に署名します。
    + **オプション A (単一の自己署名証明書):** という名前のファイルを使用する `<customerRootCA>.crt`
    + **オプション B (証明書チェーン):** という名前のファイルを使用します。 `<chainCA>.crt`

------

# CloudHSM CLI をインストールして設定する
<a name="gs_cloudhsm_cli-install"></a>

 AWS CloudHSM クラスター内の HSM を操作するには、CloudHSM CLI が必要です。

クライアントインスタンスに接続し、次のコマンドを実行して、 AWS CloudHSM コマンドラインツールをダウンロードしてインストールします。詳細については、「[とやり取りするための Amazon EC2 クライアントインスタンスを起動する AWS CloudHSM](launch-client-instance.md)」を参照してください。

------
#### [ Amazon Linux 2023 ]

x86\$164 アーキテクチャの Amazon Linux 2023:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Amzn2023/cloudhsm-cli-latest.amzn2023.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.amzn2023.x86_64.rpm
```

ARM64 アーキテクチャの Amazon Linux 2023:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Amzn2023/cloudhsm-cli-latest.amzn2023.aarch64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.amzn2023.aarch64.rpm
```

------
#### [ Amazon Linux 2 ]

x86\$164 アーキテクチャの Amazon Linux 2:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-cli-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el7.x86_64.rpm
```

ARM64 の Amazon Linux 2 アーキテクチャ:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-cli-latest.el7.aarch64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el7.aarch64.rpm
```

------
#### [ RHEL 10 (10.0\$1) ]

x86\$164 アーキテクチャの RHEL 10:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL10/cloudhsm-cli-latest.el10.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el10.x86_64.rpm
```

ARM64 アーキテクチャの RHEL 10:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL10/cloudhsm-cli-latest.el10.aarch64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el10.aarch64.rpm
```

------
#### [ RHEL 9 (9.2\$1) ]

x86\$164 アーキテクチャの RHEL 9:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL9/cloudhsm-cli-latest.el9.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el9.x86_64.rpm
```

ARM64 アーキテクチャの RHEL 9:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL9/cloudhsm-cli-latest.el9.aarch64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el9.aarch64.rpm
```

------
#### [ RHEL 8 (8.3\$1) ]

x86\$164 アーキテクチャの RHEL 8:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-cli-latest.el8.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el8.x86_64.rpm
```

ARM64 アーキテクチャの RHEL 8:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-cli-latest.el8.aarch64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el8.aarch64.rpm
```

------
#### [ Ubuntu 24.04 LTS ]

x86\$164 アーキテクチャの Ubuntu 24.04 LTS:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Noble/cloudhsm-cli_latest_u24.04_amd64.deb
```

```
$ sudo apt install ./cloudhsm-cli_latest_u24.04_amd64.deb
```

ARM64 アーキテクチャの Ubuntu 24.04 LTS:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Noble/cloudhsm-cli_latest_u24.04_arm64.deb
```

```
$ sudo apt install ./cloudhsm-cli_latest_u24.04_arm64.deb
```

------
#### [ Ubuntu 22.04 LTS ]

x86\$164 アーキテクチャの Ubuntu 22.04 LTS:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Jammy/cloudhsm-cli_latest_u22.04_amd64.deb
```

```
$ sudo apt install ./cloudhsm-cli_latest_u22.04_amd64.deb
```

ARM64 アーキテクチャの Ubuntu 22.04 LTS:

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Jammy/cloudhsm-cli_latest_u22.04_arm64.deb
```

```
$ sudo apt install ./cloudhsm-cli_latest_u22.04_arm64.deb
```

------
#### [ Windows Server 2022 ]

x86\$164 アーキテクチャの Windows Server 2022 の場合、管理者として PowerShell を開き、以下のコマンドを実行します。

```
PS C:\> wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMCLI-latest.msi -Outfile C:\AWSCloudHSMCLI-latest.msi
```

```
PS C:\> Start-Process msiexec.exe -ArgumentList '/i C:\AWSCloudHSMCLI-latest.msi /quiet /norestart /log C:\client-install.txt' -Wait
```

------
#### [ Windows Server 2019 ]

x86\$164 アーキテクチャの Windows Server 2019 の場合、管理者として PowerShell を開き、以下のコマンドを実行します。

```
PS C:\> wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMCLI-latest.msi -Outfile C:\AWSCloudHSMCLI-latest.msi
```

```
PS C:\> Start-Process msiexec.exe -ArgumentList '/i C:\AWSCloudHSMCLI-latest.msi /quiet /norestart /log C:\client-install.txt' -Wait
```

------
#### [ Windows Server 2016 ]

x86\$164 アーキテクチャの Windows Server 2016 の場合、管理者として PowerShell を開き、以下のコマンドを実行します。

```
PS C:\> wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMCLI-latest.msi -Outfile C:\AWSCloudHSMCLI-latest.msi
```

```
PS C:\> Start-Process msiexec.exe -ArgumentList '/i C:\AWSCloudHSMCLI-latest.msi /quiet /norestart /log C:\client-install.txt' -Wait
```

------

次のコマンドを使用して CloudHSM CLI を設定します。

**クライアント SDK 5 の Linux EC2 インスタンスをブートストラップするには**
+  構成ツールを使用して、クラスターの HSM の IP アドレスを指定します。

  ```
  $ sudo /opt/cloudhsm/bin/configure-cli -a <The ENI IPv4 / IPv6 addresses of the HSMs>
  ```

**クライアント SDK 5 の Windows EC2 インスタンスをブートストラップするには**
+  構成ツールを使用して、クラスターの HSM の IP アドレスを指定します。

  ```
  PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-cli.exe" -a <The ENI IPv4 / IPv6 addresses of the HSMs>
  ```

# でクラスターをアクティブ化する AWS CloudHSM
<a name="activate-cluster"></a>

 AWS CloudHSM クラスターをアクティブ化すると、クラスターの状態が初期化からアクティブに変わります。その後、[ハードウェアセキュリティモジュール (HSM) のユーザーを管理](manage-hsm-users.md) し、[HSM を使用します](use-hsm.md)。

**重要**  
クラスターをアクティブ化する前に、クラスターに接続する各 EC2 インスタンス上のプラットフォームのために、デフォルトの場所に発行証明書をコピーする必要があります (クラスターを初期化するときに、発行証明書を作成します)。クラスターの初期化時に選択したアプローチに基づいて、適切な証明書ファイルを使用します。  
**オプション A (単一の自己署名証明書):** コピー `customerRootCA.crt`
**オプション B (証明書チェーン):** コピー `chainCA.crt`
**Linux の場所:**  

```
/opt/cloudhsm/etc/<customerRootCA.crt OR chainCA.crt>
```
**Windows の場所:**  

```
C:\ProgramData\Amazon\CloudHSM\<customerRootCA.crt OR chainCA.crt>
```
証明書ファイルをコピーしたら、`/opt/cloudhsm/etc/cloudhsm-cli.cfg`ファイルを編集して、証明書ファイル名がコピーした CA 証明書の名前と一致することを確認します。

発行証明書を配置したら、CloudHSM CLI をインストールし、最初の HSM で [**cluster activate**](cloudhsm_cli-cluster-activate.md) コマンドを実行します。クラスター内の最初の HSM の管理者アカウントに [unactivated-admin](understanding-users.md) ロールが割り当てられているはずです。これはクラスターがアクティブ化される前にのみ存在する一時的なロールです。クラスターをアクティブ化すると、非アクティブ化された管理者のロールは管理者に変わります。

**クラスターをアクティブ化するには**

1. 以前に起動したクライアントインスタンスに接続します。詳細については、「[とやり取りするための Amazon EC2 クライアントインスタンスを起動する AWS CloudHSM](launch-client-instance.md)」を参照してください。Linux インスタンスまたは Windows Server を起動できます。

1. CloudHSM CLI をインタラクティブモードで実行します。

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

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

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

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

------

1. (オプション) **user list** コマンドを使用して、既存のユーザーを表示します。

   ```
   aws-cloudhsm > user list
   {
     "error_code": 0,
     "data": {
       "users": [
         {
           "username": "admin",
           "role": "unactivated-admin",
           "locked": "false",
           "mfa": [],
           "cluster-coverage": "full"
         },
         {
           "username": "app_user",
           "role": "internal(APPLIANCE_USER)",
           "locked": "false",
           "mfa": [],
           "cluster-coverage": "full"
         }
       ]
     }
   }
   ```

1. **cluster activate** コマンドを使用して初期管理者パスワードを設定します。

   ```
   aws-cloudhsm > cluster activate
   Enter password:<NewPassword>
   Confirm password:<NewPassword>
   {
     "error_code": 0,
     "data": "Cluster activation successful"
   }
   ```

   新しいパスワードをパスワードワークシートに書き留めておくことをお勧めします。ワークシートを紛失しないでください。パスワードワークシートのコピーを印刷することをお勧めします。このコピーに重要な HSM のパスワードをメモし、安全な場所に保存してください。また、このワークシートのコピーをオフサイトの安全なストレージに保存することをお勧めします。

1. (オプション) **user list** コマンドを使用して、ユーザーのタイプが [admin/CO](understanding-users-cmu.md#crypto-officer) に変更されていることを確認します。

   ```
   aws-cloudhsm > user list
   {
     "error_code": 0,
     "data": {
       "users": [
         {
           "username": "admin",
           "role": "admin",
           "locked": "false",
           "mfa": [],
           "cluster-coverage": "full"
         },
          {
           "username": "app_user",
           "role": "internal(APPLIANCE_USER)",
           "locked": "false",
           "mfa": [],
           "cluster-coverage": "full"
         }
       ]
     }
   }
   ```

1. **quit** コマンドを使用して、CloudHSM CLI ツールを停止します。

   ```
   aws-cloudhsm > quit
   ```

CMU または CloudHSM CLI のオペレーションの詳細については、[HSM ユーザーについて](understanding-users.md) と [CMU での HSM ユーザー管理について](understand-users.md) を参照してください。

# クライアントと の間の相互 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 証明書を持つクラスターにのみ接続できます。

# でキーを作成して使用する AWS CloudHSM
<a name="create-apps"></a>

新しいクラスターでキーを作成して使用する前に、 AWS CloudHSM CLI を使用してハードウェアセキュリティモジュール (HSM) ユーザーを作成します。詳細については、[「HSM ユーザー管理タスクを理解する](understand-users.md)」、[AWS CloudHSM コマンドラインインターフェイス (CLI) の開始方法](cloudhsm_cli-getting-started.md)」、および[「HSM ユーザーを管理する方法](manage-hsm-users.md)」を参照してください。

**注記**  
クライアント SDK 3 を使用している場合は、CloudHSM CLI の代わりに [CloudHSM 管理ユーティリティ (CMU)](cloudhsm_mgmt_util.md) を使用してください。

HSM ユーザーを作成したら、HSM にサインインし、次のいずれかのオプションを使用してキーを管理できます。
+ [key management utility、コマンドラインツール](key_mgmt_util-getting-started.md) を使用
+ [PKCS \$111 library](pkcs11-library.md) を使用して C アプリケーションを構築する
+ [JCE provider](java-library.md) を使用して Java アプリケーションを構築する
+ [OpenSSL Dynamic Engine directly from the command line](openssl-library.md) を使用
+ [NGINX and Apache web servers](ssl-offload.md) を用いて、TLS オフロードのために [OpenSSL Dynamic Engine] を使用
+ Microsoft Windows Server 認証機関 (CA) AWS CloudHSM で のキーストレージプロバイダー (KSP) を使用する [Client SDK 5 を使用した認証局 (CA) として Windows Server を設定します。](win-ca-overview-sdk5.md)
+ [Microsoft Sign Tool](signtool-sdk5.md) AWS CloudHSM で のキーストレージプロバイダー (KSP) を使用する
+ [Internet Information Server (IIS) Web サーバー](ssl-offload.md)の TLS オフロードでキーストレージプロバイダー (KSP) を使用する