内容简介:整理 KMS 的學習筆記。CMKs 儲存在 AWS KMS,而且不會沒加密的離開 AWS KMS。是個加密密鑰 (encryption key),可以用來加密大型的檔案資料,或者其他資料加密密鑰。KMS 本身不會儲存、追蹤、管理 Data Key。必須自己管理。
整理 KMS 的學習筆記。
基本介紹
名詞
-
Customer Master Keys (CMKs): 用來加解密資料,每筆資料上限為 4KiB (4096 bytes)
- alias, creation
- key state
- key material: either customer provided or AWS
- Permission: Administrative Permission, Usage Permission
CMKs 儲存在 AWS KMS,而且不會沒加密的離開 AWS KMS。
- Data Keys
是個加密密鑰 (encryption key),可以用來加密大型的檔案資料,或者其他資料加密密鑰。KMS 本身不會儲存、追蹤、管理 Data Key。必須自己管理。
- Envelope Encryption (信封式加密)
當加密資料的時候,資料是被保護的,但是加密密鑰 (encryption key) 並沒有被保護。所以策略上,就是再加密它一次。
-
Encryption Context
- Additional Authenticated Data (AAD)
-
Key Material
- symmetric 256-bit key
- Grant Token
概念
生命週期
- KMS 是 Region Level
主要功能
加密 (Encrypt)
AWS_REGION="us-west-2" ## 四種表示 CKM_ID 的方式 CMK_ID="1234abcd-12ab-34cd-56ef-1234567890ab" CMK_ID="alias/key-20181129" CMK_ID="arn:aws:kms:${AWS_REGION}:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" CMK_ID="arn:aws:kms:${AWS_REGION}:123456789012:alias/key-20181129" ## 大小在 4KiB 以內 PLAINTEXT_PATH="plain_data.txt" CIPHERTEXT_PATH="encrypted_data.bin" ## 加密:測試加密結果 aws kms encrypt \ --key-id ${CMK_ID} \ --plaintext fileb://${PLAINTEXT_PATH} \ --output text \ --query CiphertextBlob ## 加密:轉成 Base64 aws kms encrypt \ --key-id ${CMK_ID} \ --plaintext fileb://${PLAINTEXT_PATH} \ --output text \ --query CiphertextBlob | base64 --decode > ${CIPHERTEXT_PATH}
解密 (Decrypt),不需要指定 CMK_ID。
CIPHERTEXT_PATH="encrypted_data.bin" PLAINTEXT_PATH="plaintext.data" ## 解密:測試解密,直接輸出 aws kms decrypt \ --ciphertext-blob fileb://${CIPHERTEXT_PATH} \ --output text \ --query Plaintext ## 解密:解 Base64 encoding aws kms decrypt \ --ciphertext-blob fileb://${CIPHERTEXT_PATH} \ --output text \ --query Plaintext | base64 --decode > ${PLAINTEXT_PATH}
刪除 CMK
CMK 可以被刪除,但是為了避免因為刪除,造成資料永久無法解密,所以流程是:
-
必須先
Disable
,這時候無法用這把 CMK 加密、解密,會出現類似這樣的訊息:An error occurred (DisabledException) when calling the Encrypt operation: arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab is disabled. An error occurred (DisabledException) when calling the Decrypt operation: arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab is disabled.
-
再執行
Schedule Key deletion
(至少是七天後),這時候如果執行 encrypt 會出現這樣的錯誤訊息:An error occurred (KMSInvalidStateException) when calling the Encrypt operation: arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab is pending deletion. An error occurred (KMSInvalidStateException) when calling the Decrypt operation: arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab is pending deletion. Cancel Key Deletion
官方文件針對 CMK 狀態,可以執行那一些動作整理了一份列表,主要是針對 CMK 狀態
與 Action 的排列組合,詳細參閱 Key State Affects
。這列表基本上跟 Redmine Workflow 的狀態與角色切換列表差不多概念。
計費方式
計費項目分成以下部分:
- CMK 固定費用:每個 CMK 每月使用費用固定 1 USD,CMK 被刪除前同樣要收費。
- API 請求費用:每 10,000 個請求 0.03 USD (除了 GovCloud)
限制
整合應用
KMS 整合很多 AWS Services
S3 加密
預設的 Bucket 加密方式
virtual host 存取
下載
https://docs.aws.amazon.com/kms/latest/developerguide/services-s3.html
SES
https://docs.aws.amazon.com/kms/latest/developerguide/services-ses.html
Lambda
Secrets Manager
https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html
EBS
https://docs.aws.amazon.com/kms/latest/developerguide/services-ebs.html
DynamoDB
https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html
CloudTrail
https://docs.aws.amazon.com/kms/latest/developerguide/services-cloudtrail.html
SSM Parameter Store
https://docs.aws.amazon.com/kms/latest/developerguide/services-parameter-store.html
監控 KMS 使用狀況
Namespace: AWS/KMS
https://docs.aws.amazon.com/kms/latest/developerguide/monitoring-cloudwatch.html
-
SecondsUntilKeyMaterialExpiration
*
常見問答
Q: 每個 CMK 有自己的 Admin / User 清單,那麼還需要授權給個別的 IAM User?
實測過,IAM User encrypt / decrypt 的權限由 CMK 的 Key Policy 管理。
Q: API Operation (e.g., Encrypt, Decrypt, GenerateDataKey) 有沒有 Rate Limit?
依照官方文件 KMS - Limits 的描述,主要的動作 (Decrypt, Encrypt, Generate*, ReEncrypt),在大部分的 Region RPS 都是 5000,us-east-1 / us-west-2 / eu-west-1 為 10,000。這些 RPS 是 Shared.
Q: Key Rotation 時,CMK 的 key ID, ARN, Region … 會改變嗎?
不會。
以上所述就是小编给大家介绍的《Study Notes - KMS》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
一只小鸟告诉我的事
[美]比兹·斯通 / 顾雨佳 / 中信出版社 / 2014-11 / 59.00元
比兹•斯通,无疑是自乔布斯后的又一个硅谷奇迹! 70后的他,出身贫苦,一无所有,却又特立独行,充满智慧。从他这本自传中,我们知道他和乔布斯一样,大学都没读完就辍学做了一名图书封面设计师,然后创建了赞架(Xanga)网站,又进了谷歌。在经济上打了翻身仗后,他毅然放弃了安逸的生活,从零开始,和朋友创建了世界最知名的社交平台推特(Twitter)。当推特奇迹般地改变着世界时,他又悄然离去,创建了自......一起来看看 《一只小鸟告诉我的事》 这本书的介绍吧!