

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 的密碼編譯詳細資訊簡介 AWS KMS
<a name="intro"></a>

AWS Key Management Service (AWS KMS) 提供 Web 界面來產生和管理密碼編譯金鑰，並做為密碼編譯服務提供者運作以保護資料。 AWS KMS 提供與 AWS 服務整合的傳統金鑰管理服務 AWS，透過集中式管理和稽核，提供客戶金鑰的一致檢視。本白皮書提供 密碼編譯操作的詳細說明 AWS KMS ，協助您評估 服務所提供的功能。

AWS KMS 包含透過 AWS 管理主控台的 Web 界面、命令列界面和 RESTful API 操作，以請求 FIPS 140-3 驗證的分散式硬體安全模組 (HSMs) 的密碼編譯操作【[1](kms-bibliography.md#fips-hsms)】。 AWS KMS HSM 是一種多晶片獨立硬體密碼編譯設備，旨在提供專用密碼編譯函數，以滿足 的安全性和可擴展性要求 AWS KMS。您可以在作為 AWS KMS keys管理的金鑰下建立自己的 HSM 式密碼編譯階層。這些金鑰只能在處理密碼編譯請求所需的必要時間內在 HSM 上和記憶體內提供。您可以建立多個 KMS 金鑰，每個金鑰都以其金鑰 ID 表示。只有在每個客戶管理的 AWS IAM 角色和帳戶下，才能建立、刪除或使用客戶 KMS 金鑰來加密、解密、簽署或驗證資料。您可以藉由建立連接至金鑰的政策，來定義誰可以管理和/或使用 KMS 金鑰的存取控制項。這些政策可讓您為每個 API 操作定義金鑰的應用程式特定用途。

此外，大多數 AWS 服務都支援使用 KMS 金鑰加密靜態資料。此功能可讓客戶透過控制存取 KMS 金鑰的方式和時間，來控制 AWS 服務存取加密資料的方式和時間。

![\[AWS KMS 架構。\]](http://docs.aws.amazon.com/zh_tw/kms/latest/cryptographic-details/images/KMS-Architecture.png)


AWS KMS 是一種分層服務，由面向 Web 的 AWS KMS 主機和 HSMs層組成。這些分層主機的分組會形成 AWS KMS 堆疊。所有對 的請求 AWS KMS 都必須透過 Transport Layer Security 通訊協定 (TLS) 提出，並在 AWS KMS 主機上終止。 AWS KMS 主機只允許 TLS 搭配提供完美[轉送 secrecy](http://dx.doi.org/10.6028/NIST.SP.800-52r2). AWS KMS 驗證和授權您的請求，其使用與 (IAM) 相同的登入資料和政策機制 AWS Identity and Access Management ，可用於所有其他 AWS API 操作。

# 基本概念
<a name="basic-concepts"></a>

學習一些基本術語和概念將協助您充分利用 AWS Key Management Service。

**AWS KMS key**  
AWS KMS 正在將術語*客戶主金鑰 (CMK)* 取代為 *AWS KMS key*和 *KMS 金鑰*。概念並沒有變更。為了防止中斷變更， AWS KMS 正在保留此術語的一些變化。
代表金鑰階層頂端的邏輯金鑰。賦予 KMS 金鑰一個 Amazon Resource Name (ARN)，其中包含唯一金鑰識別符或金鑰 ID。 AWS KMS keys 有三種類型：  
+ **客戶管理的金鑰** – 客戶建立並控制客戶受管金鑰的生命週期和重要政策。針對這些金鑰提出的所有請求都會記錄為 CloudTrail 事件。
+ **AWS 受管金鑰** – AWS 建立和控制 的生命週期和金鑰政策 AWS 受管金鑰，這是客戶 中的 資源 AWS 帳戶。客戶可以檢視 AWS 受管金鑰的存取政策和 CloudTrail 事件，但無法管理這些金鑰的任何方面。針對這些金鑰提出的所有請求都會記錄為 CloudTrail 事件。
+ **AWS 擁有的金鑰** – 這些金鑰由 建立，並僅供 AWS 用於不同 AWS 服務的內部加密操作。客戶無法查看 CloudTrail AWS 擁有的金鑰 中的金鑰政策或使用。

**別名**  
與 KMS 金鑰相關聯的使用者易記名稱。別名可與許多 AWS KMS API 操作中的金鑰 ID 互換使用。

**許可**  
連接至 KMS 金鑰的政策，用於定義金鑰的許可。預設政策允許您定義的任何主體，並允許 AWS 帳戶 新增參考金鑰的 IAM 政策。

**授權**  
一開始預期的 IAM 主體或使用持續時間未知並因此新增至金鑰或 IAM 政策時使用 KMS 金鑰的委派許可。授予的其中一個用途是定義 AWS 服務如何使用 KMS 金鑰的縮小範圍許可。在沒有直接簽署之 API 呼叫的情況下，服務可能需要使用您的金鑰代表您對加密的資料執行非同步工作。

**資料金鑰**  
HSMs 上產生的密碼編譯金鑰，受到 KMS 金鑰的保護。 AWS KMS 允許授權實體取得受 KMS 金鑰保護的資料金鑰。它們可以同時以純文字 (未加密) 資料金鑰和加密資料金鑰傳回。資料金鑰可以是對稱的或非對稱的 (同時傳回公有和私有部分)。

**加密文字**  
的加密輸出 AWS KMS有時稱為客戶加密文字，以消除混淆。加密文字包含加密的資料，其中包含識別要在解密程序中使用之 KMS 金鑰的其他資訊。加密的資料金鑰是使用 KMS 金鑰時產生之加密文字的一個常見範例，但任何大小小於 4 KB 的資料都可以在 KMS 金鑰下加密，以產生加密文字。

**加密內容**  
與 AWS KMS受保護資訊相關聯的其他資訊的金鑰/值對映射。 AWS KMS 使用已驗證的加密來保護資料金鑰。加密內容會併入已驗證加密的 AWS KMS加密加密文字 AAD。此內容資訊是選用的，不會在請求金鑰 (或加密操作) 時傳回。但如果使用，則需要此內容值才能成功完成解密操作。加密內容預期用於提供其他經驗證的資訊。此資訊可協助您強制執行政策，並包含在 AWS CloudTrail 日誌中。例如，您可以使用 \$1"key name":"satellite uplink key"\$1 的鍵值對來命名資料金鑰。後續使用金鑰會建立包含「金鑰名稱」：「衛星上行金鑰」 AWS CloudTrail 的項目。此額外資訊可提供有用的內容，以了解為何使用指定的 KMS 金鑰。

**公有金鑰**  
使用非對稱密碼 (RSA 或橢圓曲線) 時，公有金鑰是公有-私有金鑰對的「公有元件」。公有金鑰可以共用並分配至需要為公有-私有金鑰對擁有者加密資料的實體。對於數位簽章操作，公有金鑰用於驗證簽章。

**私有金鑰**  
使用非對稱密碼 (RSA 或橢圓曲線) 時，私有金鑰是公有-私有金鑰對的「私有元件」。私有金鑰用於解密資料或建立數位簽章。與對稱 KMS 金鑰類似，私有金鑰會在 HSM 中加密。其只會解密到 HSM 的短期記憶體中，並且僅在處理您的密碼編譯請求所需的時間內。

# AWS KMS 設計目標
<a name="design-goals"></a>

AWS KMS 的設計符合下列要求。

**耐久性**  
密碼編譯金鑰的耐久性旨在與 中最高的耐久性服務相同 AWS。單一密碼編譯金鑰可以加密長時間累積的大量資料。

**值得信賴**  
金鑰的使用受到您定義和管理之存取控制政策的保護。沒有任何機制可匯出純文字 KMS 金鑰。密碼編譯金鑰的機密性至關重要。若要對 HSM 執行管理動作，需要有多名 Amazon 員工擁有對以仲裁為基礎之存取控制項的角色特定存取權。

**低延遲和高輸送量**  
AWS KMS 提供適用於其他 服務之延遲和輸送量層級的密碼編譯操作 AWS。

**獨立區域**  
AWS 為需要限制不同區域中資料存取的客戶提供獨立區域。可以在 AWS 區域內隔離金鑰用量。

**隨機數字的安全來源**  
由於強大的密碼編譯取決於真正不可預測的隨機數字產生，所以 AWS KMS 提供了高品質且經過驗證的隨機數字來源。

**稽核**  
AWS KMS 在 AWS CloudTrail 日誌中記錄密碼編譯金鑰的使用和管理。您可以使用 AWS CloudTrail 日誌來檢查密碼編譯金鑰的使用，包括 AWS 服務代表您使用金鑰。

為了實現這些目標， AWS KMS 系統包含一組管理「網域」的 AWS KMS 運算子和服務主機運算子 （統稱為「運算子」)。網域是區域定義的一組 AWS KMS 伺服器、HSMs和運算子。每個 AWS KMS 運算子都有硬體字符，其中包含用於驗證其動作的私有和公有金鑰對。HSM 具有額外的私有和公有金鑰對，可建立保護 HSM 狀態同步的加密金鑰。

本文說明 如何 AWS KMS 保護您的金鑰和您要加密的其他資料。在本文件中，您要加密的加密金鑰或資料稱為「機密」或「機密材料」。