

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

# AWS CloudHSM クライアント SDK 5 用の PKCS \$111 ライブラリ
<a name="pkcs11-library"></a>

PKCS \$111 は、ハードウェアセキュリティモジュール (HSM) で暗号化オペレーションを実行するための標準です。 AWS CloudHSM は、PKCS \$111 バージョン 2.40 に準拠した PKCS \$111 ライブラリの実装を提供します。

ブートストラップの詳細については、「[クラスターへの接続](cluster-connect.md)」を参照してください。トラブルシューティングについては、「[の PKCS \$111 ライブラリの既知の問題 AWS CloudHSMPKCS\$111 ライブラリの既知の問題](ki-pkcs11-sdk.md)」を参照してください。

クライアント SDK 3 の使用の詳細については、「[以前の SDK バージョンを使用して を操作する AWS CloudHSM](choose-client-sdk.md)」を参照してください。

**Topics**
+ [PKCS \$111 ライブラリのインストール](pkcs11-library-install.md)
+ [PKCS \$111 ライブラリの認証](pkcs11-pin.md)
+ [キータイプ](pkcs11-key-types.md)
+ [メカニズム](pkcs11-mechanisms.md)
+ [API オペレーション](pkcs11-apis.md)
+ [キー属性](pkcs11-attributes.md)
+ [コードサンプル](pkcs11-samples.md)
+ [詳細設定](pkcs11-library-configs.md)
+ [証明書ストレージ](pkcs11-certificate-storage.md)

# AWS CloudHSM クライアント SDK 5 用の PKCS \$111 ライブラリをインストールする
<a name="pkcs11-library-install"></a>

このトピックでは、 AWS CloudHSM クライアント SDK 5 バージョンシリーズの最新バージョンの PKCS \$111 ライブラリをインストールする方法について説明します。クライアント SDK または PKCS \$111 ライブラリの詳細については、[[クライアント SDK の使用](use-hsm.md)] と [[PKCS \$111 ライブラリ](pkcs11-library.md)] を参照してください。

クライアント SDK 5 では、クライアントデーモンをインストールまたは実行する必要はありません。

クライアント SDK 5 で単一の HSM クラスターを実行するには、まず `disable_key_availability_check` を `True` に設定してクライアントキーの耐久性の設定を管理する必要があります。詳細については、[キーの同期](manage-key-sync.md) と [クライアント SDK 5 設定ツール](configure-sdk-5.md) を参照してください。

クライアント SDK 5 の PKCS \$111 ライブラリの詳細については、[[PKCS \$111 ライブラリ](pkcs11-library.md)] を参照してください。

**注記**  
クライアント SDK 5 で単一の HSM クラスターを実行するには、まず `disable_key_availability_check` を `True` に設定してクライアントキーの耐久性の設定を管理する必要があります。詳細については、[キーの同期](manage-key-sync.md) と [クライアント SDK 5 設定ツール](configure-sdk-5.md) を参照してください。

**PKCS \$111 ライブラリをインストールおよび設定するには**

1. 次のコマンドを使用して、PKCS \$111 ライブラリのダウンロードとインストールを行います。

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

   X86\$164 アーキテクチャ上で Amazon Linux 2023 用の PKCS \$111 ライブラリをインストールします。

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

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

   ARM64 アーキテクチャ上で Amazon Linux 2023 用の PKCS \$111 ライブラリをインストールします。

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

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

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

   X86\$164 アーキテクチャ上で Amazon Linux 2 用の PKCS \$111 ライブラリをインストールします。

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

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

   ARM64 アーキテクチャ上で Amazon Linux 2 用の PKCS \$111 ライブラリをインストールします。

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

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

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

   RHEL 10 用の PKCS \$111 ライブラリを X86\$164 アーキテクチャにインストールします。

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

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

   RHEL 10 用の PKCS \$111 ライブラリを ARM64 アーキテクチャにインストールします。

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

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

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

   RHEL 9 用の PKCS \$111 ライブラリーを X86\$164 アーキテクチャにインストールします。

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

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

   RHEL 9 用の PKCS \$111 ライブラリーを ARM64 アーキテクチャにインストールします。

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

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

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

   RHEL 8 用の PKCS \$111 ライブラリーを X86\$164 アーキテクチャにインストールします。

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

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

   RHEL 8 用の PKCS \$111 ライブラリを ARM64 アーキテクチャにインストールします。

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

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

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

   Ubuntu 24.04 LTS 用の PKCS \$111 ライブラリを X86\$164 アーキテクチャにインストールします。

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

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

   Ubuntu 24.04 LTS 用の PKCS \$111 ライブラリを ARM64 アーキテクチャにインストールします。

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

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

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

   Ubuntu 22.04 LTS 用の PKCS \$111 ライブラリを X86\$164 アーキテクチャにインストールします。

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

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

   Ubuntu 22.04 LTS 用の PKCS \$111 ライブラリを ARM64 アーキテクチャにインストールします。

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

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

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

   Windows Server 用の PKCS \$111 ライブラリを X86\$164 アーキテクチャにインストールします。

   1. [[クライアント SDK 5 用の PKCS \$111 ライブラリ](https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMPKCS11-latest.msi)] をダウンロードします。

   1. Windows の管理権限を持つ PKCS \$111 ライブラリインストーラ (**AWSCloudHSMPKCS11-latest.msi**) を実行します。

------

