天天看點

OSS伺服器端加密之初體驗關于伺服器端加密關于ossutilAES256加密KMS加密檔案讀取

本文介紹如何基于ossutil工具,體驗oss伺服器端加密功能。

OSS支援在伺服器端對使用者上傳的資料進行加密編碼(Server-Side Encryption):使用者上傳資料時,OSS對收到的使用者資料進行加密編碼,然後再将得到的加密資料持久化儲存下來;使用者下載下傳資料時,OSS自動對儲存的加密資料進行解密并把原始資料傳回給使用者,并在傳回的HTTP請求Header中,聲明該資料進行了伺服器端加密。

OSS伺服器端加密目前支援2種:

使用由OSS完全托管的服務端加密(簡稱AES256加密)

使用由KMS托管密鑰的服務端加密(簡稱KMS加密)

本文測試用的bucket是<code>test-oss-encryption</code>,位于北京region.

1.從本地上傳1個測試檔案到oss,并聲明加密類型為<code>AES256</code>。

說明:<code>--meta</code>字段用來添加http請求的header字段,這裡是添加了<code>x-oss-server-side-encryption</code>這個header,對應value為<code>AES256</code>,這樣OSS就會對該檔案進行<code>AES256</code>加密了。

2.檢視剛上傳的檔案meta資訊。

輸出結果類似如下:

OSS伺服器端加密之初體驗關于伺服器端加密關于ossutilAES256加密KMS加密檔案讀取

可以看到該檔案的屬性中已經多了一項說明:<code>X-Oss-Server-Side-Encryption: AES256</code>,說明該檔案在伺服器端已經啟用了<code>AES256</code>加密存儲

其實使用KMS加密跟AES256加密類似,隻需聲明加密算法為<code>KMS</code>即可。

注意:

使用者開通KMS服務後,如果向OSS上傳檔案時使用<code>KMS</code>加密方式,OSS會為使用者在目前region建立主密鑰,且隻會建立1次。OSS為使用者建立的KMS主密鑰不收管理費用。

下面開始體驗<code>KMS</code>加密功能

1.從本地上傳1個測試檔案到oss,并申明加密類型為<code>KMS</code>。

隻需要将加密算法聲明為<code>KMS</code>即可。

輸出結果類似下面

OSS伺服器端加密之初體驗關于伺服器端加密關于ossutilAES256加密KMS加密檔案讀取

可以看到除了<code>X-Oss-Server-Side-Encryption</code>值為<code>KMS</code>外,還有1個特殊字段<code>X-Oss-Server-Side-Encryption-Key-Id</code>。

<code>X-Oss-Server-Side-Encryption-Key-Id</code>對應的值<code>d66363ea-d18a-4270-9c63-669b79ba8b78</code>,其實就是OSS給使用者在KMS上建立的主密鑰的ID。

OSS伺服器端加密之初體驗關于伺服器端加密關于ossutilAES256加密KMS加密檔案讀取

上圖就是我的kms控制台截圖,可以看到華北2(北京region)中有1個key, 該key前面有1個阿裡雲圖示。這個key就是OSS給使用者在華北2區域建立的主密鑰,而密鑰ID和我們檢視oss檔案meta資訊時看到的一緻。

無論是<code>AES256</code>加密還是<code>KMS</code>加密,讀取檔案時都不需要特殊參數,OSS會自動解密并将解密後的結果傳回給使用者。

繼續閱讀