20.8. データの暗号化
プロジェクトデータがディスクのどこに保存されていても、あるいはネットワークを通じて転送されていても、実装者にはデータを暗号化するためのオプションがあります。たとえば、以下で説明されている OpenStack ボリューム暗号化機能です。これは、プロバイダーに送信する前にユーザーが自分のデータを暗号化する一般的な推奨事項を上回るものです。
プロジェクトの代わりにデータを暗号化することの重要性は、攻撃者がプロジェクトデータにアクセスできるというプロバイダーによって想定されるリスクに非常に関係します。政府、ポリシー、私的な契約、またはパブリッククラウドプロバイダーの私的な契約に関する法的な要件があります。プロジェクトの暗号化ポリシーを選択する前に、リスク評価と法的アドバイスを取得することを検討してください。
インスタンスまたはオブジェクトごとの暗号化が、降順、プロジェクト、ホスト、およびクラウドアグリゲーションごとよりも優先されます。この推奨事項は、実装の複雑性と困難度とは逆です。現時点で、一部のプロジェクトでは、プロジェクトごとの粗い粒度での暗号化を実装することが困難、または不可能な場合があります。実装者は、プロジェクトデータの暗号化に深刻な考慮事項を与えます。
多くの場合、データの暗号化は、単にキーを廃棄することで、プロジェクトやインスタンスごとのデータを確実に破棄する機能に貢献します。このようにすると、信頼できる安全な方法でこれらのキーを破棄することが非常に重要になります。
ユーザーのデータを暗号化する機会が存在します。
- Object Storage オブジェクト
- ネットワークデータ
20.8.1. ボリュームの暗号化
OpenStack のボリューム暗号化機能は、プロジェクトごとにプライバシーをサポートします。以下の機能がサポートされます。
- Dashboard またはコマンドラインインターフェイスから開始された暗号化されたボリューム種別の作成および使用
- 暗号化を有効にし、暗号化アルゴリズムやキーサイズなどのパラメーターを選択します。
- iSCSI パケットに含まれるボリュームデータの暗号化
- 元のボリュームが暗号化されている場合、暗号化されたバックアップをサポートします。
- Dashboard には、ボリューム暗号化のステータスが表示されます。ボリュームが暗号化されていること、およびアルゴリズムやキーサイズなどの暗号化パラメーターが含まれます。
- 鍵管理サービスとのインターフェイス
20.8.2. Object Storage オブジェクト
Object Storage (swift) は、ストレージノードに保管されているオブジェクトデータのオプション暗号化をサポートします。オブジェクトデータの暗号化は、承認されていないユーザーがディスクへの物理アクセスを取得している場合に、ユーザーのデータが読み取られるリスクを軽減することを目的としています。
保管されているデータの暗号化は、プロキシーサーバー WSGI パイプラインに含まれる可能性のあるミドルウェアにより実装されます。この機能は swift クラスターに内部にあり、API 経由で公開されません。クライアントは、swift サービス内のこの機能によりデータが暗号化されていることを認識しません。内部で暗号化されたデータは swift API 経由でクライアントに返されません。
swift で保管されている間、以下のデータは暗号化されます。
-
オブジェクトコンテンツ (例: オブジェクト
PUT
要求ボディーのコンテンツ)。 -
ゼロ以外のコンテンツを持つオブジェクトのエンティティータグ (
ETag
)。 -
すべてのカスタムユーザーオブジェクトのメタデータ値。たとえば、
PUT
またはPOST
リクエストで、X-Object-Meta-
の接頭辞が付けられたヘッダーを使用して送信されるメタデータなどです。
上記のリストに含まれていないデータまたはメタデータは暗号化されません。以下に例を示します。
- アカウント、コンテナー、およびオブジェクト名
- アカウントおよびコンテナーのカスタムユーザーメタデータの値
- すべてのカスタムユーザーメタデータ名
- オブジェクトコンテンツ種別の値
- オブジェクトサイズ
- システムメタデータ
20.8.3. Block Storage のパフォーマンスおよびバックエンド
オペレーティングシステムを有効にすると、Intel と AMD の両方のプロセッサーで利用可能なハードウェアアクセラレーション機能を使用して、OpenStack Volume Encryption のパフォーマンスを向上させることができます。
OpenStack のボリューム暗号化機能は、ホスト上の dm-crypt
またはネイティブの QEMU
暗号化サポートを使用してボリュームデータを保護します。Red Hat は、暗号化ボリュームを作成する際に LUKS
ボリューム暗号化タイプを使用することを推奨します。
20.8.4. ネットワークデータ
Compute ノードのプロジェクトデータは IPsec または他のトンネルで暗号化される可能性があります。これは、OpenStack では一般的または標準ではありませんが、興味のある実装者が利用可能なオプションです。同様に、ネットワーク上で転送されるため、暗号化されたデータは暗号化された状態のままです。