1. 構成ツールを使用して、証明書の発行場所を指定します。手順については、「[発行証明書の場所を指定する](cluster-connect.md#specify-cert-location)」を参照してください。

1. クラスターに接続して使用するには、「[クライアント SDK をブートストラップする](cluster-connect.md#connect-how-to)」を参照してください。

1. PKCS \$111 ライブラリのファイルは、次の場所にあります。
   + Linuxのバイナリ、設定スクリプト、およびログファイル:

     ```
     /opt/cloudhsm
     ```

     Windows のバイナリ:

     ```
     C:\Program Files\Amazon\CloudHSM
     ```

     Windows の設定スクリプトとログファイル:

     ```
     C:\ProgramData\Amazon\CloudHSM
     ```

# AWS CloudHSM クライアント SDK 5 の PKCS \$111 ライブラリへの認証
<a name="pkcs11-pin"></a>

PKCS \$111 ライブラリを使用すると、アプリケーションは AWS CloudHSMで特定の [Crypto User (CU)](manage-hsm-users.md) として実行されます。アプリケーションは、CU が所有して共有するキーのみを表示および管理できます。既存の CU を HSM で使用することも、アプリケーションに新しい CU を作成することもできます。CU の管理については、「[CloudHSM CLI による HSM ユーザーの管理](manage-hsm-users-chsm-cli.md)」および「[CloudHSM 管理ユーティリティ (CMU) による HSM ユーザーの管理](manage-hsm-users-cmu.md)」を参照してください

PKCS \$111 に CU を指定するには、PKCS \$111 [[C\$1Login 関数](http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html#_Toc385057915)] のピンパラメーターを使用します。の場合 AWS CloudHSM、ピンパラメータの形式は次のとおりです。

```
<CU_user_name>:<password>
```

たとえば、次のコマンドでユーザー名 `CryptoUser` とパスワード `CUPassword123!` を使用して PKCS \$111 ライブラリのピンを CU に設定します。

```
CryptoUser:CUPassword123!
```

# AWS CloudHSM クライアント SDK 5 の PKCS \$111 ライブラリでサポートされているキータイプ
<a name="pkcs11-key-types"></a>

 AWS CloudHSM クライアント SDK 5 の PKCS \$111 ライブラリは、次のキータイプをサポートしています。


****  

| キータイプ | 説明 | 
| --- | --- | 
| AES | 128、192、256 ビットの AES キーを生成します。 | 
| Triple DES (3DES、DESede) | 192 ビットのトリプル DES キーを生成します。今後の変更については、以下の注記「[1](#key-types-1)」を参照してください。 | 
| EC | secp224r1 (P-224)、secp256r1 (P-256)、secp256k1 (ブロックチェーン)、secp384r1 (P-384)、secp521r1 (P-521) のカーブを使用してキーを生成します。 | 
| [GENERIC\$1SECRET]  | 1～800 バイトの汎用シークレットを生成します。 | 
| RSA | 256 ビットの増分で、2,048～4,096 ビットの RSA キーを生成します。 | 

[1] NIST ガイダンスに従い、2023 年以降の FIPS モードのクラスターでは、これは許可されません。FIPS 以外のモードのクラスターでは、2023 年以降も許可されます。詳細については、「[FIPS 140 コンプライアンス: 2024 年 メカニズムの非推奨](compliance-dep-notif.md#compliance-dep-notif-1)」を参照してください。

# AWS CloudHSM クライアント SDK 5 の PKCS \$111 ライブラリでサポートされているメカニズム
<a name="pkcs11-mechanisms"></a>

PKCS \$111 ライブラリは PKCS \$111 仕様のバージョン 2.40 に準拠しています。PKCS\$111 を使用して暗号化機能を呼び出すには、指定されたメカニズムで関数を呼び出します。以下のセクションでは、 AWS CloudHSM クライアント SDK 5 でサポートされている関数とメカニズムの組み合わせをまとめます。

PKCS \$111 ライブラリは、次のアルゴリズムをサポートしています。
+ [**暗号化と復号化**] AES-CBC、AES-CTR、AES-ECB、AES-GCM、DES3-CBC、DES3-ECB、RSA-OAEP、RSA-PKCS
+ [**署名と確認**] RSA、HMAC、ECDSA (ハッシュあり、なし)
+ [**ハッシュ/ダイジェスト**] SHA1、SHA224、SHA256、SHA384、SHA512
+ [**キーラップ**] AES キーラップ、[[1](#mech1)] AES-GCM、RSA-AES、RSA-OAEP
+ **キー導出** — SP800-108 Counter KDF、および KDF 付き ECDH (サポートされている KDF アルゴリズムは、X9.63 with SHA1、SHA224、SHA256、SHA384、SHA512 です)

**Topics**
+ [

## キーとキーペアの関数を生成する
](#pkcs11-mech-function-genkey)
+ [

## 署名および検証
](#pkcs11-mech-function-signverify)
+ [

## リカバリ機能への署名、リカバリ、検証
](#pkcs11-mech-function-sr-vr)
+ [

## ダイジェスト関数
](#pkcs11-mech-function-digest)
+ [

## 暗号化と復号
](#pkcs11-mech-function-enc-dec)
+ [

## キー機能の導出
](#pkcs11-mech-function-derive-key)
+ [

## ラップ関数とアンラップ関数
](#pkcs11-mech-function-wrap-unwrap)
+ [

## 各メカニズムの最大データサイズ
](#pkcs11-mech-max)
+ [

## メカニズムの注釈
](#pkcs11-mech-annotations)

## キーとキーペアの関数を生成する
<a name="pkcs11-mech-function-genkey"></a>

PKCS \$111 ライブラリ用の AWS CloudHSM ソフトウェアライブラリを使用すると、キーとキーペアの生成関数に次のメカニズムを使用できます。
+ `CKM_RSA_PKCS_KEY_PAIR_GEN`
+ `CKM_RSA_X9_31_KEY_PAIR_GEN` – このメカニズムは機能的には `CKM_RSA_PKCS_KEY_PAIR_GEN` メカニズムと似ていますが、`p` と `q` の生成に関してより強力な保証を提供します。
+ `CKM_EC_KEY_PAIR_GEN`
+ `CKM_GENERIC_SECRET_KEY_GEN`
+ `CKM_AES_KEY_GEN`
+ `CKM_DES3_KEY_GEN`— 今後の変更は脚注 [5](#mech5) に記載されています。

## 署名および検証
<a name="pkcs11-mech-function-signverify"></a>

PKCS \$111 ライブラリ用の AWS CloudHSM ソフトウェアライブラリを使用すると、署名および検証関数に次のメカニズムを使用できます。クライアント SDK 5 では、データはソフトウェアでローカルにハッシュされます。つまり、SDK でハッシュできるデータのサイズに制限はありません。

クライアント SDK 5 では、RSA と ECDSA のハッシュはローカルで行われるため、データ制限はありません。HMAC にはデータ制限があります。詳細については、脚注 [2](#mech2) を参照してください。

**RSA**
+ `CKM_RSA_X_509`
+ `CKM_RSA_PKCS` – シングルパートのオペレーションのみ。
+ `CKM_RSA_PKCS_PSS` – シングルパートのオペレーションのみ。
+ `CKM_SHA1_RSA_PKCS`
+ `CKM_SHA224_RSA_PKCS`
+ `CKM_SHA256_RSA_PKCS`
+ `CKM_SHA384_RSA_PKCS`
+ `CKM_SHA512_RSA_PKCS`
+ `CKM_SHA512_RSA_PKCS`
+ `CKM_SHA1_RSA_PKCS_PSS`
+ `CKM_SHA224_RSA_PKCS_PSS`
+ `CKM_SHA256_RSA_PKCS_PSS`
+ `CKM_SHA384_RSA_PKCS_PSS`
+ `CKM_SHA512_RSA_PKCS_PSS`

**ECDSA**
+ `CKM_ECDSA` – シングルパートのオペレーションのみ。
+ `CKM_ECDSA_SHA1`
+ `CKM_ECDSA_SHA224`
+ `CKM_ECDSA_SHA256`
+ `CKM_ECDSA_SHA384`
+ `CKM_ECDSA_SHA512`

**HMAC**
+ `CKM_SHA_1_HMAC`[2](#mech2)
+ `CKM_SHA224_HMAC`[2](#mech2)
+ `CKM_SHA256_HMAC`[2](#mech2)
+ `CKM_SHA384_HMAC`[2](#mech2)
+ `CKM_SHA512_HMAC`[2](#mech2)

**CMAC**
+ `CKM_AES_CMAC`

## リカバリ機能への署名、リカバリ、検証
<a name="pkcs11-mech-function-sr-vr"></a>

クライアント SDK 5 は、署名と復号機能をサポートしていません。

## ダイジェスト関数
<a name="pkcs11-mech-function-digest"></a>

PKCS \$111 ライブラリ用の AWS CloudHSM ソフトウェアライブラリを使用すると、ダイジェスト関数に次のメカニズムを使用できます。クライアント SDK 5 では、データはソフトウェアでローカルにハッシュされます。つまり、SDK でハッシュできるデータのサイズに制限はありません。
+ `CKM_SHA_1`
+ `CKM_SHA224`
+ `CKM_SHA256`
+ `CKM_SHA384`
+ `CKM_SHA512`

## 暗号化と復号
<a name="pkcs11-mech-function-enc-dec"></a>

PKCS \$111 ライブラリ用の AWS CloudHSM ソフトウェアライブラリを使用すると、暗号化および復号関数に次のメカニズムを使用できます。
+ `CKM_RSA_X_509`
+ `CKM_RSA_PKCS` – シングルパートのオペレーションのみ。今後の変更は脚注 [5](#mech5) に記載されています。
+ `CKM_RSA_PKCS_OAEP` – シングルパートのオペレーションのみ。
+ `CKM_AES_ECB`
+ `CKM_AES_CTR`
+ `CKM_AES_CBC`
+ `CKM_AES_CBC_PAD`
+ `CKM_DES3_CBC`— 今後の変更は脚注 [5](#mech5) に記載されています。
+ `CKM_DES3_ECB`— 今後の変更は脚注 [5](#mech5) に記載されています。
+ `CKM_DES3_CBC_PAD`— 今後の変更は脚注 [5](#mech5) に記載されています。
+  `CKM_AES_GCM` [1](#mech1), [2](#mech2)
+ `CKM_CLOUDHSM_AES_GCM`[3](#mech3)

## キー機能の導出
<a name="pkcs11-mech-function-derive-key"></a>

PKCS \$111 ライブラリ用の AWS CloudHSM ソフトウェアライブラリは、次のキー取得メカニズムをサポートしています。
+ `CKM_SP800_108_COUNTER_KDF`
+ `CKM_ECDH1_DERIVE` - 次のベンダー定義の KDF タイプを使用した ECDH キー導出をサポートします[6](#kdf6)。
  + `CKD_CLOUDHSM_X963_SHA1_KDF` - X9.63 KDF with SHA1[7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA224_KDF` - X9.63 KDF with SHA224[7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA256_KDF` - X9.63 KDF with SHA256[7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA384_KDF` - X9.63 KDF with SHA384[7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA512_KDF` - X9.63 KDF with SHA512[7](#kdf7)

## ラップ関数とアンラップ関数
<a name="pkcs11-mech-function-wrap-unwrap"></a>

PKCS \$111 ライブラリ用の AWS CloudHSM ソフトウェアライブラリを使用すると、ラップ関数とラップ解除関数に次のメカニズムを使用できます。

AES キーラップに関する追加情報については、[[AES キーラップ](manage-aes-key-wrapping.md)] を参照してください。
+ `CKM_RSA_PKCS` – シングルパートのオペレーションのみ。今後の変更は、脚注 [5](#mech5) に記載されています。
+ `CKM_RSA_PKCS_OAEP`[4](#mech4)
+ `CKM_AES_GCM`[1](#mech1), [3](#mech3)
+ `CKM_CLOUDHSM_AES_GCM`[3](#mech3)
+ `CKM_RSA_AES_KEY_WRAP`
+ `CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD`[3](#mech3)
+ `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`[3](#mech3)
+ `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`[3](#mech3)

## 各メカニズムの最大データサイズ
<a name="pkcs11-mech-max"></a>

次の表は、各メカニズムに設定されている最大データサイズを示します: 


**最大データセットサイズ**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/pkcs11-mechanisms.html)

## メカニズムの注釈
<a name="pkcs11-mech-annotations"></a>
+ [1] AES-GCM の暗号化を実行している際、HSM はアプリケーションからの初期化ベクトル (IV) データを受け入れません。HSM が生成した IV を使用する必要があります。HSM で生成された 12 バイトの IV は、指定した `CK_GCM_PARAMS` パラメータ構造の pIV 要素が指すメモリ参照に書き込まれます。ユーザーが混乱しないよう、バージョン 1.1.1 以降の PKCS\$111 SDK では、AES-GCM 暗号化が初期化されると、pIV はゼロ化されたバッファを指し示すようになっています。
+ [2] 以下の仕組みでデータをオペレーションする場合、データバッファが最大データサイズを超えるとオペレーションがエラーとなります。これらのメカニズムでは、すべてのデータ処理が HSM 内で行われる必要があります。各メカニズムの最大データサイズセットについては、「[各メカニズムの最大データサイズ](#pkcs11-mech-max)」を参照してください。
+ [3] ベンダー定義のメカニズム。CloudHSM ベンダー定義のメカニズムを使用するには、コンパイル時に PKCS \$111 アプリケーションに `/opt/cloudhsm/include/pkcs11/pkcs11t.h` を含める必要があります。

  `CKM_CLOUDHSM_AES_GCM`: この独自のメカニズムは、標準 `CKM_AES_GCM` よりもプログラム的に安全な代替手段です。これは、HSM によって生成された IV を、暗号の初期化中に提供される `CK_GCM_PARAMS` 構造体に書き戻すのではなく、暗号文の先頭に付加します。このメカニズムは `C_Encrypt`、`C_WrapKey`、`C_Decrypt`、`C_UnwrapKey` 関数で使用できます。このメカニズムを使用する場合は、`CK_GCM_PARAMS` 構造体内の pIV 変数を `NULL` に設定する必要があります。このメカニズムを `C_Decrypt` および `C_UnwrapKey` と共に使用する場合、IV は、ラップ解除される暗号文の前に付加されることが想定されます。

  `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`: PKCS \$15 パディングを使用する AES キーラップ。

  `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`: ゼロパディングを使用する AES キーラップ。
+ [4] 次の `CK_MECHANISM_TYPE` および `CK_RSA_PKCS_MGF_TYPE` は、`CK_RSA_PKCS_OAEP_PARAMS` の `CKM_RSA_PKCS_OAEP` としてサポートされています:
  + `CKG_MGF1_SHA1` を使用する `CKM_SHA_1`
  + `CKG_MGF1_SHA224` を使用する `CKM_SHA224`
  + `CKG_MGF1_SHA256` を使用する `CKM_SHA256`
  + `CKM_MGF1_SHA384` を使用する `CKM_SHA384`
  + `CKM_MGF1_SHA512` を使用する `CKM_SHA512`
+ [5] NIST ガイダンスに従い、2023 年以降の FIPS モードのクラスターでは、これは許可されません。FIPS 以外のモードのクラスターでは、2023 年以降も許可されます。詳細については、「[FIPS 140 コンプライアンス: 2024 年 メカニズムの非推奨](compliance-dep-notif.md#compliance-dep-notif-1)」を参照してください。
+ [6] ベンダー定義タイプ。CloudHSM ベンダー定義タイプを使用するには、コンパイル時に PKCS \$111 アプリケーションに `cloudhsm_pkcs11_vendor_defs.h` を含める必要があります。これは、Linux ベースのプラットフォームでは `/opt/cloudhsm/include/pkcs11/cloudhsm_pkcs11_vendor_defs.h` に、Windows ベースのプラットフォームでは `C:\Program Files\Amazon\CloudHSM\include\pkcs11\cloudhsm_pkcs11_vendor_defs.h` にあります。
+ [7] キー取得関数 (KDFs) は [NIST Special Publication 800-56A Revision 3 ](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf)で指定されています。

# AWS CloudHSM クライアント SDK 5 の PKCS \$111 ライブラリでサポートされている API オペレーション
<a name="pkcs11-apis"></a>

PKCS \$111 ライブラリは、 AWS CloudHSM クライアント SDK 5 の次の PKCS \$111 API オペレーションをサポートしています。
+ `C_CloseAllSessions`
+ `C_CloseSession`
+ `C_CreateObject`
+ `C_Decrypt`
+ `C_DecryptFinal`
+ `C_DecryptInit`
+ `C_DecryptUpdate`
+ `C_DeriveKey`
+ `C_DestroyObject`
+ `C_Digest`
+ `C_DigestFinal`
+ `C_DigestInit`
+ `C_DigestUpdate`
+ `C_Encrypt`
+ `C_EncryptFinal`
+ `C_EncryptInit`
+ `C_EncryptUpdate`
+ `C_Finalize`
+ `C_FindObjects`
+ `C_FindObjectsFinal`
+ `C_FindObjectsInit`
+ `C_GenerateKey`
+ `C_GenerateKeyPair`
+ `C_GenerateRandom`
+ `C_GetAttributeValue`
+ `C_GetFunctionList`
+ `C_GetInfo`
+ `C_GetMechanismInfo`
+ `C_GetMechanismList`
+ `C_GetSessionInfo`
+ `C_GetSlotInfo`
+ `C_GetSlotList`
+ `C_GetTokenInfo`
+ `C_Initialize`
+ `C_Login`
+ `C_Logout`
+ `C_OpenSession`
+ `C_Sign`
+ `C_SignFinal`
+ `C_SignInit`
+ `C_SignUpdate`
+ `C_UnWrapKey`
+ `C_Verify`
+ `C_VerifyFinal`
+ `C_VerifyInit`
+ `C_VerifyUpdate`
+ `C_WrapKey`

# AWS CloudHSM クライアント SDK 5 の PKCS \$111 ライブラリの主な属性
<a name="pkcs11-attributes"></a>

 AWS CloudHSM キーオブジェクトは、パブリックキー、プライベートキー、シークレットキーのいずれかです。キーオブジェクトで許可されているアクションは属性で指定されます。属性は、キーオブジェクトの作成時に定義されます。PKCS \$111 ライブラリを に使用すると AWS CloudHSM、PKCS \$111 標準で指定されたデフォルト値が割り当てられます。

AWS CloudHSM は、PKCS \$111 仕様に記載されているすべての属性をサポートしているわけではありません。サポートするすべての属性の仕様に準拠しています。これらの属性は、それぞれのテーブルにリストされています。

オブジェクトを作成、変更、またはコピーする `C_CreateObject`、`C_GenerateKey`、`C_GenerateKeyPair`、`C_UnwrapKey`、`C_DeriveKey` などの暗号化関数は、属性テンプレートをパラメータの 1 つとして使用します。オブジェクトの作成中に属性テンプレートを渡す方法の詳細については、「[PKCS \$111 ライブラリを使用したキーの生成](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/generate)」のサンプルを参照してください。

以下のトピックでは、 AWS CloudHSM キー属性について詳しく説明します。

**Topics**
+ [属性テーブル](pkcs11-attributes-interpreting.md)
+ [属性の変更](modify-attr.md)
+ [エラーコードの解釈](attr-errors.md)

# AWS CloudHSM クライアント SDK 5 の PKCS \$111 ライブラリ属性テーブル
<a name="pkcs11-attributes-interpreting"></a>

の PKCS \$111 ライブラリテーブルには、キータイプによって異なる属性のリスト AWS CloudHSM が含まれています。特定の暗号化関数を で使用するときに、特定のキータイプで特定の属性がサポートされるかどうかを示します AWS CloudHSM。

**凡例:**
+ ✔ CloudHSM が特定のキータイプの属性をサポートしていることを示します。
+ ✖ CloudHSM が特定のキータイプの属性をサポートしていないこと示します。
+ R は、属性値が特定のキータイプに対して読み取り専用に設定されていることを示します。
+ S は、属性が機密であるため、`GetAttributeValue` で読み取れないことを示します。
+ [Default Value] 列のセルが空の場合は、属性に割り当てられている特定のデフォルト値がないことを示します。

## GenerateKeyPair
<a name="generatekeypair"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

## GenerateKey
<a name="generatekey"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

## CreateObject
<a name="createobject"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

## UnwrapKey
<a name="unwrapkey"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

## DeriveKey
<a name="derivekey"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

## GetAttributeValue
<a name="getattributevalue"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

**属性注釈**
+ [1] この属性はファームウェアによって部分的にサポートされており、デフォルト値にのみ明示的に設定する必要があります。
+ [2] 必須属性。

# AWS CloudHSM クライアント SDK 5 の PKCS \$111 ライブラリ属性の変更
<a name="modify-attr"></a>

 AWS CloudHSM オブジェクトの PKCS \$111 ライブラリ属性の中には、オブジェクトの作成後に変更できるものもあれば、できないものもあります。属性を修正するには、CloudHSM CLI の [key set-attribute](cloudhsm_cli-key-set-attribute.md) コマンドを使用します。CloudHSM CLI の [key list](cloudhsm_cli-key-list.md) コマンドを使用して属性のリストを導出することもできます。

次のリストで、オブジェクトの作成後に変更が許可荒れている許可されている属性が表示されます。
+ `CKA_LABEL`
+ `CKA_TOKEN`
**注記**  
変更が許可されるには、セッションキーをトークンキーに変更する場合のみです。CloudHSM CLI の [key set-attribute](cloudhsm_cli-key-set-attribute.md) コマンドを使用して属性値を変更します。
+ `CKA_ENCRYPT`
+ `CKA_DECRYPT`
+ `CKA_SIGN`
+ `CKA_VERIFY`
+ `CKA_WRAP`
+ `CKA_UNWRAP`
+ `CKA_LABEL`
+ `CKA_SENSITIVE`
+ `CKA_DERIVE`
**注記**  
この属性ではキー取得がサポートされています。すべてのパブリックキーで `False` を指定する必要があります。`True` に設定することはできません。シークレットキーまたは EC プライベートキーに対しては、`True` または `False` に設定できます。
+ `CKA_TRUSTED`
**注記**  
この属性は Crypto Officer (CO) のみによって `True` または `False` に設定できます。
+ `CKA_WRAP_WITH_TRUSTED`
**注記**  
この属性をエクスポート可能なデータキーに適用して、このキーを `CKA_TRUSTED` としてマークされたキーでのみラップできるように指定します。1度 `CKA_WRAP_WITH_TRUSTED` を true に設定すると属性は読み取り専用になり、属性を変更または削除することはできません。

# AWS CloudHSM クライアント SDK 5 の PKCS \$111 ライブラリエラーコードの解釈
<a name="attr-errors"></a>

特定のキーでサポートされていない PKCS \$111 ライブラリ属性をテンプレートで指定すると、エラーが発生します。次の表には、仕様に違反した場合に生成されるエラーコードが含まれています。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/attr-errors.html)

# AWS CloudHSM クライアント SDK 5 用の PKCS \$111 ライブラリのコードサンプル
<a name="pkcs11-samples"></a>

GitHub のコードサンプルは、 AWS CloudHSM クライアント SDK 5 の PKCS \$111 ライブラリを使用して基本的なタスクを実行する方法を示しています。

## 前提条件
<a name="pkcs11-samples-prereqs"></a>

サンプルを実行する前に、以下のステップを実行して環境をセットアップします。
+ クライアント SDK 5 用の [PKCS \$111 ライブラリ](pkcs11-library-install.md) のインストールと設定をします。
+ [暗号化ユーザー (CU)](manage-hsm-users.md) の設定をします。アプリケーションは、この HSM アカウントを使用して HSM でコードサンプルを実行します。

## コードサンプル
<a name="pkcs11-samples-code"></a>

PKCS\$111 用 AWS CloudHSM ソフトウェアライブラリのコードサンプルは、[GitHub](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples) で入手できます。このリポジトリには、暗号化、復号化、署名、検証など、PKCS \$111 を使用して一般的な操作を行う方法の例が含まれています。
+ [キーの生成 (AES、RSA、EC)](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/generate)
+ [キー属性のリスト化](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/attributes/)
+ [AES GCM を使用したデータの暗号化および復号](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/encrypt/aes_gcm.c)
+ [AES\$1CTR を使用したデータの暗号化および復号](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/encrypt/aes_ctr.c) 
+ [3DES を使用したデータの暗号化および復号](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/encrypt/des_ecb.c) 
+ [RSAを使用したデータの署名と検証](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/sign/rsa_sign.c)
+ [HMAC KDFを使用したキーの取得](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/derivation/hmac_kdf.c)
+ [PKCS \$15 パディングありの AES を使用したキーのラップとラップ解除](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/aes_wrapping.c)
+ [パディングなしの AES を使用したキーのラップとラップ解除](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/aes_no_padding_wrapping.c)
+ [ゼロパディングありの AES を使用したキーのラップとラップ解除](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/aes_zero_padding_wrapping.c)
+ [AES-GCM を使用したキーのラップとラップ解除](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/wrapping/aes_gcm_wrapping.c)
+ [RSA を使用したキーのラップとラップ解除](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/rsa_wrapping.c)

# の PKCS \$111 ライブラリの詳細設定 AWS CloudHSM
<a name="pkcs11-library-configs"></a>

 AWS CloudHSM PKCS \$111 プロバイダーには、ほとんどのお客様が使用する一般的な設定の一部ではない、次の高度な設定が含まれています。これらの設定には追加機能があります。
+ [PKCS \$111 による複数のスロットへの接続](pkcs11-library-configs-multi-slot.md)
+ [PKCS \$111 の設定を再試行します](pkcs11-library-configs-retry.md)

# 用の PKCS \$111 ライブラリを使用した複数のスロット設定 AWS CloudHSM
<a name="pkcs11-library-configs-multi-slot"></a>

クライアント SDK 5 PKCS \$111 ライブラリ内の 1 つのスロットは、 AWS CloudHSM内のクラスターへの 1 つの接続を表します。クライアント SDK 5 では、1 つの PKCS \$111 アプリケーションから複数のスロットでユーザーを複数の CloudHSM クラスターに接続できるように PKCS11 ライブラリを設定できます。

このトピックで説明されている手順に従って、アプリケーションがマルチスロット機能を使用して複数のクラスターに接続するようにします。

**Topics**
+ [

## の PKCS \$111 ライブラリのマルチスロット前提条件 AWS CloudHSM
](#pkcs11-multi-slot-prereqs)
+ [

# のマルチスロット機能用に PKCS \$111 ライブラリを設定する AWS CloudHSM
](pkcs11-multi-slot-config-run.md)
+ [

# のマルチスロット機能を持つクラスターを追加する AWS CloudHSM
](pkcs11-multi-slot-add-cluster.md)
+ [

# のマルチスロット機能を持つクラスターを削除する AWS CloudHSM
](pkcs11-multi-slot-remove-cluster.md)

## の PKCS \$111 ライブラリのマルチスロット前提条件 AWS CloudHSM
<a name="pkcs11-multi-slot-prereqs"></a>

PKCS \$111 ライブラリの複数のスロットに を設定する前に AWS CloudHSM、次の前提条件を完了してください。
+ 接続先の 2 つ以上の AWS CloudHSM クラスターとそのクラスター証明書。
+ セキュリティグループが上記のすべてのクラスターに接続するように正しく設定された EC2 インスタンス。クラスターとクライアントインスタンスのセットアップ方法の詳細については、[「 の開始方法 AWS CloudHSM](getting-started.md)」を参照してください。
+ マルチスロット機能を設定するには、PKCS \$111 ライブラリを事前にダウンロードしてインストールしておく必要があります。これをまだ確認していない場合は、「[AWS CloudHSM クライアント SDK 5 用の PKCS \$111 ライブラリをインストールする](pkcs11-library-install.md)」の手順を参照してください。

# のマルチスロット機能用に PKCS \$111 ライブラリを設定する AWS CloudHSM
<a name="pkcs11-multi-slot-config-run"></a>

のマルチスロット機能用に PKCS \$111 ライブラリを設定するには AWS CloudHSM、次の手順に従います。

1. マルチスロット機能を使用して接続するクラスターを特定します。

1. [のマルチスロット機能を持つクラスターを追加する AWS CloudHSM](pkcs11-multi-slot-add-cluster.md) の手順に従って、これらのクラスターを PKCS \$111 設定に追加します。

1. 次回 PKCS \$111 アプリケーションを実行するときには、マルチスロット機能が使用できるようになります。

# のマルチスロット機能を持つクラスターを追加する AWS CloudHSM
<a name="pkcs11-multi-slot-add-cluster"></a>

[PKCS \$111 for を使用して複数のスロットに接続する](pkcs11-library-configs-multi-slot.md)場合は AWS CloudHSM、 **configure-pkcs11 add-cluster** コマンドを使用して設定にクラスターを追加します。

## 構文
<a name="pkcs11-multi-slot-add-cluster-syntax"></a>

```
configure-pkcs11 add-cluster [OPTIONS]
        --cluster-id <CLUSTER ID> 
        [--region <REGION>]
        [--endpoint <ENDPOINT>]
        [--hsm-ca-cert <HSM CA CERTIFICATE FILE>]
        [--client-cert-hsm-tls-file <CLIENT CERTIFICATE FILE>]
        [--client-key-hsm-tls-file <CLIENT KEY FILE>]
        [-h, --help]
```

## 例
<a name="pkcs11-multi-slot-add-cluster-examples"></a>

### `cluster-id` パラメータを使用してクラスターを追加する
<a name="w2aac25c21c17c31b7c13b7b3b1"></a>

**Example**  
 **configure-pkcs11 add-cluster** とともに `cluster-id` パラメータを使用して、クラスター (`cluster-1234567` の ID) を設定に追加します。  

```
$ sudo /opt/cloudhsm/bin/configure-pkcs11 add-cluster --cluster-id <cluster-1234567>
```

```
PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" add-cluster --cluster-id <cluster-1234567>
```

**ヒント**  
**configure-pkcs11 add-cluster** を `cluster-id` パラメータと一緒に使用してもクラスターが追加されない場合は、以下の例を参照して、追加するクラスターを識別するための `--region` と `--endpoint` パラメータも必要な、より長いバージョンのこのコマンドを参照してください。例えば、クラスターのリージョンが AWS CLI のデフォルトとして設定されているものと異なる場合、適切なリージョンを使用するように `--region` パラメータを使用する必要があります。さらに、呼び出しに使用する AWS CloudHSM API エンドポイントを指定することもできます。これは、デフォルトの DNS ホスト名を使用しない VPC インターフェイスエンドポイントを使用するなど、さまざまなネットワーク設定に必要な場合があります AWS CloudHSM。

### `cluster-id`、`endpoint`、および `region` パラメータを使用してクラスターを追加する
<a name="w2aac25c21c17c31b7c13b7b3b3"></a>

**Example**  
 **configure-pkcs11 add-cluster** とともに `cluster-id`、`endpoint`、`region` のパラメータを使用して、クラスター (`cluster-1234567` の ID) を設定に追加します。  

```
$ sudo /opt/cloudhsm/bin/configure-pkcs11 add-cluster --cluster-id <cluster-1234567> --region <us-east-1> --endpoint <https://cloudhsmv2.us-east-1.amazonaws.com>
```

```
PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" add-cluster --cluster-id <cluster-1234567>--region <us-east-1> --endpoint <https://cloudhsmv2.us-east-1.amazonaws.com>
```

`--cluster-id`、`--region`、`--endpoint` パラメータの詳細については、[AWS CloudHSM クライアント SDK 5 設定パラメータ](configure-tool-params5.md)を参照してください。

## パラメータ
<a name="pkcs11-multi-slot-add-cluster-parameters"></a>

**--cluster-id *<Cluster ID>***  
 `DescribeClusters` を呼び出して、クラスターIDに関連付けられたクラスターのすべての HSM Elastic Network Interface（ENI）IPアドレスを検索します。システムは ENI IP アドレスを設定 AWS CloudHSM ファイルに追加します。  
パブリックインターネットにアクセスできない VPC 内の EC2 インスタンスから `--cluster-id`パラメータを使用する場合は、接続するインターフェイス VPC エンドポイントを作成する必要があります AWS CloudHSM。VPC エンドポイントの詳細については、「[AWS CloudHSM および VPC エンドポイント](cloudhsm-vpc-endpoint.md)」を参照してください。
必須: はい

**--endpoint *<Endpoint>***  
`DescribeClusters` 呼び出しに使用する AWS CloudHSM API エンドポイントを指定します。このオプションは `--cluster-id` と組み合わせて設定する必要があります。  
必須: いいえ

**--hsm-ca-cert *<HsmCA Certificate Filepath>***  
HSM CA 証明書ファイルへのファイルパスを指定します。  
必須: いいえ

**--region *<Region>***  
クラスターのリージョンを指定します。このオプションは `--cluster-id` と組み合わせて設定する必要があります。  
この `--region` パラメータを指定しない場合、システムは `AWS_DEFAULT_REGION` または `AWS_REGION` の環境変数の読み取りを試みてリージョンを選択します。これらの変数が設定されていない場合、環境変数で別のファイルを指定しない限り、AWS Config (通常は `~/.aws/config`) のプロファイルに関連付けられたリージョンをチェックします`AWS_CONFIG_FILE`。いずれも設定されていない場合は、`us-east-1` デフォルトでリージョンが設定されます。  
必須: いいえ

**--client-cert-hsm-tls-file *<クライアント証明書の hsm tls パス>***  
 TLS クライアントと HSM の相互認証に使用するクライアント証明書へのパス。  
 このオプションは、CloudHSM CLI で HSM に少なくとも 1 つのトラストアンカーを登録している場合にのみ使用します。このオプションは `--client-key-hsm-tls-file` と組み合わせて設定する必要があります。  
必須: いいえ

**--client-key-hsm-tls-file *<クライアントキー hsm tls のパス＞***  
 TLS クライアントと HSM の相互認証に使用されるクライアントキーへのパス。  
 このオプションは、CloudHSM CLI で HSM に少なくとも 1 つのトラストアンカーを登録している場合にのみ使用します。このオプションは `--client-cert-hsm-tls-file` と組み合わせて設定する必要があります。  
必須: いいえ

# のマルチスロット機能を持つクラスターを削除する AWS CloudHSM
<a name="pkcs11-multi-slot-remove-cluster"></a>

[PKCS \$111 を使用して複数のスロットに接続する](pkcs11-library-configs-multi-slot.md)場合は、**configure-pkcs11 remove-cluster** コマンドを使用して使用可能な PKCS\$111 スロットからクラスターを削除します。

## 構文
<a name="pkcs11-multi-slot-remove-cluster-syntax"></a>

```
configure-pkcs11 remove-cluster [OPTIONS]
        --cluster-id <CLUSTER ID>
        [-h, --help]
```

## 例
<a name="pkcs11-multi-slot-remove-cluster-examples"></a>

### `cluster-id` パラメータを使用してクラスターを削除します
<a name="w2aac25c21c17c31b7c15b7b3b1"></a>

**Example**  
 **configure-pkcs11 remove-cluster** とともに `cluster-id` パラメータを使用して、クラスター (`cluster-1234567` の ID) を設定から削除します。  

```
$ sudo /opt/cloudhsm/bin/configure-pkcs11 remove-cluster --cluster-id <cluster-1234567>
```

```
PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" remove-cluster --cluster-id <cluster-1234567>
```

`--cluster-id` パラメータの詳細については、「[AWS CloudHSM クライアント SDK 5 設定パラメータ](configure-tool-params5.md)」をご参照ください。

## パラメータ
<a name="pkcs11-multi-slot-remove-cluster-parameters"></a>

**--cluster-id *<Cluster ID>***  
 設定から削除するクラスターの ID  
必須: はい

# の PKCS \$111 ライブラリのコマンドを再試行する AWS CloudHSM
<a name="pkcs11-library-configs-retry"></a>

AWS CloudHSM クライアント SDK 5.8.0 以降には、HSM スロットリングされたオペレーションをクライアント側から再試行する自動再試行戦略が組み込まれています。HSM が以前のオペレーションが多すぎてそれ以上リクエストを受け付けられないためにオペレーションをスロットリングすると、Client SDK はスロットリングされたオペレーションを最大 3 回再試行しますが、その間、エクスポネンシャルバックオフします。この自動再試行戦略は、**オフ**と**スタンダード**の 2 つのモードのいずれかに設定できます。
+ **オフ**: クライアント SDK は、HSM によってスロットリングされたオペレーションに対しては再試行戦略を一切実行しません。
+ **スタンダード**: これはクライアント SDK 5.8.0 以降のデフォルトモードです。このモードでは、クライアント SDK はエクスポネンシャルバックオフすることで、スロットリングされた操作を自動的に再試行します。

詳細については、「[HSM スロットリング](troubleshoot-hsm-throttling.md)」を参照してください。

## 再試行コマンドをオフモードに設定する
<a name="w2aac25c21c17c31b9b9"></a>

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

**Linux でクライアント SDK 5 向けに再試行コマンドを **off** に設定するには**
+ 次のコマンドを使用して再試行設定を **off** モードに設定できます。

  ```
  $ sudo /opt/cloudhsm/bin/configure-pkcs11 --default-retry-mode off
  ```

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

**Windows 上の クライアント SDK 5 向けに再試行コマンドを **off** に設定するには**
+ 次のコマンドを使用して再試行設定を **off** モードに設定できます。

  ```
  PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" --default-retry-mode off
  ```

------

# PKCS \$111 ライブラリを使用した証明書ストレージ
<a name="pkcs11-certificate-storage"></a>

 AWS CloudHSM の PKCS \$111 ライブラリは、hsm2m.medium クラスター上でパブリックキー証明書を「パブリックオブジェクト」(PKCS \$111 2.40 で定義) として保存することをサポートしています。この機能により、パブリック PKCS \$111 セッションとプライベート PKCS \$111 セッションの両方で、パブリックキー証明書の作成、取得、変更、および削除が可能になります。

 PKCS \$111 ライブラリで証明書ストレージを使用するには、クライアント設定でこの機能を有効にする必要があります。有効化すると、PKCS \$111 アプリケーションから証明書オブジェクトを管理できるようになります。証明書とキーの両方に適用されるオペレーション ([C\$1FindObjects](http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html#_Toc323205461) など) は、キーと証明書の両方のストレージから結果を返します。

**Topics**
+ [証明書ストレージを有効にする](pkcs11-certificate-storage-configuration.md)
+ [証明書ストレージ API](pkcs11-certificate-storage-api.md)
+ [証明書の属性](pkcs11-certificate-storage-attributes.md)
+ [証明書ストレージの監査ログ](pkcs11-certificate-storage-audit-logs.md)

# 証明書ストレージの有効化
<a name="pkcs11-certificate-storage-configuration"></a>

 PKCS \$111 ライブラリの設定ツールを使用して、hsm2m.medium クラスターで証明書ストレージを有効化できます。この機能は、SDK バージョン 5.13 以降で利用可能です。証明書オブジェクトタイプをサポートするオペレーションの一覧については、[証明書ストレージ API オペレーション](pkcs11-certificate-storage-api.md) を参照してください。

 証明書ストレージを有効にするには、使用しているオペレーティングシステムに応じて次の手順に従ってください。

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

****証明書ストレージを有効にする****  
次のコマンドを実行します。

  ```
  $ sudo /opt/cloudhsm/bin/configure-pkcs11 --enable-certificate-storage
  ```

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

****証明書ストレージを有効にする****  
コマンドプロンプトを開き、次のコマンドを実行します。

  ```
  PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" --enable-certificate-storage
  ```

------

# 証明書ストレージ API オペレーション
<a name="pkcs11-certificate-storage-api"></a>

 次の PKCS \$111 オペレーションは、証明書オブジェクトタイプ (`CKO_CERTIFICATE`) をサポートしています。

## 一般的な証明書オペレーション
<a name="general-certificate-operations"></a>

**`C_CreateObject`**  
新しい証明書オブジェクトを作成します。

**`C_DestroyObject`**  
既存の証明書オブジェクトを削除します。

**`C_GetAttributeValue`**  
証明書オブジェクトの 1 つ以上の属性の値を取得します。

**`C_SetAttributeValue`**  
証明書オブジェクトの 1 つ以上の属性の値を更新します。

## 証明書オブジェクトの検索オペレーション
<a name="certificate-object-search-operations"></a>

**`C_FindObjectsInit`**  
証明書オブジェクトの検索を開始します。

**`C_FindObjects`**  
証明書オブジェクトの検索を続行します。

**`C_FindObjectsFinal`**  
証明書オブジェクトの検索を終了します。

# 証明書ストレージの属性
<a name="pkcs11-certificate-storage-attributes"></a>

 次の表に、サポートされている証明書オブジェクトの属性とその値を示します。


| 属性 | デフォルトの 値 | 説明 | 
| --- | --- | --- | 
| `CKA_CLASS` | 必須 | `CKO_CERTIFICATE` を指定してください。 | 
| `CKA_TOKEN` | 正 |  `True` を指定してください。 | 
| `CKA_MODIFIABLE` | 正 | `True` を指定してください。 | 
| `CKA_PRIVATE` | 誤 | `False` を指定してください。 | 
| `CKA_LABEL` | 空 | 最大 127 文字。 | 
| `CKA_COPYABLE` | 誤 | `False` を指定してください。 | 
| `CKA_DESTROYABLE` | 正 | `True` を指定してください。 | 
| `CKA_CERTIFICATE_TYPE` | 必須 | `CKC_X_509` を指定してください。 | 
| `CKA_TRUSTED` | 誤 | `False` を指定してください。 | 
| `CKA_CERTIFICATE_CATEGORY` | `CK_CERTIFICATE_CATEGORY_UNSPECIFIED` | `CK_CERTIFICATE_CATEGORY_UNSPECIFIED` を指定してください。 | 
| `CKA_CHECK_VALUE` | `CKA_VALUE` から派生 | `CKA_VALUE` に基づいて自動的に設定されます。 | 
| `CKA_START_DATE` | 空 | 証明書の「Not Before」日付。 | 
| `CKA_END_DATE` | 空 | 証明書の「Not After」日付。 | 
| `CKA_PUBLIC_KEY_INFO` | 空 | 最大サイズは 16 キロバイトです。 | 
| `CKA_SUBJECT` | 必須 | 証明書のサブジェクト。 | 
| `CKA_ID` | 空 | 最大サイズは 128 バイトです。一意性は強制されません。 | 
| `CKA_ISSUER` | 空 | 証明書の発行者。 | 
| `CKA_SERIAL_NUMBER` | 空 | 証明書のシリアル番号。 | 
| `CKA_VALUE` | 必須 | 最大サイズは 32 キロバイトです。 | 

# 証明書ストレージの監査ログ
<a name="pkcs11-certificate-storage-audit-logs"></a>

 AWS CloudHSM は、データを変更する証明書ストレージのオペレーションについて、クラスターの CloudWatch ロググループ内にある Amazon CloudWatch Events の個別ログストリームに監査ログを書き込みます。このログストリームは、クラスター単位で命名され、クラスタ内の特定の HSM ごとには作成されません。

 CloudWatch で監査ログにアクセスする方法については、[Amazon CloudWatch Logs と AWS CloudHSM 監査ログの使用](get-hsm-audit-logs-using-cloudwatch.md) を参照してください。

## ログエントリフィールド
<a name="pkcs11-certificate-storage-audit-logs-fields"></a>

`object_handle`  
証明書オブジェクトの一意の識別子。

`op_code`  
実行または試行されたオペレーション。使用できる値:  
+ `CreateObject`
+ `DestroyObject`
+ `SetAttributeValues`

`response`  
オペレーションが成功した場合は `OK`、または次のいずれかのエラータイプ。  
+ `DuplicateAttribute`
+ `InvalidAttributeValue`
+ `ObjectNotFound`
+ `MaxObjectsReached`
+ `InternalFailure`

`attributes`  
変更された属性 (存在する場合)。

`timestamp`  
オペレーションが発生した時刻 (Unix エポックからの経過ミリ秒)。

## 監査ログの例
<a name="pkcs11-certificate-storage-audit-logs-examples"></a>

### CreateObject の例
<a name="pkcs11-certificate-storage-audit-logs-examples-create"></a>

```
{
    "object_handle": 463180677312929947,
    "op_code": "CreateObject",
    "response": "OK",
    "attributes": null,
    "timestamp": 1725482483671
}
```

### DestroyObject の例
<a name="pkcs11-certificate-storage-audit-logs-examples-delete"></a>

```
{
    "object_handle": 463180677312929947,
    "op_code": "DestroyObject",
    "response": "OK",
    "attributes": null,
    "timestamp": 1725482484559
}
```

### SetAttributeValues の例
<a name="pkcs11-certificate-storage-audit-logs-examples-set"></a>

```
{
    "object_handle": 463180678453346687,
    "op_code": "SetAttributeValues",
    "response": "OK",
    "attributes": [
        "Label"
    ],
    "timestamp": 1725482488004
}
```

### 失敗した CreateObject の例
<a name="pkcs11-certificate-storage-audit-logs-examples-error"></a>

```
{
    "object_handle": null,
    "op_code": "CreateObject",
    "response": "MaxObjectsReached",
    "attributes": null,
    "timestamp": 1726084937125
}
```