本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的加密最佳實務 AWS Key Management Service
AWS Key Management Service (AWS KMS) 可協助您建立和控制密碼編譯金鑰,以協助保護您的資料。 與大多數 AWS 服務 可以加密資料的其他 AWS KMS 整合。如需完整清單,請參閱AWS 服務 與 整合 AWS KMS
KMS 金鑰是 中的主要資源 AWS KMS,也是密碼編譯金鑰的邏輯表示法。KMS 金鑰有三種主要類型:
-
客戶受管金鑰是您建立的 KMS 金鑰。
-
AWS 受管金鑰是在帳戶中代表您 AWS 服務 建立的 KMS 金鑰。
-
AWS 擁有的金鑰是 AWS 服務 擁有和管理的 KMS 金鑰,可用於多個 AWS 帳戶。
如需有關這些金鑰類型的詳細資訊,請參閱客戶金鑰和 AWS 金鑰。
在 中 AWS 雲端,政策用於控制誰可以存取資源和服務。例如,在 AWS Identity and Access Management (IAM) 中,身分型政策會定義使用者、使用者群組或角色的許可,以及連接至資源的資源型政策,例如 S3 儲存貯體,並定義哪些主體允許存取、支援的動作,以及必須符合的任何其他條件。與 IAM 政策類似, AWS KMS 會使用金鑰政策來控制對 KMS 金鑰的存取。每個 KMS 金鑰都必須具有金鑰政策,且每個金鑰只能具有一個金鑰政策。定義允許或拒絕存取 KMS 金鑰的政策時,注意下列事項:
-
您可以控制客戶受管金鑰的金鑰政策,但無法直接控制 AWS 受管金鑰或 AWS 擁有金鑰的金鑰政策。
-
金鑰政策允許授予 內 AWS KMS API 呼叫的精細存取權 AWS 帳戶。除非金鑰政策明確允許,否則您不能使用 IAM 政策來允許存取 KMS 金鑰。如果沒有金鑰政策的許可,允許許可的 IAM 政策將不起作用。如需詳細資訊,請參閱允許 IAM 政策存取 KMS 金鑰。
-
您可以使用 IAM 政策拒絕對客戶受管金鑰的存取,而無需金鑰政策的對應許可。
-
針對多區域金鑰設計金鑰政策和 IAM 政策時,請考慮下列事項:
-
金鑰政策不是多區域金鑰的共用屬性,且不會在相關的多區域金鑰之間複製或同步。
-
使用
CreateKey
和ReplicateKey
動作建立多區域金鑰時,將套用預設金鑰政策,除非在請求中指定了金鑰政策。 -
您可以實作條件金鑰 (例如 aws:RequestedRegion),以限制特定 AWS 區域的許可。
-
您可以使用授予來允許多區域主要金鑰或複本金鑰的許可。但是,您無法使用單一授予來允許多個 KMS 金鑰的許可,即使這些金鑰是相關的多區域金鑰。
-
使用 AWS KMS 和建立金鑰政策時,請考慮下列加密最佳實務和其他安全最佳實務:
-
遵循下列資源中 AWS KMS 有關最佳實務的建議:
-
AWS KMS 授予的最佳實務 (AWS KMS 文件)
-
IAM 政策的最佳實務 (AWS KMS 文件)
-
-
根據職責分離最佳實務,為管理金鑰的人員和使用金鑰的人員維護個別身分:
-
建立和刪除金鑰的管理員角色不應具有使用金鑰的能力。
-
部分服務可能只需要加密資料,而不應授予使用金鑰解密資料的能力。
-
-
金鑰政策應永遠遵循最低權限的模型。請勿將
kms:*
用於 IAM 或金鑰政策中的動作,因為這會授予主體管理和使用金鑰的許可。 -
在金鑰政策中使用 kms:ViaService AWS 服務 條件金鑰,將客戶受管金鑰的使用限制為特定。
-
如果您可以在金鑰類型之間進行選擇,則優先客戶受管金鑰,因為其會提供最精細的控制選項,包括下列選項:
-
AWS KMS 管理和修改許可必須明確拒絕未經核准的委託人,且 AWS KMS 修改許可不應存在於任何未經授權委託人的允許陳述式中。如需詳細資訊,請參閱適用於 AWS Key Management Service的動作、資源和條件鍵。
-
為了偵測未經授權使用 KMS 金鑰,請在 中 AWS Config實作 iam-customer-policy-blocked-kms-actions 和 iam-inline-policy-blocked-kms-actions 規則。這可防止主體在所有資源上使用 AWS KMS 解密動作。
-
在 中實作服務控制政策 SCPs), AWS Organizations 以防止未經授權的使用者或角色直接以命令或透過主控台刪除 KMS 金鑰。如需詳細資訊,請參閱使用 SCPs做為預防性控制
(AWS 部落格文章)。 -
在 CloudTrail 日誌中記錄 AWS KMS API 呼叫。這會記錄相關的事件屬性,例如發出的請求內容、發出請求的來源 IP 地址以及發出請求的人。如需詳細資訊,請參閱使用 記錄 AWS KMS API 呼叫 AWS CloudTrail。
-
如果您使用加密內容,它不應包含任何敏感資訊。CloudTrail 將加密內容儲存在純文字 JSON 檔案中,有權存取包含此資訊的 S3 儲存貯體的任何人都可以檢視該檔案。
-
監控客戶受管金鑰的使用情況時,設定事件以在偵測特定動作 (例如建立金鑰、更新客戶受管金鑰政策或匯入金鑰材料) 時通知您。也建議您實作自動回應,例如停用金鑰或執行組織政策規定的任何其他事件回應動作的 AWS Lambda 函數。
-
多區域金鑰建議用於特定案例,例如合規、災難復原或備份。多區域金鑰的安全屬性與單一區域金鑰顯著不同。授權建立、管理和使用多區域金鑰時,採用下列建議:
-
允許委託人只將多區域金鑰複寫至需要的 AWS 區域 中。
-
只將多區域金鑰的許可授予需要這些金鑰的委託人,並且僅為需要這些金鑰的任務授予。
-