AWS實戰 對S3資料加密方式的總結

2021-09-13 02:19:32 字數 2274 閱讀 5536

名詞解釋

介紹

aws s3的資料加密分為伺服器端加密和客戶端加密兩大類:

客戶端加密:可以在客戶端加密資料並將加密的資料上傳到amazon s3。在這種情況下,您需要管理加密過程、加密金鑰和相關的工具。

伺服器端加密不會修改現有的s3訪問方式,客戶端加密則需要配合各種語言的aws開發工具包來完成訪問。

s3伺服器端加密分為以下3種具體的方式:

s3客戶端加密分為以下2種具體的方式:

ss3-kms(使用kms託管金鑰的伺服器端加密)

ss3-kms是利用aws-kms服務託管的cmk來對資料機密,使用這種加密方式的控制台操作步驟如下:

建立乙個資料夾,或者對乙個資料夾單擊右鍵,選擇更改加密;

選擇aws-kms,在下拉框中選擇需要使用的kms金鑰;

此時資料夾中所有物件都已經啟用了資料加密,進入iam面板,選擇左側最下方的加密金鑰標籤可以對kms金鑰進行管理;

第2步中,如果你之前建立過kms金鑰,可以在這裡看到所有的金鑰列表,如果之前從來沒建立,也可以看到乙個aws/s3的選項,它是s3建立的預設kms金鑰,使用它可以免去手動建立的過程,但該金鑰的靈活性較差。

需要說明的是,這樣操作只是對目前資料夾中的所有物件進行了加密,之後再寫入的物件並不會自動進行資料加密,針對這種情況,可以使用儲存桶策略進行控制,如果寫入的物件未使用指定的資料加密,則拒絕其行為,詳情參考使用具有aws kms託管金鑰的伺服器端加密(sse-kms)保護資料。

sse-s3(使用s3託管金鑰的伺服器端加密)

sse-s3使用唯一的資料加密金鑰來加密資料,再使用定期輪換的主金鑰來加密資料加密金鑰,但整個過程都是由s3託管的,使用者無法感知,無法接觸到金鑰,有點像黑箱。使用這種加密的方式基本與sse-kms一樣,只是在選擇加密方式的時候選擇aes-256即可,並且加密後也無法像第3步中那樣列出相關金鑰;

sse-c(使用客戶託管金鑰的伺服器端加密)

sse-c是使用者將金鑰和物件一起提供給s3s3使用金鑰對物件進行加密後再儲存,檢索物件時也需要提供該金鑰,s3則是幫助使用者完成加密和解密的過程。該加密方式無法在控制台中完成,只能通過sdk或者api的方式完成(支援控制台操作的sse-kmssse-s3同樣也支援sdkapi)。

使用kms託管客戶主金鑰

這種加密方式看著有點複雜,並且需要sdk來完成,其步驟簡單總結如下:

使用者請求kmskms返回資料加密金鑰純文字及資料加密金鑰的密碼blob;(what is key blob?)

用資料加密金鑰加密物件,然後將物件和blob上傳到s3blob儲存在物件的元資料中;

使用客戶端主金鑰

這種加密方式同樣需要sdk,步驟如下:

sdk(或者叫amazon s3加密客戶端)在本地對每個物件生成資料加密金鑰,並對物件加密;

使用客戶自己生成的金鑰(須符合一定的加密要求)對每個資料加密金鑰進行加密;

加密後的資料加密金鑰儲存在物件的元資料中;

使用主金鑰解密資料加密金鑰,使用資料加密金鑰解密物件;

AWS實戰 利用IAM對S3做訪問控制

要對s3的訪問許可權做控制,既可以使用基於身份的策略 iam使用者策略 也可以使用基於資源的策略 acl和儲存桶策略 訪問乙個儲存桶的許可權控制流程如圖所示 訪問儲存桶中的物件的許可權控制流程如圖所示 當 amazon s3 收到物件操作請求時,它會將基於資源的所有相關許可權 物件訪問控制列表 ac...

hive操作s3資料

1 hive配置s3訪問許可權 2 建立表 例如create external table table create time bigint comment 獲取時的時間 event name string comment 事件名 timestamp bigint comment 事件發生時間 is...

b s資料統計 S3記錄到統計報告

b s資料統計 雲是技術中的新流行語。儘管雲在許多設計圖或架構圖中主要表示網際網路,但雲計算已緩慢但肯定地演變為三種定義明確的服務,即iaas,paas和saas。當我們談論iaas時 該服務空間的領先者是亞馬遜,其服務縮寫為aws amazon web services 提供的服務之一,被廣泛接受...