概觀
AWS Key Management Service (KMS) 可讓您集中控管用來保護資料的加密金鑰。這項服務整合了其他 AWS 服務,讓您可以更輕鬆地加密存放在這些服務中的資料,並控制解密金鑰的存取權。AWS KMS 還可與 AWS CloudTrail 整合,這可協助您稽核誰使用哪些金鑰、用於哪些資源以及使用的時間。AWS KMS 可協助開發人員透過直接或使用 AWS 開發套件的方式,更輕鬆地為其應用程式的程式碼新增加密或數位簽章功能。對於必須在本機加密/解密應用程式資料的開發人員來說,AWS Encryption SDK 支援 AWS KMS 做為金鑰提供者。
AWS KMS 為您提供金鑰生命週期和許可的集中化控制。您隨時可以建立新的主金鑰,並控制誰可以管理金鑰,以及誰可以使用金鑰。您也可以匯入自己金鑰管理基礎設施中的金鑰,使用存放在 AWS CloudHSM 叢集的金鑰,或在您的外部金鑰管理器保存在 AWS 外部的金鑰,來取代使用 AWS KMS 產生的金鑰。您可選擇每年自動輪換一次在 AWS KMS 中產生的根金鑰,而不需要再次加密先前加密的資料。這項服務會自動保留可用於加密先前加密資料的根金鑰舊版本。您可以透過 AWS 管理主控台,也可以使用 AWS SDK 或 AWS 命令列界面 (CLI),來管理根金鑰,並稽核金鑰的使用情況。
* 匯入金鑰的選項不適用於非對稱金鑰。
AWS 服務整合
AWS KMS 與 AWS 服務整合以加密靜態資料,或使用 AWS KMS key 協助簽名和驗證。為了保護靜態資料,整合的 AWS 服務使用封套加密,其中資料金鑰用於加密資料,且其本身透過存放在 AWS KMS 中的 KMS 金鑰進行加密。為了進行簽名和驗證,整合的 AWS 服務使用 AWS KMS 中的非對稱 RSA 或 ECC KMS 金鑰。如需有關整合的服務如何使用 AWS KMS 的更多詳細資訊,請參閱您的 AWS 服務相關文件。
企業版 Alexa[1] | Amazon GuardDuty | Amazon Redshift | AWS CodePipeline |
Amazon AppFlow | Amazon HealthLake | Amazon Rekognition | AWS Control Tower |
Amazon Athena | Amazon Inspector | Amazon Relational Database Service (RDS) | AWS Data Exchange |
Amazon Aurora | Amazon Kendra | Amazon Route 53 | AWS Database Migration Service |
Amazon CloudWatch Logs | Amazon Keyspaces (適用於 Apache Cassandra) | Amazon Simple Storage Service (Amazon S3) | AWS Elastic Disaster Recovery |
Amazon CloudWatch Synthetics | Amazon Kinesis Data Streams | Amazon SageMaker | AWS Elemental MediaTailor |
Amazon CodeGuru | Amazon Kinesis Firehose | Amazon Simple Email Service (SES) | AWS GameLift |
Amazon Comprehend | Amazon Kinesis Video Streams | Amazon Simple Notification Service (SNS) | AWS Glue |
Amazon Connect | Amazon Lex | Amazon Simple Queue Service (SQS) | AWS Glue DataBrew |
Amazon Connect Customer Profiles | Amazon Lightsail[1] | Amazon Textract | AWS Ground Station |
Amazon Connect Voice ID | Amazon Location Service | Amazon Timestream | AWS IoT SiteWise |
Amazon Connect Wisdom | Amazon Lookout for Equipment | Amazon Transcribe | AWS Key Management Service(AWS KMS) |
Amazon DocumentDB | Amazon Lookout for Metrics | Amazon Translate | AWS Lambda |
Amazon DynamoDB | Amazon Lookout for Vision | Amazon WorkMail | AWS License Manager |
Amazon DynamoDB Accelerator (DAX)[1] | Amazon Macie | Amazon WorkSpaces | AWS Mainframe Moderization |
Amazon EBS | Amazon Managed Blockchain | Amazon WorkSpaces Web | AWS Network Firewall |
Amazon EC2 Image Builder | Amazon Managed Service for Prometheus | AWS Audit Manager | AWS Proton |
Amazon EFS | Amazon Managed Streaming for Kafka (MSK) | AWS Application Cost Profiler | AWS Secrets Manager |
Amazon Elastic Container Registry (ECR) | Amazon Managed Workflows for Apache Airflow(MWAA) | AWS Application Migration Service | AWS Snowball |
Amazon Elastic Kubernetes Service(EKS) | Amazon MemoryDB | AWS App Runner | AWS Snowball Edge |
Amazon Elastic Transcoder | Amazon Monitron | AWS Backup | AWS Snowcone |
Amazon ElastiCache | Amazon MQ | AWS Certificate Manager[1] | AWS Snowmobile |
Amazon EMR | Amazon Neptune | AWS Cloud9[1] | AWS Storage Gateway |
Amazon EMR Serverless | Amazon Nimble Studio | AWS CloudHSM[2] | AWS Systems Manager |
Amazon FinSpace | Amazon OpenSearch | AWS CloudTrail | AWS X-Ray |
Amazon Forecast | Amazon Omics | AWS CodeArtifact | |
Amazon Fraud Detector | Amazon Personalize | AWS CodeBuild | |
Amazon FSx | Amazon QLDB | AWS CodeCommit[1] |
[1] 僅支援 AWS 受管金鑰。
[2] AWS KMS 支援由 AWS CloudHSM 叢集提供技術支援的自訂金鑰存放區。
[3] 如需與 AWS KMS 整合且位於由 Sinnet 營運的 AWS 中國 (北京) 區域和由 NWCD 營運的 AWS 中國 (寧夏) 區域的服務清單,請瀏覽在中國的 AWS KMS 服務整合。
上面未列出的 AWS 服務將使用個別服務擁有和管理的金鑰加密客戶資料。
稽核監控
如果您為 AWS 帳戶啟用了 AWS CloudTrail,則您對 AWS KMS 發出的每個請求都會記錄在日誌檔中。此日誌檔會傳送至您在啟用 AWS CloudTrail 時指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。記錄的資訊包括使用者、時間、日期、API 動作和使用的金鑰 (如果相關) 等詳細資訊。
可擴展性、耐久性及高可用性
AWS KMS 是一項全代管服務。隨著您對加密功能的使用量增加,這項服務會自動擴展以符合您的需求。它可協助您在帳戶中管理數萬個 KMS 金鑰並隨需使用。雖然針對金鑰數量和要求率設有預設限制,但您可以視情況需要,要求提高這個限制值。
您建立的 KMS 金鑰,或由其他 AWS 服務為您建立的 KMS 金鑰,都不能從提供的位置匯出。所以,AWS KMS 會負責確保這些金鑰經久耐用。為確認您的金鑰和資料高度可用,AWS KMS 會在系統中儲存多個金鑰的加密版本複本,此設計可提供 99.999999999% 的耐久性。
對於跨區域移動的加密資料或數位簽章工作流程 (災難復原、多區域高可用性架構、DynamoDB 全域資料表和全球分散式一致數位簽章),您可以建立 KMS 多區域金鑰。KMS 多區域金鑰是一組可互操作的金鑰,具有可複寫到多個區域的相同金鑰材料和金鑰 ID。
AWS KMS 設計為與地區 API 端點搭配的高度可用服務。由於大多數 AWS 服務都依賴其進行加密和解密,因此 AWS KMS 的架構旨在提供一定程度的可用性。此可用性支援 AWS 的其餘部分,並以 AWS KMS 服務水準協議為後盾。
安全
AWS KMS 的設計可確保沒有任何人 (包含 AWS 員工) 可從服務擷取您的純文字金鑰。這項服務採用已通過 FIPS 140-2 驗證或正在驗證中的硬體安全模組 (HSM),來保護金鑰的機密性和完整性。純文字金鑰永遠不會寫入磁碟,只要在需要執行請求的加密操作時才會在 HSM 的揮發性記憶體中使用。無論是請求 AWS KMS 代您建立金鑰、將金鑰匯入服務,還是使用自訂金鑰存放功能在 AWS CloudHSM 叢集中建立金鑰,都是如此。AWS KMS 服務建立的金鑰絕不會傳輸至其建立時所在的 AWS 區域之外。這些金鑰只能在建立的區域中使用。AWS KMS HSM 韌體的更新會由多方存取控制進行控管,該存取控制是由 Amazon 內部獨立的小組,以及符合 FIPS 140-2 標準的 NIST 認證實驗室進行稽核和審查。
若要進一步了解 AWS KMS 的架構方式及其保護金鑰所用的加密技術,請閱讀 AWS KMS 加密詳細資訊白皮書。
* 在由 Beijing Sinnet Technology Co., Ltd. ("Sinnet") Sinnet營運的 AWS 中國 (北京) 區域和由 Ningxia Western Cloud Data Technology Co., Ltd. ("NWCD") NWCD 營運的 AWS 中國 (寧夏) 區域,硬體安全模組是經由中國政府核准 (非 FIPS 140-2 驗證),而上述的加密詳細資訊白皮書不適用。
非對稱金鑰
AWS KMS 可協助您建立及使用非對稱 KMS 金鑰和資料金鑰對。您可指定 KMS 金鑰用做簽署金鑰對或加密金鑰對。使用 KMS 金鑰進行金鑰對產生和非對稱加密操作,會在 HSM 內部執行。您可以請求將非對稱 KMS 金鑰的公開部分用於您的本機應用程式中,而私有部分永遠不離開這項服務。
您也可以請求這項服務產生非對稱資料金鑰對。此操作會傳回公開金鑰和私有金鑰的純文字複本,以及以指定非對稱 KMS 金鑰加密的私有金鑰複本。您可以在本機應用程式中使用純文字的公開或私有金鑰,並存放私有金鑰的加密複本供日後使用。
* 不支援將非對稱金鑰與自訂金鑰存放區搭配使用。
HMAC
您可以從 AWS KMS 的 FIPS 140-2 經驗證硬體安全模組 (HSM) 內產生並驗證雜湊訊息驗證碼 (HMAC)。HMAC 是一個密碼編譯建置區塊,它將私密金鑰材料合併在雜湊函數中,以建立唯一的加密訊息身分驗證碼。HMAC KMS 金鑰比來自應用程式軟體的 HMAC 具有優勢,因為金鑰材料完全在 AWS KMS 內產生和使用。它們還受您在金鑰上設定的存取控制影響。AWS KMS 使用的 HMAC KMS 金鑰和 HMAC 演算法符合 RFC 2104 中定義的產業標準。HMAC KMS 金鑰產生於經 FIPS 140-2 密碼編譯模組驗證程式認證的 AWS KMS 硬體安全模組中,而且從未使 AWS KMS 處於未加密狀態。
*AWS KMS HMAC 金鑰在自訂金鑰存放區中不受支援。
** FIPS 140-2 不適用於由 Sinnet 營運的 AWS 中國 (北京) 區域和由 NWCD 營運的 AWS 中國 (寧夏) 區域中的 AWS KMS。中國區域的硬體安全模組由中國政府核准後使用。
合規
AWS KMS 中的安全和品質控制已通過下列合規管轄範圍的驗證和認證:
- AWS 服務組織控制 (SOC 1、SOC 2 及 SOC 3) 報告。您可以在 AWS Artifact 下載該報告的副本。
- PCI DSS 第 1 級。在 PCI DSS 常見問答集中進一步了解有關 AWS 中 PCI DSS 合規服務的資訊。
- FIPS 140-2。AWS KMS 加密模組整體已通過 FIPS 140-2 第 2 級驗證或正在進行驗證,多個其他類別則通過第 3 級驗證,包含實體安全。如需詳細資訊,請檢閱 AWS KMS HSM 的 FIPS 140-2 憑證,以及相關的安全政策。
- FedRAMP。在 FedRAMP 合規進一步了解有關 AWS FedRAMP 合規的資訊。
- HIPAA。進一步了解 HIPAA 合規網頁。
自訂金鑰存放區
自訂金鑰存放區將 AWS KMS 便捷且全面的金鑰管理介面,與擁有和控制發生金鑰材料和加密操作的裝置功能相結合。因此,對於加密金鑰的可用性和持久性以及 HSM 的操作,您需要承擔更多責任。AWS KMS 提供兩種類型的自訂金鑰存放區:
CloudHSM 備份金鑰存放區
您可以在 AWS CloudHSM 自訂金鑰存放區中建立 KMS 金鑰,所有金鑰都在其中產生並存放在您擁有和管理的 AWS CloudHSM 叢集中。當您使用自訂金鑰存放區中的 KMS 金鑰時,只會在 AWS CloudHSM 叢集對該金鑰執行加密作業。
使用金鑰存放區,需另外支付 AWS CloudHSM 叢集的費用,該叢集中的金鑰材料是否可用,一概由您負責。如需自訂金鑰存放區是否適合您需求的指引,可以參考這個部落格。
外部金鑰存放區
如果您有監管需要在內部部署或 AWS 雲端之外存放和使用您的加密金鑰,可以在 AWS KMS 外部金鑰存放區 (XKS) 中建立 KMS 金鑰,所有金鑰都在其中產生並存放在您擁有和管理的 AWS 外部的外部金鑰管理器中。使用 XKS 時,您的金鑰材料絕不會離開您的 HSM。
與標準 KMS 金鑰或 CloudHSM 自訂金鑰存放區中的金鑰不同,您負責金鑰材料的持久性、可用性、延遲、效能和安全性,以及使用外部金鑰存放區時外部金鑰的加密操作。KMS 操作的效能和可用性可能會受您使用的 XKS 基礎設施的硬體、軟體或網路元件的影響。若要進一步了解有關 XKS 的資訊,您可以閱讀這篇 AWS 新聞部落格。
*由 Sinnet 營運的 AWS 中國 (北京) 區域和由 NWCD 營運的 AWS 中國 (寧夏) 區域無法使用自訂金鑰存放區。
**自訂金鑰存放區不適用於非對稱 KMS 金鑰。
*** CodeArtifact 不支援 XKS 中的 KMS 金鑰。