ebs查看服务状态_浅析AWS KMS密钥管理服务
AWS Key Management Service (AWS KMS) 是一個密鑰管理服務,可以用來創建和管理您的主密鑰,AWS KMS使用對稱加密算法,即使用相同的算法和密鑰來加密和解密數字數據。AWS KMS已經和大多數的AWS服務集成,這就意味著您可以使用自己的密鑰來加密這些服務中的數據,同時,您可以使用AWS CloudTrail服務來滿足您的審核、監督和合規性要求,您可以隨時通過AWS CloudTrail來監控和查詢您的密鑰使用記錄。
信封加密
AWS KMS使用信封加密的方式實現數據的保護。簡單來說,信封加密就是用數據密鑰對明文數據進行加密,然后再使用其他數據密鑰對這個數據密鑰進行加密,但是您的最后一個數據密必須以明文的形式存在,以便您對其他的數據密鑰進行加密和解密操作。這個最頂層的明文密鑰稱為主密鑰,AWS KMS可以幫我們安全地存儲和管理這個主密鑰,在AWS KMS服務中,這個主密鑰稱為"客戶主密鑰(CMK)"。
CMK類型
客戶主密鑰(CMK)是AWS KMS 中的主要資源,AWS KMS使用CMK來生成、加密和解密數據密鑰。AWS 中的CMK有以下3種類型:
? 客戶托管CMK
客戶托管CMK是指您自己創建的主密鑰,您對這類CMK有完全的權限,如啟用、禁用、刪除、輪換等。在您AWS 賬戶的每個區域(Region)中,您最多可以創建1000個客戶托管CMK,但是您可以通過向AWS申請提高這個限制,以便創建更多的CMK。
? AWS 托管 CMK
AWS托管CMK是由與AWS KMS集成的服務創建,這類CMK的別名格式為 aws/service-name,如 aws/ebs,所以您無法使用 aws/格式來創建客戶托管CMK。您可以查看AWS賬戶中的AWS托管CMK,如果您使用了AWS托管CMK,也可以在AWS CloudTrail中對使用情況進行審核。您無法管理AWS托管CMK,如進行刪除、密鑰輪換等操作。AWS 托管 CMK 不計入有關賬戶中 CMK 數的限制。
? AWS擁有的CMK
AWS擁有的CMK是AWS擁有和管理的在多個AWS賬戶中使用的CMK集合的一部分,您無法查看、管理以及使用AWS擁有的CMK,所以您也無法在AWS CloudTrail中審核使用情況。
KMS身份驗證及訪問控制
AWS KMS使用IAM角色或IAM用戶來對請求進行驗證,我們建議您通過角色來進行相關的授權,而不是直接通過IAM用戶的ak,sk。您可以通過AWS KMS密鑰策略或IAM策略來進行訪問控制,密鑰策略使用JSON來定義權限,需要注意的是,策略文檔不能超過32KB。
您必須使用AWS密鑰策略來控制對CMK的訪問,因為IAM策略本身無法允許對CMK進行訪問,所以我們建議您將AWS密鑰策略和IAM策略結合使用,以便對CMK進行詳細的權限控制。
密鑰輪換
不管是加密還是密碼,最佳實踐是密鑰不要大量的重復使用,同時,應該對密鑰進行定期的更新(輪換)。AWS KMS支持對客戶托管CMK進行自動輪換密鑰和手動輪換密鑰,默認情況下,AWS KMS 禁用CMK的自動輪換功能,啟用后,AWS KMS會在啟用日期365天之后自動輪換密鑰,您無法自定義自動輪換的天數,自動輪換的過程對客戶完全是透明的,客戶無需更改任何配置,AWS KMS會自動完成所有的操作,同時,您可以通過訂閱AWS CloudWatch Events中的事件,以便在發生自動輪換時可以直接通知到您。如果1年1次的頻率無法滿足當前需求,您也可以手動輪換密鑰,但手動輪換的方式意味著您必須要更新您的應用程序使用新的主密鑰。
對于AWS 托管 CMK,您無法管理其自動輪換,AWS KMS 會每3年進行一次密鑰輪換,當然,這也意味著您無法通過手動輪換的方式來管理AWS托管CMK。對于您自己導入的CMK,您只能使用手動方式來進行密鑰的輪換。
接下來,讓我們一起通過演練,來看一下如果使用AWS KMS創建您的第一個客戶托管CMK。
演練:創客戶托管CMK
? 打開KMS服務控制臺,并選擇"客戶管理的密鑰"
? 選擇"創建密鑰"
? 填寫別名和描述等信息,然后選擇"下一步"
? 根據需要添加Tag,我們建議您添加類似的Tag,以方便對其進行管理
? 定義密鑰的管理員,同時也可以定義管理員是否可以刪除此密鑰
? 定義權限,也就是誰可以調用此CMK進行加密和解密操作,您也可以指定其他AWS賬戶,指定的那個用戶就會有權限允許其賬號下的IAM用戶和角色去使用該CMK
? 確認當前的策略,確認沒有問題后點擊"完成",即可創建一個CMK
? 如果想啟用密鑰輪換,可以在CMK詳情中的"密鑰輪換"中設置
通過KMS加密S3中的文件
在AWS S3中使用AWS KMS來加密數據時,AWS S3會自動完成數據密鑰的申請、數據的加密等操作,整個過程對用戶來說是透明的,用戶無需進行任何的額外操作。詳細的加密流程如下:
? 用戶上傳文件到配置KMS加密的S3存儲桶
? S3會向AWS KMS服務發起請求,請求明文數據密鑰以及使用指定的客戶托管 CMK 或 AWS 托管 CMK 加密的密鑰的副本
? AWS KMS服務收到請求后,會使用S3請求中指定的CMK來創建一個數據密鑰,并使用CMK來加密這個數據密鑰
? AWS KMS會將明文數據密鑰和加密后的數據密鑰一同發送給AWS S3
? AWS S3收到密鑰后,會使用明文數據密鑰來加密指定的文件,
? 加密完成后,會盡快從內存中刪除明文密鑰,只保存加密后的文件和加密的數據密鑰
? AWS S3會將加密后的數據保存到S3,同時將將加密的數據密鑰作為元數據存儲
了解AWS S3使用AWS KMS加密數據的原理以后,讓我們通過下面的演練來實際體驗一下整個加密過程。
演練:使用KMS加密S3中的文件
在了解AWS KMS及AWS S3之間的加密流程后,接下來讓我們一起來看下整個加密過程的實際操作步驟。
? 準備工作:您必須有一個已經創建好的CMK以及一個AWS S3存儲桶
注意:AWS KMS和AWS S3存儲桶必須位于同一AWS Region,否則所有加密的請求會出現400錯誤
? 如果您想對上傳到指定存儲桶的文件都進行加密,則可以直接在AWS S3屬性中的"默認加密"中指定您的CMK。
CMK ARN可以在AWS KMS控制臺中的CMK詳細信息里獲取到
? 加密配置完成后,可以在AWS S3存儲桶的"默認加密"中看到所使用的加密方式
? 上傳本地文件到AWS S3存儲桶
? 查看S3文件屬性,可以看到已經使用我們指定的CMK進行了加密
通過KMS解密S3中的加密文件
和加密一樣,解密過程對用戶來說也是透明的,S3會自動完成數據密鑰和數據的解密工作,用戶在S3中進行下載等文件操作時,S3會自動對加密的文件進行解密,所以用戶下載的文件是解密后的文件。但需要注意的是:如果您用某個CMK加密了S3中的文件,您必須要保管好該CMK,請不要輕易進行禁用和刪除操作,否則使用該CMK加密的所有S3文件將無法下載。
詳細的解密流程如下:
? 用戶發起加密文件的解密請求
? AWS S3會將用戶的請求發送到AWS KMS服務,該請求中包含了加密的數據密鑰以及加密所使用的的CMK等信息
? AWS KMS使用對應的CMK來對加密的數據密鑰進行解密
? AWS KMS會將解密后的明文數據密鑰發送到S3
? S3收到后,會使用明文密鑰來對加密數據進行解密
? 用戶得到解密后的數據文件
? 解密完成后,S3會盡快從內存中刪除明文數據密鑰
AWS KMS服務在中國區的情況
AWS KMS服務目前在北京區域和寧夏區域均可使用,目前已經和Amazon EBS,Amazon S3,Amazon Relational Database Service(RDS)和Amazon Aurora無縫集成,隨著AWS中國區服務的增加,后續會支持更多的AWS服務。
總結
以上是生活随笔為你收集整理的ebs查看服务状态_浅析AWS KMS密钥管理服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql数据库加载太慢_mysql千万
- 下一篇: 一万免赔什么意思