概要
Cloud Object Storage(COS)はデータをデータセンター内のディスクに書き込む前に、オブジェクトレベルでデータの暗号化を適用する保護ポリシーをサポートしています。データはアクセス時に自動的に復号されます。暗号化と復号の操作プロセスはサーバー側で完了します。このサーバー側での暗号化機能によって静的データを有効に保護することができます。
注意:
暗号化されたオブジェクトと暗号化されていないオブジェクトへのアクセスに体験上の違いはありません。ただしユーザーがオブジェクトへのアクセス権限を持っていることが前提です。
サーバー側での暗号化はオブジェクトデータのみを暗号化するものであり、オブジェクトメタデータの暗号化は行いません。またサーバー側で暗号化したオブジェクトには有効な署名を使用してアクセスする必要があり、匿名ユーザーはアクセスできなくなります。
ユースケース
プライベートデータストレージのケース:プライベートデータのストレージについては、サーバー側での暗号化は、保存されているデータに対して行うことができます。ユーザーのプライバシーは保証され、ユーザーがアクセスした際は自動的に復号されます。
プライベートデータ転送のケース:プライベートデータの転送については、COSはHTTPSを使用してデプロイしたSSL証明書を提供して暗号化機能を実現します。転送リンクレイヤー上に暗号化レイヤーを設け、データの転送過程でのハッキングや改ざんを確実に防止します。
暗号化方式
COSがサポートしているサーバー側の暗号化方式はSSE-COS、SSE-KMS、SSE-Cです。ユーザーはご自身に合った暗号化方式を選択し、COSに保存したデータの暗号化を行うことができます。
SSE-COSの暗号化
SSE-COS暗号化は、COSホストキーによるサーバー側の暗号化です。Tencent Cloud COSはマスターキーをホストし、データを管理します。ユーザーはCOSによってデータの管理と暗号化を直接行います。SSE-COSは多要素による強力な暗号化を採用し、一意のキーを使用して各オブジェクトを暗号化し、同時に256ビットの高度な暗号化(AES-256)を用いてデータを暗号化するほか、マスターキーの定期的なローテーションによってキー自体の暗号化を行うことができます。
注意:
POST
操作を使用してオブジェクトのアップロードを行う際は、フォームのフィールドで、x-cos-server-side-encryption
ヘッダーではなく、同一の情報を提供する必要があります。詳細については、POST Objectをご参照ください。署名付きURLを使用してアップロードしたオブジェクトについては、SSE-COS暗号化を使用できません。COSコンソールまたはHTTPリクエストヘッダーを使用してサーバー側での暗号化を指定することのみ可能です。
COSコンソールの使用
コンソール上でオブジェクトのSSE-COS暗号化を行う方法について詳しくお知りになりたい場合は、オブジェクト暗号化の設定コンソールドキュメントをご参照ください。 REST APIの使用
注意:
バケット内のオブジェクトをリストアップする際、オブジェクトが暗号化されているかどうかにかかわらず、すべてのオブジェクトのリストが返されます。
POSTを使用してオブジェクトのアップロード操作を行う際は、フォームのフィールドで、このリクエストヘッダーではなく、同一の情報を提供してください。詳細については、POST Objectをご参照ください。 ユーザーが次のインターフェースをリクエストする場合は、x-cos-server-side-encryption
ヘッダーを提供することでサーバー側の暗号化を適用することができます。詳細については、パブリックリクエストヘッダー - SSE-COSをご参照ください。 SSE-KMSの暗号化
SSE-KMS暗号化は、KMSホストキーによるサーバー側の暗号化です。KMSはTencent Cloudが推進するセキュリティ管理系サービスの1つであり、サードパーティ認証を経たハードウェアセキュリティモジュールHSM(Hardware Security Module)を使用してキーの生成と保護を行うものです。ユーザーがキーの作成と管理を手軽に行えるよう支援し、複数のアプリケーションや複数の業務でのキー管理のニーズを満たすとともに、規制とコンプライアンスの要件にも適合します。
SSE-KMS暗号化を初めて使用する際は、KMSサービスのアクティブ化を行う必要があります。KMSサービスをアクティブ化すると、システムは自動的にデフォルトのマスターキー(CMK)1個を作成します。またはKMSコンソールで自らキーを作成し、キーのポリシーと使用方法を定義することもできます。KMSでは、ユーザーがキー素材のソースをKMSまたは外部から自ら選択することができます。その他の情報については、キーの作成および外部キーのインポートをご参照ください。 注意:
SSE-KMSはオブジェクトデータのみを暗号化し、オブジェクトメタデータは一切暗号化しません。
SSE-KMSは現在、北京、上海、中国香港、広州リージョンのみサポートしています。
SSE-KMS暗号化の使用には別途料金が発生し、KMSによって課金されます。詳細については、KMS課金概要をご参照ください。 SSE-KMS暗号化を使用したオブジェクトには有効な署名を使用してアクセスする必要があり、匿名ユーザーはアクセスできなくなります。
COSコンソールの使用
コンソール上でオブジェクトのSSE-KMS暗号化を行う方法について詳しくお知りになりたい場合は、オブジェクト暗号化の設定コンソールドキュメントをご参照ください。 REST APIの使用
注意:
バケット内のオブジェクトをリストアップする際、オブジェクトが暗号化されているかどうかにかかわらず、すべてのオブジェクトのリストが返されます。
POSTを使用してオブジェクトのアップロード操作を行う際は、フォームのフィールドで、このリクエストヘッダーではなく、同一の情報を提供してください。詳細については、POST Objectをご参照ください。 ユーザーが次のインターフェースをリクエストする場合は、x-cos-server-side-encryption
ヘッダーを提供することでサーバー側の暗号化を適用することができます。詳細については、パブリックリクエストヘッダー - SSE-KMSをご参照ください。 注意事项
COSコンソールを使用してSSE-KMS暗号化を行ったことがなく、API方式のみを使用してSSE-KMS暗号化を行っている場合は、まずCAMロールを作成する必要があります。具体的な作成手順は次のとおりです。 1. CAMコンソールにログインし、ロールリストページに進みます。 2. ロールの新規作成をクリックし、Tencent Cloud製品サービスをロールエンティティとして選択します。
3. ロールをサポートするサービスはCOSを選択し、次のステップをクリックします。
4. ロールポリシーを設定します。QcloudKMSAccessForCOSRoleを検索してチェックを入れ、次のステップをクリックします。
5. ロールのタグキーとタグ値をマークし、次のステップをクリックします。
6. 指定のロール名:COS_QcsRoleを入力します。
7. 最後に完了をクリックすれば作成は終了です。
SSE-Cの暗号化
SSE-C暗号化は、ユーザー定義キーによるサーバー側の暗号化です。暗号化鍵はユーザーが提供し、COSはユーザーがオブジェクトをアップロードする際に、ユーザーが提供した暗号化鍵のキーペアを使用して、ユーザーのデータをAES-256で暗号化します。
注意:
COSはユーザーが提供した暗号化鍵を保存せず、暗号化鍵にランダムデータを追加したHMAC値を保存します。この値はオブジェクトにアクセスするためのユーザーのリクエストの検証に使用されます。COSは、ランダムデータのHMAC値を使用して暗号化鍵の値を推測したり、暗号化されたオブジェクトの内容を復号したりすることはできません。そのため、ユーザーが暗号化鍵を紛失した場合、このオブジェクトを再取得できなくなります。
POST操作を使用してオブジェクトのアップロードを行う際は、フォームのフィールドで、x-cos-server-side-encryption-*
ヘッダーではなく、同一の情報を提供する必要があります。詳細については、POST Objectをご参照ください。 SSE-CはAPIでしか使用できず、コンソールでの操作はサポートされていません。
REST APIの使用
ユーザーが次のインターフェースをリクエストする場合は、PUTおよびPOSTリクエストについてはx-cos-server-side-encryption-*
ヘッダーを提供することでサーバー側の暗号化を適用することができます。GETおよびHEADでSSE-C暗号化を使用したオブジェクトをリクエストする場合は、x-cos-server-side-encryption-*
ヘッダーを提供して指定のオブジェクトの復号を行う必要があります。詳細については、パブリックリクエストヘッダー - SSE-Cをご参照ください。このヘッダーをサポートしている操作は次のとおりです。
この記事はお役に立ちましたか?