概要
Cloud Object Storage(COS)はデータをデータセンター内のディスクに書き込む前に、オブジェクトレベルでデータの暗号化を適用する保護ポリシーをサポートしています。データはアクセス時に自動的に復号されます。暗号化と復号の操作プロセスはサーバー側で完了します。このサーバー側での暗号化機能によって静的データを有効に保護することができます。
注意:
この操作はアーカイブタイプのオブジェクトの暗号化の設定をサポートしていません。暗号化が必要な場合は、まず当該オブジェクトの復元操作を行い、復元完了後、ストレージタイプを標準または低頻度に変更してから、暗号化設定を行えます。 暗号化されたオブジェクトへのアクセスは、ユーザーがオブジェクトへのアクセス権限を持っている限り、暗号化されていないオブジェクトへのアクセスと使用感に違いはありません。
サーバー暗号化はオブジェクトデータのみを暗号化し、オブジェクトのメタデータは暗号化されません。また、オブジェクトサイズにも影響を与えません。
バケット内のオブジェクトを一覧表示する際、暗号化の有無に関わらず、すべてのオブジェクトがリストによって返されます。
ユースケース
プライベートデータストレージのケース:プライベートデータのストレージについては、サーバー側での暗号化は、保存されているデータに対して行うことができます。ユーザーのプライバシーは保証され、ユーザーがアクセスした際は自動的に復号されます。
プライベートデータ転送のケース:プライベートデータの転送については、COSはHTTPSを使用してデプロイしたSSL証明書を提供して暗号化機能を実現します。転送リンクレイヤー上に暗号化レイヤーを設け、データの転送過程でのハッキングや改ざんを確実に防止します。
暗号化方式
COSがサポートしているサーバー側の暗号化方式はSSE-COS、SSE-KMS、SSE-Cです。ユーザーはご自身に合った暗号化方式を選択し、COSに保存したデータの暗号化を行うことができます。
SSE-COSの暗号化
SSE-COS暗号化はCOSホスト鍵のサービス側暗号化である。テンセントクラウドCOSによってマスター鍵と管理データをホスティングする。ユーザーはCOSを介してデータを直接管理し、暗号化します。SSE-COSは多要素強暗号化を採用しており、一意の鍵を使用して各オブジェクトを暗号化し、定期的にローテーションされたマスター鍵を介して鍵自体を暗号化することを保証しています。
SSE-COSモードでは、AES256とSM4の2種類の暗号化アルゴリズムをサポートしており、デフォルトではAES256アルゴリズムが使用されます。オブジェクトをアップロードする際に、サーバー暗号化ヘッダーx-cos-server-side-encryptionを使用して暗号化アルゴリズムを指定できます。 注意:
プリサインURLを使用してアップロードされたオブジェクトの場合、SSE-COS暗号化は使用できません。COSコントロールパネルまたはHTTPリクエストヘッダーを使用してサーバー暗号化を指定する必要があります。
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暗号化を行ったことがなく、API方式のみを使用してSSE-KMS暗号化を行っている場合は、まずCAMロールを作成する必要があります。具体的な作成手順は次のとおりです。 1. CAMコンソールにログインし、ロールリストページに進みます。 2. ロールの新規作成をクリックし、Tencent Cloud製品サービスをロールエンティティとして選択します。
3. ロールをサポートするサービスはCOSを選択し、次のステップをクリックします。
4. ロールポリシーを設定します。QcloudKMSAccessForCOSRoleを検索してチェックを入れ、次のステップをクリックします。
5. ロールのタグキーとタグ値をマークし、次のステップをクリックします。
6. 指定のロール名:COS_QCSRoleを入力します。
注意:
アクセス管理CAMロールリスト内の既存のロール名「COS_QCSRole」は引き続き使用可能で、適用状態には影響しません。
7. 最後に完了をクリックすれば作成は終了です。
SSE-Cの暗号化
SSE-C暗号化はユーザーが提供するカスタムキーを使用したサーバー暗号化です。ユーザーがアップロードするオブジェクトに対して、COSはユーザーが提供した暗号化キーペアを使ってデータを暗号化します。SSE-Cモードでは、AES256およびSM4の2種類の暗号化アルゴリズムをサポートしており、デフォルトではAES256アルゴリズムが使用されます。オブジェクトをアップロードする際には、サーバー暗号化ヘッダーx-cos-server-side-encryption-customer-algorithm を使用して暗号化アルゴリズムを指定できます。 注意:
COSはユーザーが提供した暗号化キーを保存せず、暗号化キーにランダムデータを追加したHMAC値を保存します。このHMAC値はユーザーがオブジェクトにアクセスするリクエストを検証するために使用されます。COSはランダムデータのHMAC値を使って暗号化キーを導き出すことはできず、暗号化されたオブジェクトを復号化することもできません。したがって、ユーザーが暗号化キーを失った場合、オブジェクトを再取得することはできません。
使用方法
COSコントロールパネルの使用
注意:
SSE-C暗号化はコントロールパネル操作をサポートしておらず、API経由でのみ使用可能です。
SSE-COSおよびSSE-KMS暗号化のSM4アルゴリズムは、現在コントロールパネルおよびSDKによる呼び出しをサポートしておらず、API経由でのみ使用可能です。
2. 左側のナビゲーションメニューで、バケットリストをクリックし、バケットリストのページに移動します。
3. オブジェクトが存在するバケットを見つけ、そのバケット名をクリックし、バケット管理ページに移動します。
4. 左側のナビゲーションメニューでファイルリストを選択し、ファイルリストページに移動します。
5. 暗号化を設定したいオブジェクトを見つけ、右側の操作列で詳細をクリックします。
6. 「サーバーサイド暗号化」の項目で、対応する暗号化方式を選択し、保存をクリックします。
7. 現在、以下の2つの暗号化方式をサポートしています。
SSE-KMS:Tencent CloudのKey Management System(KMS)キーを使用したサーバーサイドの暗号化です。デフォルトキーまたは自身で作成したキーを使用できます。キー情報については、KMSキーの作成をご参照ください。SSE-KMSに関する詳細は、サーバーサイド暗号化概要:SSE-KMSをご参照ください。 説明:
SSE-COSで暗号化されたオブジェクトは匿名アクセスをサポートしますが、SSE-KMSで暗号化されたオブジェクトは有効な署名付きリクエストでのみアクセス可能であり、匿名ユーザーによるアクセスはできません。
複数のオブジェクトに対して一括で暗号化を設定する必要がある場合は、複数のオブジェクトにチェックを入れ、上部のその他の操作>暗号化方式の変更をクリックして設定します。
REST APIの使用
SSE-COSおよびSSE-KMS暗号化では、以下のAPIインターフェースがサポートされています。
説明:
POSTリクエスト以外でオブジェクトをアップロードする場合、x-cos-server-side-encryption-*ヘッダーを提供してサーバー暗号化を適用できます。POSTリクエストを使用する場合、フォームフィールドにx-cos-server-side-encryption-*フィールドを提供する必要があります。詳細については、POST Objectをご参照ください。 SSE-C暗号化では、以下のAPIインターフェースがサポートされています。
説明:
POSTリクエスト以外でオブジェクトをアップロードする場合、x-cos-server-side-encryption-*ヘッダーを提供してサーバー暗号化を適用できます。POSTリクエストを使用する場合、フォームフィールドにx-cos-server-side-encryption-*フィールドを提供する必要があります。詳細については、POST Objectをご参照ください。 SDKのオブジェクトタグ管理メソッドを呼び出すことができます。詳細は、以下の各言語のSDKドキュメントをご参照ください。