OSS は、サーバー側の暗号化、クライアント側の暗号化、および HTTPS 転送暗号化 (SSL/TLS) を提供し、保存データと転送中のデータを保護します。
サーバー側の暗号化
OSS は、アップロードされたデータに対してサーバー側の暗号化 (SSE) をサポートしています。OSS は、データを永続化する前に暗号化し、ダウンロード時に自動的に復号化します。HTTP レスポンスヘッダーは、サーバー側の暗号化が適用されたことを示します。
サーバー側の暗号化は、保存データを保護します。これは、ディープラーニングのサンプルや共同作業用ドキュメントの保存など、高いセキュリティやコンプライアンスが求められるシナリオに適しています。OSS は、2 つの SSE 方式をサポートしています。
-
SSE-KMS:KMS 管理キーによる暗号化
デフォルトの KMS で管理されるカスタマーマスターキー (CMK) または指定された CMK ID を使用してオブジェクトを暗号化できます。この方式では、データがネットワーク経由で KMS サーバーに送信されないため、低コストで大規模な暗号化を処理できます。
Key Management Service (KMS) は、Alibaba Cloud が提供するキー管理サービスであり、キーの機密性、完全性、可用性を管理するため、お客様は暗号化ロジックに集中できます。KMS コンソールでキーの表示と管理が可能です。
KMS は、AES256 とエンベロープ暗号化を使用して、不正アクセスを防止します。データ暗号化キーを生成し、お客様の CMK で暗号化します。デフォルトの OSS 管理 KMS キーまたは Bring-Your-Own-Key (BYOK) を使用できます。BYOK のキーマテリアルは、Alibaba Cloud によって提供されるか、お客様がインポートできます。
SSE-KMS 暗号化ワークフロー:
-
SSE-OSS:OSS 管理の暗号化
SSE-OSS は、オブジェクト属性であり、AES256 を使用して各オブジェクトを一意のキーで暗号化します。マスターキーがこれらのデータ暗号化キーをさらに暗号化します。この方式は、バッチ暗号化シナリオに適しています。
OSS は、すべてのデータ暗号化キーを生成および管理します。バケットのデフォルト暗号化方式を AES256 に設定するか、オブジェクトのアップロードまたは変更時に
X-OSS-server-side-encryptionヘッダーに値AES256を含めることができます。
詳細については、「サーバー側の暗号化」をご参照ください。
クライアント側の暗号化
クライアント側の暗号化は、オブジェクトを OSS にアップロードする前にローカルで暗号化します。コピーまたは移行操作時のマスターキーと暗号化メタデータの完全性と正確性については、お客様が責任を負います。
オブジェクトごとにランダムなデータ暗号化キーが生成され、オブジェクトデータを対称的に暗号化するために使用されます。その後、マスターキーがこのデータ暗号化キーを暗号化し、暗号化されたデータ暗号化キーはサーバー上にオブジェクトメタデータとして保存されます。復号化時には、マスターキーがデータ暗号化キーを復号化し、その後オブジェクトを復号化します。マスターキーはクライアントから離れることはなく、ネットワーク経由で送信されることも、サーバーに保存されることもありません。
マスターキーの管理には、2 つの方式があります。
-
KMS で管理されるカスタマーマスターキー
KMS で管理される CMK を使用する場合、アップロード時に CMK ID を指定するだけで、クライアントに暗号化キーは必要ありません。次の図は、このプロセスを示しています。
-
顧客管理キー
顧客管理キーを使用する場合、お客様自身が暗号化キーを生成および保存します。各操作で、対称キーまたは非対称キーをローカル暗号化クライアントに提供します。次の図は、暗号化プロセスを示しています。
詳細については、「クライアント側の暗号化」をご参照ください。
転送中の暗号化 (HTTPS/TLS)
OSS は、HTTP および HTTPS アクセスをサポートしています。セキュリティ要件を満たすために、TLS バージョンを設定できます。TLS は、通信するアプリケーション間で機密性とデータの完全性を確保し、転送中のデータを保護します。