翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Client SDK 3 での AWS CloudHSM KeyStore Java クラスの使用
クラスは、keytool AWS CloudHSM KeyStore
や jarsigner などのアプリケーションを介して AWS CloudHSM キーへのアクセスを許可する、専用 PKCS12 キーストアを提供します。このキーストアでは、証明書をキーデータとともに保存し、 AWS CloudHSMに保存されているキーデータに関連付けることができます。
注記
証明書は公開情報であり、暗号化キーのストレージ容量を最大化するため、 AWS CloudHSM は HSMsへの証明書の保存をサポートしていません。
クラスは、Java AWS CloudHSM KeyStore
Cryptography Extension (JCE) のKeyStore
サービスプロバイダーインターフェイス (SPI) を実装します。の使用の詳細についてはKeyStore
、「クラスKeyStore
適切なキーストアの選択
AWS CloudHSM Java 暗号化拡張 (JCE) プロバイダーには、すべてのトランザクションを HSM に渡すデフォルトのパススルー読み取り専用キーストアが付属しています。このデフォルトのキーストアは、専用 とは異なります AWS CloudHSM KeyStore。ほとんどの場合、デフォルトを使用することにより、ランタイムのパフォーマンスとスループットが向上します。は、HSM AWS CloudHSM KeyStore へのキーオペレーションのオフロードに加えて、証明書と証明書ベースのオペレーションのサポートが必要なアプリケーションにのみ使用してください。
どちらのキーストアも操作に Cavium JCE プロバイダを使用しますが、これらは独立したエンティティであり、相互に情報を交換しません。
Java アプリケーションのデフォルトのキーストアを次のようにロードします。
KeyStore ks = KeyStore.getInstance("Cavium");
専用 CloudHSM KeyStore を次のようにロードします。
KeyStore ks = KeyStore.getInstance("CloudHSM")
初期化中 AWS CloudHSM KeyStore
JCE プロバイダーにログインするの AWS CloudHSM KeyStore と同じ方法で にログインします。環境変数またはシステムプロパティファイルのいずれかを使用できます。CloudHSM KeyStoreの使用を開始する前にログインする必要があります。JCE プロバイダーを使用して HSM にログインする例については、Login to an HSM
必要に応じて、パスワードを指定して、キーストアデータを保持するローカル PKCS12 ファイルを暗号化できます。 AWS CloudHSM キーストアを作成するときは、ロード、設定、取得の方法を使用するときにパスワードを設定し、指定します。
次のように新しい CloudHSM KeyStore オブジェクトをインスタンス化します。
ks.load(null, null);
store
メソッドを使用して、キーストアデータをファイルに書き込みます。その後は、次のように、ソースファイルとパスワードを使用し、load
メソッドを使用して既存のキーストアをロードできます。
ks.load(inputStream, password);
の使用 AWS CloudHSM KeyStore
CloudHSM KeyStore オブジェクトは、通常、jarsigner
AWS CloudHSM KeyStore は JCE クラスKeyStore
-
load
指定された入力ストリームからキーストアをロードします。キーストアの保存時にパスワードが設定されている場合、ロードを成功させるには、この同じパスワードを指定する必要があります。新しい空のキーストアを初期化するには、両方のパラメータを null に設定します。
KeyStore ks = KeyStore.getInstance("CloudHSM"); ks.load(inputStream, password);
-
aliases
指定されたキーストアインスタンス内に含まれるすべてのエントリのエイリアス名の列挙を返します。結果には、PKCS12 ファイルにローカルに保存されたオブジェクトと、HSM 上に存在するオブジェクトが含まれます。
サンプルコード:
KeyStore ks = KeyStore.getInstance("CloudHSM"); for(Enumeration<String> entry = ks.aliases(); entry.hasMoreElements();) { String label = entry.nextElement(); System.out.println(label); }
-
ContainsAlias
キーストアが、指定されたエイリアスを持つ少なくとも 1 つのオブジェクトにアクセスできる場合は true を返します。キーストアは、PKCS12 ファイルにローカルに保存されているオブジェクトと、HSM 上に存在するオブジェクトをチェックします。
-
DeleteEntry
ローカル PKCS12 ファイルから証明書エントリを削除します。HSM に保存されているキーデータの削除は、 ではサポートされていません AWS CloudHSM KeyStore。CloudHSM の key_mgmt_util ツールを使用してキーを削除できます。
-
GetCertificate
使用可能な場合、エイリアスに関連付けられた証明書を返します。エイリアスが存在しないか、証明書ではないオブジェクトを参照している場合、関数は NULL を返します。
KeyStore ks = KeyStore.getInstance("CloudHSM"); Certificate cert = ks.getCertificate(alias)
-
GetCertificateAlias
指定された証明書とデータが一致する最初のキーストアエントリの名前 (エイリアス) を返します。
KeyStore ks = KeyStore.getInstance("CloudHSM"); String alias = ks.getCertificateAlias(cert)
-
GetCertificateChain
指定されたエイリアスに関連付けられた証明書チェーンを返します。エイリアスが存在しないか、証明書ではないオブジェクトを参照している場合、関数は NULL を返します。
-
GetCreationDate
指定されたエイリアスによって識別されるエントリの作成日を返します。作成日が使用できない場合、この関数は証明書が有効になった日付を返します。
-
GetKey
GetKey は HSM に渡され、指定されたラベルに対応するキーオブジェクトを返します。HSM
getKey
に直接クエリを実行すると、 によって生成されたかどうかにかかわらず、HSM 上の任意のキーに使用できます KeyStore。Key key = ks.getKey(keyLabel, null);
-
IsCertificateEntry
指定されたエイリアスを持つエントリが証明書エントリを表すかどうかをチェックします。
-
IsKeyEntry
指定されたエイリアスを持つエントリがキーエントリを表すかどうかをチェックします。このアクションは、PKCS12 ファイルと HSM の両方でエイリアスを検索します。
-
SetCertificateEntry
指定された証明書を指定されたエイリアスに割り当てます。指定されたエイリアスがキーまたは証明書の識別にすでに使用されている場合は、
KeyStoreException
がスローされます。JCE コードを使用してキーオブジェクトを取得し、 メソッドを使用して KeyStoreSetKeyEntry
証明書をキーに関連付けることができます。 -
byte[]
キーのあるSetKeyEntry
この API は現在、Client SDK 3 ではサポートされていません。
-
Key
オブジェクトのあるSetKeyEntry
指定されたキーを指定されたエイリアスに割り当て、HSM 内に保存します。
Key
オブジェクトがCaviumKey
のタイプでない場合、キーは抽出可能なセッションキーとして HSM にインポートされます。Key
オブジェクトがPrivateKey
のタイプの場合、対応する証明書チェーンが添付されている必要があります。エイリアスが既に存在する場合、
SetKeyEntry
呼び出しはKeyStoreException
をスローし、キーが上書きされるのを防ぎます。キーを上書きする必要がある場合は、そのために KMU または JCE を使用します。 -
EngineSize
キーストア内のエントリの数を返します。
-
Store
キーストアを指定された出力ストリームに PKCS12 ファイルとして保存し、指定されたパスワードで保護します。さらに、ロードされたすべてのキー (
setKey
呼び出しを使用して設定される) が保持されます。