キーストア
キーストアは、暗号化キーを保存し使用するための安全な場所です。AWS KMS のデフォルトのキーストアは、保存しているキーを生成および管理するためのメソッドもサポートしています。デフォルトでは、AWS KMS に作成される AWS KMS keys の暗号化キーマテリアルは、FIPS 140-3 Cryptographic Module Validation Program
AWS KMS は、AWS KMS を使用して暗号化キーを作成および管理する場合にキーマテリアルを保護するために複数のタイプのキーストアをサポートします。AWS KMS が提供するすべてのキーストアオプションは、FIPS 140-3 のセキュリティレベル 3 で継続的に検証されており、AWS オペレーターを含むすべてのユーザーが、所有者ユーザーの許可なしにプレーンテキストキーにアクセスすることやプレーンテキストキーを使用することができないように設計されています。
AWS KMS 標準キーストア
デフォルトでは、標準 AWS KMS HSM を使用して KMS キーを作成します。この HSM タイプは、お客様にとって最も拡張性があり、最も低コストで管理しやすいキーストアを提供する、HSM のマルチテナントフリートと考えることができます。サービスがユーザーに代わってデータを暗号化できるように 1 つまたは複数の AWS のサービスで使用する 1 つの KMS キーを作成する場合は、対称キーを作成してください。独自のアプリケーション設計向けに KMS キーを使用する場合は、対称暗号化キー、非対称キー、または HMAC キーのいずれかを選択して作成できます。
標準キーストアオプションでは、AWS KMS がキーを作成し、次にそのサービスが内部で管理するキーで暗号化します。その後、暗号化されたバージョンのキーの複数のコピーが、耐久性を考慮して設計されたシステムに保存されます。標準キーストアタイプでキーマテリアルを生成して保護することで、AWS キーストアの運用上の負担とコストを最小限に抑えながら、AWS KMS のスケーラビリティ、可用性、耐久性を最大限に享受できます。
インポートされたキーマテリアルを持つ AWS KMS 標準キーストア
特定のキーのコピーの生成と保存の両方を AWS KMS に要求する代わりに、キーマテリアルを AWS KMS にインポートすることができます。これにより、独自の 256 ビット対称暗号化キー、RSA または楕円曲線 (ECC) キー、または Hash-based Message Authentication Code (HMAC) キーを生成し、KMS キー識別子 (keyId) に適用することができます。これは、Bring Your Own Key (BYOK) 方式と呼ばれることがあります。ローカルキー管理システムからインポートされるキーマテリアルは、AWS KMS によって発行されるパブリックキー、サポートされている暗号化ラッピングアルゴリズム、および AWS KMS によって提供される時間ベースのインポートトークンを使用して保護する必要があります。このプロセスにより、暗号化されてインポートされたキーは、所有ユーザーの環境を離れた後のみ AWS KMS HSM による復号化が可能になります。
インポートされたキーマテリアルは、キーを生成するシステムに関して特定の要件がある場合や、AWS の外部でキーのコピーをバックアップとして必要とする場合に便利です。インポートされたキーマテリアルの全般的な可用性と耐久性については、ユーザー自身の責任となることにご留意ください。AWS KMS にはインポートされたキーのコピーがあり、必要とされる間は高可用性を維持しますが、インポートされたキーは、削除のための特別な API「DeleteImportedKeyMaterial」を提供します。この API は、AWS KMS にあるインポートされたキーマテリアルのすべてのコピーを直ちに削除します。この場合、AWS でキーを復元するオプションはありません。また、インポートされたキーの有効期限を設定することができ、有効期限到達後はそのキーは使用できなくなります。キーを AWS KMS で再び利用できるようにするには、キーマテリアルを再インポートして同じ keyId に割り当てる必要があります。インポートされたキーに対するこの削除アクションは、ユーザーに代わって AWS KMS が生成および保存した標準キーの場合とは異なります。標準の場合、キー削除プロセスには強制の待機期間があり、削除が予定されているキーはまず使用できないようにブロックされます。このアクションにより、データにアクセスするためにそのキーを必要とする可能性のあるアプリケーションまたは AWS サービスのログ上で、アクセス拒否エラーを確認できます。このようなアクセスリクエストが表示された場合は、スケジュールされた削除をキャンセルしてキーを再度有効にすることができます。設定可能な待機期間 (7~30 日) が経過すると、KMS は、キーマテリアル、keyID、およびキーに関連付けられたすべてのメタデータを実際に削除します。可用性と耐久性の詳細については、「AWS KMS デベロッパーガイド」の「Protecting imported key material」を参照してください。
インポートされたキーマテリアルについては、留意すべき追加の制限事項があります。AWS KMS は新しいキーマテリアルを生成できないため、インポートされたキーの自動ローテーションを設定する方法はありません。有効なローテーションを実現するためには、新しい keyId を使用して新しい KMS キーを作成し、そのうえで新しいキーマテリアルをインポートする必要があります。また、インポートされた対称キーにより AWS KMS で作成された暗号文は、AWS の外部にあるそのキーのローカルコピーを使用して簡単に復号することはできません。これは、AWS KMS が使用する認証済み暗号化形式で暗号文にさらにメタデータを追加することにより、復号化オペレーション中に、その暗号文が以前の暗号化オペレーションで想定される KMS キーによって作成されているかを確認できるようにするためです。ほとんどの外部暗号化システムは、こうしたメタデータを解析して未加工の暗号文にアクセスし、対称キーのコピーを使用可能にする方法を理解していません。インポートされた非対称キー (RSA や ECC など) で作成される暗号文は、AWS KMS によって暗号文に追加されるメタデータがないため、そのキーの一致する部分 (パブリックまたはプライベート) とともに AWS KMS の外部で使用できます。
AWS KMS カスタムキーストア
ただし、HSM の管理をさらに強化する必要がある場合は、カスタムキーストアを作成します。
カスタムキーストアとは AWS KMS の内部にあるキーストアのことで、AWS KMS の外部の、ユーザーが所有し管理するキーマネージャーによりバックアップされます。カスタムキーストアには、AWS KMS のキー管理のための便利な包括的インターフェイスに、キーマテリアルと暗号化オペレーションを所有し制御する機能が統合されています。カスタムキーストアで KMS キーを使用する場合、暗号化のオペレーションは、ユーザーのキーマネージャーが、ユーザーの暗号化キーを使用して実行します。それにより、暗号化キーの可用性と耐久性、および HSM のオペレーションに対するユーザーの責任が増えます。
ユーザーによる HSM の所有は、標準 KMS キーストアなどのマルチテナントウェブサービスによる暗号化キーの保持を認めていない一部の法規制要件を満たすのに役立ちます。カスタムキーストアは、AWS マネージド HSM を使用した KMS キーストアよりも安全なわけではありませんが、管理とコスト負担は AMS マネージド HSM を使用する場合よりも高くなります。その結果、暗号化キーの可用性と耐久性、および HSM のオペレーションに対するユーザーの責任が増えます。AWS KMS HSM で標準キーストアを使用するか、カスタムキーストアを使用するかにかかわらず、このサービスは、AWS 従業員を始めとするすべてのユーザーが許可なくプレーンテキストキーを取得することや使用することができないように設計されています。AWS KMS は、2 種類のカスタムキーストア (AWS CloudHSM キーストアおよび外部キーストア) をサポートします。
サポートされていない 機能
AWS KMS はカスタムキーストアで次の機能をサポートしていません。
AWS CloudHSM キーストア
AWS CloudHSM
外部キーストア
外部キーストア (XKS) を使用するように AWS KMS を設定できます。ここでは、ルートユーザーキーは、AWS クラウド の外部のキー管理システムで生成、保存、使用されます。一部の暗号化オペレーションでキーを使用するための AWS KMS へのリクエストは、ユーザーの外部ホストシステムに転送されてそのオペレーションの実行に使用されます。具体的には、リクエストはまずネットワーク内の XKS プロキシに転送され、さらに XKS プロキシから使用する暗号化システムへと転送されます。XKS プロキシは、誰でも統合できるオープンソース仕様です。多くの商用キー管理ベンダーは XKS プロキシ仕様をサポートしています。外部キーストアはお客様または第三者によってホストされるため、システム内のキーの可用性、耐久性、およびパフォーマンスはすべてユーザーの責任となります。外部キーストアが要件に適しているかどうかを確認するには、「AWS ニュースブログ」の「Announcing AWS KMS External Key Store (XKS)