

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

# の暗号化の詳細の概要 AWS KMS
<a name="intro"></a>

AWS Key Management Service (AWS KMS) は、暗号化キーを生成および管理するためのウェブインターフェイスを提供し、データを保護するための暗号化サービスプロバイダーとして機能します。 は、 AWS サービスと統合された従来のキー管理サービス AWS KMS を提供し AWS、一元的な管理と監査により、顧客のキーの一貫したビューを提供します。このホワイトペーパーでは、 のサービスが提供する機能の評価に役立つ AWS KMS の暗号化オペレーションの詳細な説明を提供します。

AWS KMS には AWS マネジメントコンソール、、コマンドラインインターフェイス、および RESTful API オペレーションを介したウェブインターフェイスが含まれており、FIPS 140-3 検証済みハードウェアセキュリティモジュール (HSMs) の分散フリートの暗号化オペレーションをリクエストできます[[1](kms-bibliography.md#fips-hsms)]。 AWS KMS HSM は、 のセキュリティとスケーラビリティの要件を満たす専用の暗号化機能を提供するように設計されたマルチチップスタンドアロンハードウェア暗号化アプライアンスです AWS KMS。 AWS KMS keysとして管理しているキーで、独自の HSM ベースの暗号化階層を確立できます。これらのキーは HSM 上でのみ使用でき、暗号化リクエストの処理に必要な時間だけメモリ内にあります。複数の KMS キーを作成できます。各キーはキー ID で表されます。各顧客が管理する AWS IAM ロールとアカウントでのみ、顧客の KMS キーを作成、削除、またはデータの暗号化、復号、署名、検証に使用できます。キーにアタッチされたポリシーを作成することで、KMS キーを管理および/または使用できるユーザーに関するアクセス制御を定義できます。このようなポリシーを使用すると、API オペレーションごとにキーにアプリケーション固有の使用を定義できます。

さらに、ほとんどの AWS サービスは、KMS キーを使用した保管中のデータの暗号化をサポートしています。この機能を使用すると、KMS キーにアクセスする方法とタイミングを制御することで、 AWS サービスが暗号化されたデータにアクセスする方法とタイミングを制御できます。

![\[AWS KMS アーキテクチャ。\]](http://docs.aws.amazon.com/ja_jp/kms/latest/cryptographic-details/images/KMS-Architecture.png)


AWS KMS は、ウェブ向け AWS KMS ホストと HSMs。これらの階層型ホストのグループ化は AWS KMS スタックを形成します。へのすべてのリクエストは、Transport Layer Security プロトコル (TLS) 経由で行い、 AWS KMS ホストで終了 AWS KMS する必要があります。 AWS KMS ホストは、完全な[フォワード secrecy](http://dx.doi.org/10.6028/NIST.SP.800-52r2) を提供する暗号スイートでのみ TLS を許可します。他のすべての AWS API オペレーションで使用できる (IAM) の AWS Identity and Access Management 同じ認証情報とポリシーメカニズムを使用して、リクエストを AWS KMS 認証および承認します。

# 基本概念
<a name="basic-concepts"></a>

いくつかの基本的な用語と概念を学ぶと、 を最大限に活用するのに役立ちます AWS Key Management Service。

**AWS KMS key**  
AWS KMS は、*カスタマーマスターキー (CMK)* という用語を *AWS KMS key*および *KMS キー*に置き換えます。この概念に変更はありません。重大な変更を防ぐために、 AWS KMS ではこの用語のバリエーションがいくつか残されています。
キー階層の最上位を表す論理キーです。KMS キーには、一意のキー識別子またはキー ID を含む Amazon リソースネーム (ARN) が与えられます。 AWS KMS keys には、次の 3 つのタイプがあります。  
+ **カスタマーマネージド型キー** – お客様が作成およびライフサイクルとキーポリシーの管理を行います。これらのキーに対して行われたすべてのリクエストは、CloudTrail イベントとして記録されます。
+ **AWS マネージドキー** - 顧客の リソース AWS マネージドキーである のライフサイクルポリシーとキーポリシー AWS を作成および制御します AWS アカウント。お客様は、 AWS マネージドキーのアクセスポリシーと CloudTrail イベントを確認できますが、これらのキーの側面を管理することはできません。これらのキーに対して行われたすべてのリクエストは、CloudTrail イベントとして記録されます。
+ **AWS 所有のキー** – これらのキーは、 によって作成され、さまざまな AWS サービスにわたる内部暗号化オペレーション AWS 専用に使用されます。お客様は、CloudTrail のキーポリシーや AWS 所有のキー 使用状況を可視化できません。

**エイリアス**  
KMS キーに関連付けられているわかりやすい名前です。エイリアスは、多くの AWS KMS API オペレーションでキー ID と互換的に使用できます。

**アクセス許可**  
キーに対するアクセス許可を定義する KMS キーにアタッチされたポリシーです。デフォルトのポリシーでは、定義したすべてのプリンシパルを許可し、 AWS アカウント がキーを参照する IAM ポリシーを追加できるようにします。

**権限**  
最初に目的の IAM プリンシパルまたは使用期間が知られていないため、キーや IAM ポリシーに追加できない場合、KMS キーの使用のために委任されるアクセス許可です。グラントの 1 つの用途は、 AWS サービスで KMS キーを使用する方法の範囲を限定したアクセス許可を定義することです。サービスでは、直接署名された API コールがない場合、ユーザーに代わり暗号化されたデータに対して非同期作業を行うためにキーを使用することがあります。

**データキー**  
HSMs、KMS キーによって保護されます。 は、承認されたエンティティが KMS キーによって保護されているデータキーを取得 AWS KMS できるようにします。これらは、プレーンテキスト (暗号化されていない) データキーおよび暗号化されたデータキーの両方として返すことができます。データキーは、対称キーでも非対称キーでも構いません (パブリックおよびプライベートの両方の部分が返されます)。

**暗号文**  
の暗号化された出力 AWS KMS。混同を排除するために顧客の暗号文と呼ばれることもあります。暗号文には、追加情報を含む暗号化されたデータが含まれています。この情報により、復号化のプロセスで使用する KMS キーを識別できます。暗号化されたデータキーは KMS キーを使用する際に生成される暗号文の一般的な例の 1 つですが、サイズが 4 KB 未満のデータは KMS キーで暗号化し、暗号文を生成できます。

**暗号化コンテキスト**  
保護された情報に関連付けられている追加情報のキーと値のペアマップ。 AWS KMSは、認証された暗号化 AWS KMS を使用してデータキーを保護します。暗号化コンテキストは、 AWS KMS暗号化された暗号文で認証された暗号化の AAD に組み込まれます。このコンテキスト情報はオプションで、キー (または暗号化オペレーション) のリクエスト時には返されません。使用する場合、このコンテキスト値は復号オペレーションを正常に完了するために必要です。暗号化コンテキストの使用目的の 1 つは、追加の認証情報を提供することです。この情報は、ポリシーを適用し、 AWS CloudTrail ログに含めるのに役立ちます。例えば、\$1"key name":"satellite uplink key"\$1 のキーと値のペアを使用して、データキーに名前を付けられます。キーを後から使用すると、「キー名」「衛星アップリンクキー」を含む AWS CloudTrail エントリが作成されます。この追加情報は、特定の KMS キーが使用された理由を理解するのに役立つコンテキストを提供します。

**パブリックキー**  
非対称暗号 (RSA または楕円曲線) を使用する場合、パブリックキーはパブリック/プライベートのキーペアの“public component”です。パブリックキーは、パブリック/プライベートのキーペアの所有者のデータを暗号化するエンティティに共有および分散できます。デジタル署名オペレーションでは、パブリックキーを使用して署名を検証できます。

**プライベートキー**  
非対称暗号 (RSA または楕円曲線) を使用する場合、プライベートキーはパブリック/プライベートのキーペアの「プライベートコンポーネント」です。プライベートキーは、データの復号またはデジタル署名の作成に使用されます。対称 KMS キーと同様に、プライベートキーは HSM で暗号化されます。これらは、暗号化リクエストの処理に必要な期間、HSM の短期メモリにのみ復号されます。

# AWS KMS 設計目標
<a name="design-goals"></a>

AWS KMS は、以下の要件を満たすように設計されています。

**耐久性**  
暗号化キーの耐久性は、 の最高の耐久性サービスに等しいように設計されています AWS。1 つの暗号化キーで、長期間にわたって蓄積された大量のデータを暗号化できます。

**信頼性**  
キーの使用は、ユーザーが定義および管理するアクセス制御ポリシーによって保護されます。プレーンテキストの KMS キーをエクスポートするメカニズムはありません。暗号化キーの機密性は重要です。HSM で管理アクションを実行するには、定足数ベースのアクセス制御にロール固有のアクセス権を持つ複数の Amazon 従業員が必要です。

**低レイテンシーと高スループット**  
AWS KMS は、 の他のサービスでの使用に適したレイテンシーおよびスループットレベルで暗号化オペレーションを提供します AWS。

**リージョンの独立性**  
AWS は、異なるリージョンでデータアクセスを制限する必要があるお客様向けに、独立したリージョンを提供します。キーの使用は、 AWS リージョン内に限ることができます。

**元になる乱数の安全性**  
強力な暗号は、真に予測不可能な乱数生成に依存するため、 AWS KMS には、高品質で検証済みの乱数のソースが用意されています。

**監査 **  
AWS KMS は、 AWS CloudTrail ログに暗号化キーの使用と管理を記録します。 AWS CloudTrail ログを使用して、ユーザーに代わって AWS のサービスによるキーの使用など、暗号化キーの使用を検査できます。

これらの目標を達成するために、 AWS KMS システムには、「ドメイン」を管理する AWS KMS 一連の演算子とサービスホスト演算子 (総称して「オペレータ」) が含まれています。ドメインは、リージョンで定義された AWS KMS サーバー、HSMs、および演算子のセットです。各 AWS KMS 演算子には、アクションの認証に使用されるプライベートキーとパブリックキーのペアを含むハードウェアトークンがあります。HSM には、HSM 状態の同期を保護する暗号化キーを確立するために、追加のプライベートとパブリックのキーペアがあります。

このホワイトペーパーでは、 が暗号化するキーやその他のデータ AWS KMS を保護する方法を説明します。このドキュメントでは、暗号化する暗号化キーまたはデータを「シークレット」または「シークレットマテリアル」と呼びます。