翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
保管データ暗号化: Amazon Keyspaces での動作
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 所有のキー が使用されます。これは、Amazon Keyspaces サービスアカウントで作成して管理するマルチテナント暗号化キーです。
ただし、Amazon Keyspaces テーブルの暗号化には AWS アカウント のカスタマーマネージドキーを使用できます。キースペース内のテーブルごとに異なる KMS キーを選択することができます。テーブルに対して選択した KMS キーは、すべてのメタデータと復元可能なバックアップの暗号化にも使用されます。
テーブルを作成または更新するときは、テーブル用の KMS キーを選択します。テーブルの KMS キーは、Amazon Keyspaces コンソールまたは ALTER TABLE ステートメントを使用していつでも変更できます。KMS キーの切り替えプロセスはシームレスであり、ダウンタイムが必要になることもなく、サービスの低下を招くこともありません。
- キー階層
-
Amazon Keyspaces では、キー階層を使用してデータを暗号化します。このキー階層において KMS キーはルートキーです。これは Amazon Keyspaces テーブル暗号化キーの暗号化と復号化に使用されます。テーブル暗号化キーは、読み取り操作と書き込み操作の実行時にデータの暗号化と復号化のために Amazon Keyspaces で内部的に使用される暗号化キーを暗号化するために使用されます。
暗号化キー階層を使用すると、データを再暗号化する必要もなく、アプリケーションや継続的なデータ操作に影響を与えることもなく、KMS キーに変更を加えることができます。
- テーブルキー
Amazon Keyspaces のテーブルキーは、キー暗号化用のキーとして使用されます。Amazon Keyspaces では、テーブルキーを使用して、テーブルやログファイルや復元可能なバックアップに保存されたデータを暗号化するために使用される内部データ暗号化キーを保護します。Amazon Keyspaces により、テーブル内の基本構造ごとに一意のデータ暗号化キーが生成されます。ただし、複数のテーブル行が同じデータ暗号化キーで保護されていることがあります。
KMS キーをカスタマーマネージドキーに初めて設定したときに、AWS KMS によりデータキーが生成されます。AWS KMS データキーとは、Amazon Keyspaces 内のテーブルキーを指します。
暗号化されたテーブルに最初にアクセスすると、Amazon Keyspaces から、KMS キーを使用してテーブルキーを復号するリクエストが AWS KMS に送信されます。その後、プレーンテキストテーブルキーを使用して Amazon Keyspaces データ暗号化キーが復号化され、プレーンテキストデータ暗号化キーを使用してテーブルデータが復号化されます。
Amazon Keyspaces により AWS KMS の外部でテーブルキーとデータ暗号化キーの生成、使用、保存が行われます。これによって、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」(エンベロープ暗号化) を参照してください。
AWS 所有キー
AWS 所有のキー は AWS アカウント に保存されません。これらは、複数の AWS アカウント で使用できるようにするために AWS が所有し管理している KMS キーのコレクションの一部です。AWS サービスでは、データの保護に AWS 所有のキー を使用できます。
AWS 所有のキー は表示、管理、使用することはできず、その使用を監査することもできません。ただし、データを暗号化するキーを保護するための作業やプログラムを操作したり変更したりする必要はありません。
AWS 所有のキー のご利用に関しては、月額料金や使用料金は請求されません。また、アカウントの AWS KMS クォータにも影響しません。
カスタマーマネージドキー
カスタマーマネージドキーは AWS アカウント のキーで、その作成、所有、管理をユーザーが行います。ユーザーは、この KMS キーに関する完全なコントロール権を持ちます。
カスタマーマネージドキーを使用して次の機能を取得します。
-
カスタマーマネージドキーの作成と管理を行います。これには、キーポリシー、IAM ポリシー、カスタマーマネージドキーへのアクセスを制御する権限の設定および維持が含まれます。カスタマーマネージドキーの有効化と無効化、自動キーローテーションの有効化と無効化、使用しなくなったカスタマーマネージドキーの削除のスケジューリングを行うことができます。管理するカスタマーマネージドキーのタグとエイリアスを作成できます。
-
インポートされたキーマテリアルを持つカスタマーマネージドキー、またはユーザーが所有して管理するカスタムキーストアで、カスタマーマネージドキーを使用できます。
-
AWS CloudTrail および Amazon CloudWatch Logs を使用して、Amazon Keyspaces がユーザーに代わって AWS KMS に送信するリクエストを追跡できます。詳細については、「ステップ 6: AWS CloudTrail を使用してモニタリングを設定する」を参照してください。
カスタマーマネージドキーには API コールごとに料金が発生
テーブルのルート暗号化キーとしてカスタマーマネージドポリシーを指定すると、復元可能なバックアップは、バックアップの作成時にテーブルに対して指定されている暗号化キーと同じものを使用して暗号化されます。テーブルの KMS キーをローテーションすると、キーエンベロープにより、最新の KMS キーが復元可能なすべてのバックアップにアクセスできるようになります。
Amazon Keyspaces には、テーブルデータへのアクセスが可能になるカスタマーマネージドキーへのアクセス権が必要です。暗号化キーの状態が無効に設定されているか、削除がスケジュールされている場合、Amazon Keyspaces ではデータの暗号化と復号化を実行できません。そのため、テーブルで読み取り/書き込みオペレーションを実行できません。暗号化キーにアクセスできないことが検出されると、Amazon Keyspaces からアラートメール通知が送信されます。
その場合、7 日以内に暗号化キーへのアクセスを復元しないと、Amazon Keyspaces によりテーブルが自動的に削除されます。ただし、Amazon Keyspaces では、テーブルが削除される前にテーブルデータの復元可能なバックアップが作成されます。その復元可能なバックアップは Amazon Keyspaces で 35 日間維持されます。35 日を過ぎるとそのテーブルデータは復元できなくなります。復元可能なバックアップの料金はかかりませんが、標準的な復元料金はかかります
この復元可能なバックアップを使用すれば、データを新しいテーブルに復元できます。復元を開始するには、そのテーブルに対して最後に使用したカスタマーマネージドキーを有効にし、Amazon Keyspaces からのアクセスを確立する必要があります。
注記
作成プロセスが完了する前の時点で、アクセスできない、または削除がスケジュールされているカスタマーマネージドキーを使用して、暗号化されたテーブルを作成すると、エラーが発生します。テーブルの作成オペレーションが失敗し、電子メール通知が送信されます。
保管データ暗号化の使用に関する注意事項
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 の権限が可能です。カスタマーマネージドキーに関連付けられている各 Amazon Keyspaces テーブルでは、2 つの権限が消費されます。テーブルが削除されると、1 つの権限が解放されます。2番目の権限はテーブルの自動スナップショットの作成に使用されます。これは、Amazon Keyspaces によるカスタマーマネージドキーへのアクセス権が意図せず失われた場合に、データが失われないように保護するためです。この権限は、テーブルが削除されてから 42 日後にリリースされます。