Object Storage Service (OSS) は、サーバー側暗号化とクライアント側暗号化を提供します。OSS は、SSL/TLS を使用した HTTPS 経由での暗号化データ伝送もサポートしています。これらの機能は、クラウド上のデータを潜在的なセキュリティリスクから保護します。
サーバー側暗号化
OSS は、アップロードするデータに対してサーバー側暗号化をサポートしています。データをアップロードすると、OSS はデータを暗号化してから、暗号化されたデータを保存します。データをダウンロードすると、OSS は自動的にデータを復号し、元のデータを返します。HTTP レスポンスヘッダーも、データがサーバーで暗号化されたことを示します。
OSS は、サーバー側暗号化を使用して保存データの保護を提供します。この方法は、ディープラーニングのサンプルファイルやオンライン共同作業ドキュメントの保存など、ファイルストレージに高いセキュリティやコンプライアンスが求められるシナリオに適しています。OSS は、さまざまなシナリオに対応するために、次の 2 つのサーバー側暗号化メソッドを提供しています:
KMS で管理されるキーを使用した暗号化と復号 (SSE-KMS)
オブジェクトをアップロードする際、Key Management Service (KMS) で管理されるデフォルトのカスタマーマスターキー (CMK) または指定された CMK ID を使用して暗号化できます。この方法は、大量のデータの暗号化と復号に適しています。暗号化と復号のためにデータをネットワーク経由で KMS サーバーに送信する必要がないため、低コストの暗号化メソッドです。
KMS は、Alibaba Cloud が提供する安全で使いやすい管理サービスです。キーの機密性、整合性、可用性を保護するために多額の投資をする必要はありません。KMS を使用すると、キーを安全かつ便利に使用でき、暗号化および復号機能の開発に集中できます。KMS コンソールで KMS キーを表示および管理できます。
KMS は、AES-256 暗号化アルゴリズムとエンベロープ暗号化を使用して、不正なデータアクセスを防ぎます。KMS はデータ暗号化キーを生成し、ご利用の CMK を使用してそれらを暗号化します。OSS が管理するデフォルトの KMS キーを使用するか、Bring Your Own Key (BYOK) 機能を使用して CMK を生成できます。BYOK のキーマテリアルは、Alibaba Cloud が提供することも、お客様がインポートすることもできます。
次の図に、SSE-KMS サーバー側暗号化の仕組みを示します。
OSS で管理される暗号化の使用 (SSE-OSS)
OSS によって完全に管理されるサーバー側暗号化 (SSE-OSS) は、オブジェクト属性です。SSE-OSS は、業界標準の 256 ビット高度暗号化標準 (AES-256) アルゴリズムを使用して各オブジェクトを暗号化します。各オブジェクトは一意のキーで暗号化されます。保護を強化するために、マスターキーを使用してこれらの一意のデータキーを暗号化します。この方法は、データのバッチ暗号化および復号に適しています。
この暗号化メソッドでは、OSS がデータ暗号化キーの生成と管理を担当します。バケットのデフォルトのサーバー側暗号化メソッドを AES-256 に設定できます。また、オブジェクトをアップロードしたり、そのメタデータを変更したりする際に、リクエストに
X-OSS-server-side-encryptionヘッダーを含め、その値をAES256に設定することもできます。これにより、オブジェクトのサーバー側暗号化が有効になります。
詳細については、「サーバー側暗号化」をご参照ください。
クライアント側暗号化
クライアント側暗号化は、オブジェクトを OSS にアップロードする前にローカルで暗号化するプロセスです。クライアント側暗号化を使用する場合、マスターキーの整合性と正確性はお客様の責任となります。暗号化されたデータをコピーまたは移行する場合も、暗号化メタデータの整合性と正確性はお客様の責任となります。
クライアント側暗号化を使用すると、オブジェクトごとにランダムなデータ暗号化キーが生成されます。このプレーンテキストのデータキーは、オブジェクトデータを共通鍵で暗号化するために使用されます。次に、マスターキーを使用してランダムなデータ暗号化キーを暗号化します。暗号化されたデータキーは、オブジェクトのメタデータの一部としてサーバーに保存されます。オブジェクトを復号するには、まずマスターキーを使用して暗号化されたデータキーを復号する必要があります。その後、結果として得られるプレーンテキストのデータキーを使用してオブジェクトデータを復号できます。マスターキーは、クライアントでのローカル計算にのみ使用されます。ネットワーク経由で送信されたり、サーバーに保存されたりすることはありません。このプロセスにより、マスターキーのセキュリティが確保されます。
マスターキーを管理するために、次の 2 つのメソッドがサポートされています:
KMS で管理されるカスタマーマスターキーの使用
クライアント側のデータ暗号化に KMS で管理されるカスタマーマスターキーを使用する場合、OSS 暗号化クライアントに暗号鍵を提供する必要はありません。オブジェクトをアップロードする際に、KMS のカスタマーマスターキー ID (CMK ID) を指定するだけで済みます。次の図に、このプロセスを示します。
顧客管理キーの使用
顧客管理キーを使用する場合、暗号鍵を自分で生成して保存する必要があります。ローカルクライアントがオブジェクトを暗号化する際、ローカル暗号化クライアントに暗号鍵 (共通鍵または非対称鍵) を提供する必要があります。次の図に、暗号化プロセスを示します。
詳細については、「クライアント側暗号化」をご参照ください。
SSL/TLS を使用した HTTPS 経由の暗号化伝送
OSS は、HTTP または HTTPS 経由のアクセスをサポートしています。ビジネスニーズに基づいて TLS バージョンを設定し、データ伝送のセキュリティを向上させることができます。Transport Layer Security (TLS) は、通信する 2 つのアプリケーション間で機密性とデータ整合性を提供するプロトコルです。このプロトコルは、クラウド上のデータをセキュリティリスクから保護するのに役立ちます。