

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

# 保管データ暗号化: Amazon Keyspaces での動作
<a name="encryption.howitworks"></a>

Amazon Keyspaces (Apache Cassandra 向け) の*保管データ暗号化*では、256 ビット高度暗号化基準 (AES-256) を使用してデータを暗号化します。この機能は、ストレージへの不正アクセスからデータを保護するのに役立ちます。デフォルトでは、Amazon Keyspaces テーブルのすべての顧客データが保管時に暗号化され、サーバー側の暗号化が透過的であるため、アプリケーションに変更を加える必要はありません。

保管時の暗号化は、テーブルの暗号化に使用される暗号化キーを管理するために AWS Key Management Service （AWS KMS) と統合されます。新規テーブルの作成時や、既存テーブルの更新時に、以下の *AWS KMS キー*オプションのいずれかを選択できます。
+ AWS 所有のキー – これはデフォルトの暗号化タイプです。キーは Amazon Keyspaces により所有されます (追加料金なし)。
+ カスタマーマネージドキー – このキーはアカウントに保存され、ユーザーによって作成、所有、管理されます。カスタマーマネージドキーを完全に制御できます (AWS KMS 料金が適用されます）。

**AWS KMS キー (KMS キー）**  
保管時の暗号化は、すべての Amazon Keyspaces データを AWS KMS キーで保護します。Amazon Keyspaces ではデフォルトで [AWS 所有のキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) が使用されます。これは、Amazon Keyspaces サービスアカウントで作成して管理するマルチテナント暗号化キーです。  
ただし、Amazon Keyspaces テーブルの暗号化には AWS アカウントの[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)を使用できます。キースペース内のテーブルごとに異なる KMS キーを選択することができます。テーブルに対して選択した KMS キーは、すべてのメタデータと復元可能なバックアップの暗号化にも使用されます。  
テーブルを作成または更新するときは、テーブル用の KMS キーを選択します。テーブルの KMS キーは、Amazon Keyspaces コンソールまたは [ALTER TABLE](cql.ddl.keyspace.md#cql.ddl.keyspace.alter) ステートメントを使用していつでも変更できます。KMS キーの切り替えプロセスはシームレスであり、ダウンタイムが必要になることもなく、サービスの低下を招くこともありません。

**キー階層**  
Amazon Keyspaces では、キー階層を使用してデータを暗号化します。このキー階層において KMS キーはルートキーです。これは Amazon Keyspaces テーブル暗号化キーの暗号化と復号化に使用されます。テーブル暗号化キーは、読み取り操作と書き込み操作の実行時にデータの暗号化と復号化のために Amazon Keyspaces で内部的に使用される暗号化キーを暗号化するために使用されます。  
暗号化キー階層を使用すると、データを再暗号化する必要もなく、アプリケーションや継続的なデータ操作に影響を与えることもなく、KMS キーに変更を加えることができます。  

![\[保管データ暗号化に使用されるルートキー、テーブル暗号化キー、およびデータ暗号化キーを示すキー階層。\]](http://docs.aws.amazon.com/ja_jp/keyspaces/latest/devguide/images/keyspaces_encryption.png)


**テーブルキー**  
Amazon Keyspaces のテーブルキーは、キー暗号化用のキーとして使用されます。Amazon Keyspaces では、テーブルキーを使用して、テーブルやログファイルや復元可能なバックアップに保存されたデータを暗号化するために使用される内部データ暗号化キーを保護します。Amazon Keyspaces により、テーブル内の基本構造ごとに一意のデータ暗号化キーが生成されます。ただし、複数のテーブル行が同じデータ暗号化キーで保護されていることがあります。  
KMS キーをカスタマーマネージドキーに初めて設定すると、 は*データキー* AWS KMS を生成します。 AWS KMS データキーは、Amazon Keyspaces のテーブルキーを参照します。  
暗号化されたテーブルにアクセスすると、Amazon Keyspaces は AWS KMS KMS キーを使用してテーブルキーを復号するリクエストを に送信します。その後、プレーンテキストテーブルキーを使用して Amazon Keyspaces データ暗号化キーが復号化され、プレーンテキストデータ暗号化キーを使用してテーブルデータが復号化されます。  
Amazon Keyspaces は、テーブルキーとデータ暗号化キーを の外部で使用および保存します AWS KMS。これによって、[Advanced Encryption Standard](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) (AES) 暗号化および 256 ビット暗号化キーのすべてのキーが保護されます。続いて、暗号化されたキーを暗号化されたデータと一緒に保存します。これらのキーおよびデータは、必要なときにテーブルデータの暗号化に使用できます。

**テーブルキーのキャッシュ**  
Amazon Keyspaces オペレーション AWS KMS ごとに が呼び出されないように、Amazon Keyspaces は各接続のプレーンテキストテーブルキーをメモリにキャッシュします。Amazon Keyspaces は、5 分間非アクティブ状態が続いた後にキャッシュされたテーブルキーのリクエストを取得すると、テーブルキーを復号 AWS KMS するための新しいリクエストを に送信します。この呼び出しは、テーブルキーを復号する最後のリクエスト以降に AWS KMS または AWS Identity and Access Management (IAM) で KMS キーのアクセスポリシーに加えられた変更をキャプチャします。

**エンベロープ暗号化**  
テーブルのカスタマーマネージドキーを変更すると、Amazon Keyspaces によって新しいテーブルキーが生成されます。次に、新しいテーブルキーを使用してデータ暗号化キーの再暗号化が行われます。また、新しいテーブルキーを使用して過去のテーブルキーが暗号化され、それを復元可能なバックアップの保護に使用します。このプロセスはエンベロープ暗号化と呼ばれます。これにより、カスタマーマネージドキーをローテーションしても、復元可能なバックアップにアクセスできるようになります。エンベロープ暗号化の仕組みの詳細については、*「AWS Key Management Service デベロッパーガイド」*の[「Envelope Encryption」](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping)(エンベロープ暗号化) を参照してください。

**Topics**
+ [AWS 所有キー](#keyspaces-owned)
+ [カスタマーマネージドキー](#customer-managed)
+ [保管データ暗号化の使用に関する注意事項](#encryption.usagenotes)

## AWS 所有キー
<a name="keyspaces-owned"></a>

AWS 所有のキー は に保存されません AWS アカウント。これらは、multiple. AWS services で使用するために が AWS 所有および管理する KMS キーのコレクションの一部です AWS アカウント。サービスは、 AWS 所有のキー を使用してデータを保護します。

表示、管理、使用 AWS 所有のキー、またはそれらの使用を監査することはできません。ただし、データを暗号化するキーを保護するための作業やプログラムを操作したり変更したりする必要はありません。

の使用に対して月額料金や使用料金は請求されず AWS 所有のキー、アカウントの AWS KMS クォータにもカウントされません。

## カスタマーマネージドキー
<a name="customer-managed"></a>

カスタマーマネージドキーは、 AWS アカウント ユーザーが作成、所有、管理する のキーです。ユーザーは、この KMS キーに関する完全なコントロール権を持ちます。

カスタマーマネージドキーを使用して次の機能を取得します。
+ カスタマーマネージドキーの作成と管理を行います。これには、[キーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)、[IAM ポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html)、カスタマーマネージドキーへのアクセスを制御する[権限](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)の設定および維持が含まれます。カスタマーマネージドキーの[有効化と無効化](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)、[自動キーローテーション](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)の有効化と無効化、使用しなくなった[カスタマーマネージドキーの削除](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)のスケジューリングを行うことができます。管理するカスタマーマネージドキーのタグとエイリアスを作成できます。
+ [インポートされたキーマテリアル](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)を持つカスタマーマネージドキー、またはユーザーが所有して管理する[カスタムキーストア](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)で、カスタマーマネージドキーを使用できます。
+  AWS CloudTrail と Amazon CloudWatch Logs を使用して、Amazon Keyspaces が AWS KMS ユーザーに代わって に送信するリクエストを追跡できます。詳細については、「[ステップ 6: でモニタリングを設定する AWS CloudTrail](encryption.customermanaged.md#encryption-cmk-trail)」を参照してください。

カスタマーマネージドキー[には API コールごとに料金が発生し](https://aws.amazon.com/kms/pricing/)、これらの AWS KMS KMS キーにはクォータが適用されます。詳細については、「[AWS KMS resource or request quotas](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)」(KMS リソースクォータまたはリクエストクォータ) を参照してください。

テーブルのルート暗号化キーとしてカスタマーマネージドポリシーを指定すると、復元可能なバックアップは、バックアップの作成時にテーブルに対して指定されている暗号化キーと同じものを使用して暗号化されます。テーブルの KMS キーをローテーションすると、キーエンベロープにより、最新の KMS キーが復元可能なすべてのバックアップにアクセスできるようになります。

Amazon Keyspaces には、テーブルデータへのアクセスが可能になるカスタマーマネージドキーへのアクセス権が必要です。暗号化キーの状態が無効に設定されているか、削除がスケジュールされている場合、Amazon Keyspaces ではデータの暗号化と復号化を実行できません。そのため、テーブルで読み取り/書き込みオペレーションを実行できません。暗号化キーにアクセスできないことが検出されると、Amazon Keyspaces からアラートメール通知が送信されます。

その場合、7 日以内に暗号化キーへのアクセスを復元しないと、Amazon Keyspaces によりテーブルが自動的に削除されます。ただし、Amazon Keyspaces では、テーブルが削除される前にテーブルデータの復元可能なバックアップが作成されます。その復元可能なバックアップは Amazon Keyspaces で 35 日間維持されます。35 日を過ぎるとそのテーブルデータは復元できなくなります。復元可能なバックアップの料金はかかりませんが、標準的な[復元料金はかかります](https://aws.amazon.com/keyspaces/pricing)。

この復元可能なバックアップを使用すれば、データを新しいテーブルに復元できます。復元を開始するには、そのテーブルに対して最後に使用したカスタマーマネージドキーを有効にし、Amazon Keyspaces からのアクセスを確立する必要があります。

**注記**  
作成プロセスが完了する前の時点で、アクセスできない、または削除がスケジュールされているカスタマーマネージドキーを使用して、暗号化されたテーブルを作成すると、エラーが発生します。テーブルの作成オペレーションが失敗し、電子メール通知が送信されます。

## 保管データ暗号化の使用に関する注意事項
<a name="encryption.usagenotes"></a>

Amazon Keyspaces で保管データの暗号化を使用する場合は、以下の点を考慮してください。
+ サーバー側の保管データ暗号化は、すべての Amazon Keyspaces テーブルデータで有効になり、無効にできません。テーブル全体の保管データが暗号化されます。特定の列または行を選択して暗号化することはできません。
+ Amazon Keyspaces のデフォルトでは、単一サービスのデフォルトキー (AWS 所有のキー) を使用して、すべてのテーブルで暗号化が行われます。このキーは、存在しなければ自動的に作成されます。サービスデフォルトキーは無効にできません。
+ 保管時の暗号化では、永続的ストレージメディアの静的 (保管時) データのみが暗号化されます。転送中のデータあるいは使用中のデータのデータ安全性に対する懸念がある場合には、追加の対策を実行する必要があります。
  + 転送中のデータ: Amazon Keyspaces 内のすべてのデータが転送中に暗号化されます。デフォルトでは、Amazon Keyspaces との通信が、Secure Sockets Layer (SSL)/Transport Layer Security (TLS) 暗号化を使用して保護されます。
  + 使用中のデータ: データを保護したうえで Amazon Keyspaces に送信するには、クライアント側暗号化を使用します。
  + カスタマーマネージドキー: テーブル内の保管中のデータは、常にカスタマーマネージドキーを使用して暗号化されます。ただし、複数の行のアトミック更新を実行するオペレーションは、処理 AWS 所有のキー 中に を使用してデータを一時的に暗号化します。これには、range delete オペレーションと、静的データと非静的データに同時にアクセスするオペレーションが含まれます。
+ 1 つのカスタマーマネージドキーにより、最大 50,000 の[権限](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)が可能です。カスタマーマネージドキーに関連付けられている各 Amazon Keyspaces テーブルでは、2 つの権限が消費されます。テーブルが削除されると、1 つの権限が解放されます。2番目の権限はテーブルの自動スナップショットの作成に使用されます。これは、Amazon Keyspaces によるカスタマーマネージドキーへのアクセス権が意図せず失われた場合に、データが失われないように保護するためです。この権限は、テーブルが削除されてから 42 日後にリリースされます。