AWS Key Management Service 功能

概觀

AWS Key Management Service (KMS) 可讓您控管用來保護資料的加密金鑰。AWS KMS 為您提供金鑰生命週期和許可的集中化控制。您隨時可以建立新的主金鑰,並控制誰可以管理金鑰,以及誰可以使用金鑰。這項服務整合了其他 AWS 服務,讓您可以更輕鬆地加密存放在這些服務中的資料,並控制解密金鑰的存取權。AWS KMS 還可與 AWS CloudTrail 整合,這可協助您稽核誰使用哪些金鑰、用於哪些資源以及使用的時間。AWS KMS 可協助開發人員透過直接或使用 AWS SDK 的方式,更輕鬆地為其應用程式的程式碼新增加密或數位簽章功能。對於必須在本機加密/解密應用程式資料的開發人員來說,AWS Encryption SDK 支援 AWS KMS 做為金鑰提供者。

Page Topics

主要特色

主要特色

如果您為 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 員工) 可從服務擷取您的純文字金鑰。該服務使用硬體安全模組 (HSM),這些模組依據美國國家標準技術研究所 (NIST) 聯邦資訊處理標準 (FIPS) 140-2 加密模組驗證計劃不斷進行驗證,以保護您金鑰的機密性和完整性。AWS KMS HSM 是用來保護 KMS 金鑰的加密信任根。這些信任根會為 KMS 中發生的所有加密操作建立安全的硬體保護界限。在 AWS KMS HSM 中所產生 KMS 金鑰的所有金鑰材料,以及所有需要解密 KMS 金鑰材料的操作,都嚴格在這些 HSM 的 FIPS 140-2 安全層級 3 界限內進行。AWS KMS HSM 韌體的更新會由多方存取控制所控管,該存取控制由 Amazon 內的獨立群組稽核和檢閱;依據 FIPS 140 要求,KMS HSM 的所有韌體變更都會提交至 NIST 認證實驗室,驗證其是否符合 FIPS 140-2 安全層級 3。

純文字金鑰永遠不會寫入磁碟,只要在需要執行請求的加密操作時才會在 HSM 的揮發性記憶體中使用。無論是請求 AWS KMS 代您建立金鑰、將金鑰匯入服務,還是使用自訂金鑰存放功能在 AWS CloudHSM 叢集中建立金鑰,都是如此。您可以選擇是建立單一區域金鑰還是多區域金鑰。單一區域金鑰絕不會傳輸到建立金鑰所在的 AWS 區域之外,並且只能在建立金鑰的區域中使用。
 

若要進一步了解 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 金鑰加密的私有金鑰複本。您可以在本機應用程式中使用純文字的公開或私有金鑰,並存放私有金鑰的加密複本供日後使用。

* 不支援將非對稱金鑰與自訂金鑰存放區搭配使用。

您可以從 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 處於未加密狀態。您還可以從自己的金鑰管理基礎設施匯入自己的 HMAC 金鑰。

*AWS KMS HMAC 金鑰在自訂金鑰存放區中不受支援。
* FIPS 140-2 不適用於由 Sinnet 營運的 AWS 中國 (北京) 區域和由 NWCD 營運的 AWS 中國 (寧夏) 區域中的 AWS KMS。中國區域的硬體安全模組由中國政府核准後使用。

AWS KMS 中的安全和品質控制已通過下列合規管轄範圍的驗證和認證:

  • AWS 系統和組織控制 (SOC) 報告 (SOC 1、SOC 2 和 SOC 3)。您可以在 AWS Artifact 下載該報告的副本。
  • Cloud Computing Compliance Controls Catalog (C5)。進一步了解德國政府支援的鑑定機制 C5
  • 支付卡產業資料安全標準 (PCI DSS) 層級 1。在 PCI DSS 常見問答集中進一步了解有關 AWS 中 PCI DSS 合規服務的資訊。
  • 美國聯邦資訊處理標準 (FIPS) 140-2。 AWS KMS 加密模組在 FIPS 140-2 安全層級 3 上由美國國家標準技術研究所 (NIST) 進行驗證。如需詳細資訊,請檢閱 AWS KMS HSM 的 FIPS 140-2 憑證,以及相關的安全政策
  • 聯邦政府風險與授權管理計畫 (FedRAMP)。在 FedRAMP 合規進一步了解有關 AWS FedRAMP 合規的資訊。
  • 美國健康保險流通與責任法案 (HIPAA)。在 HIPAA 合規網頁上進一步了解。

AWS KMS 根據這裡列出的其他合規制度進行驗證和認證。

* FIPS 140-2 不適用於由 Sinnet 營運的 AWS 中國 (北京) 區域和由 NWCD 營運的 AWS 中國 (寧夏) 區域中的 AWS KMS。中國區域的硬體安全模組由中國政府核准後使用。

自訂金鑰存放區將 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 金鑰。

您可以將 AWS KMS 與用戶端加密程式庫搭配使用,直接在 AWS 上的應用程式中或在混合雲端和多雲端環境中保護資料。您可以先使用這些程式庫加密資料,然後再將資料儲存至 AWS 服務或任何其他儲存介質和您想要的第三方服務。這些程式庫旨在協助您使用產業標準和最佳實務加密和解密資料。加密程式庫能讓您專注於應用程序的核心功能,而不是如何加密和解密資料。

  • AWS Encryption SDK 是一般用途加密程式庫,可用於對所有資料類型實作加密和解密操作。
  • AWS 資料庫加密 SDK 是一種加密程式庫,可協助您保護儲存在資料庫中的敏感資料,並提供有關搜尋和查詢加密資料的額外功能。
  • Amazon S3 Encryption Client 是一種加密程式庫,用於加密和解密儲存在 S3 儲存貯體中的物件。

若要進一步了解,請瀏覽 AWS Crypto Tools 文件

AWS 服務整合

AWS KMS 與 AWS 服務整合以加密靜態資料,或使用 AWS KMS key 協助簽名和驗證。為了保護靜態資料,整合的 AWS 服務使用封套加密,其中資料金鑰用於加密資料,且其本身透過存放在 AWS KMS 中的 KMS 金鑰進行加密。為了進行簽名和驗證,整合的 AWS 服務使用 AWS KMS 中的非對稱 RSA 或 ECC KMS 金鑰。如需有關整合的服務如何使用 AWS KMS 的更多詳細資訊,請參閱您的 AWS 服務相關文件

企業版 Alexa[1] Amazon FSx Amazon Rekognition AWS CodePipeline
Amazon AppFlow Amazon GuardDuty Amazon Relational Database Service (RDS) AWS Control Tower
Amazon Athena Amazon HealthLake Amazon Route 53 AWS Data Exchange
Amazon Aurora Amazon Inspector Amazon Simple Storage Service (Amazon S3)[3] AWS Database Migration Service
Amazon Chime SDK Amazon Kendra Amazon SageMaker AWS DeepRacer
Amazon CloudWatch Logs Amazon Keyspaces (適用於 Apache Cassandra) Amazon Simple Email Service (SES)
AWS Elastic Disaster Recovery
Amazon CloudWatch Synthetics Amazon Kinesis Data Streams Amazon Simple Notification Service (SNS) AWS Elemental MediaTailor
Amazon CodeGuru Amazon Kinesis Firehose Amazon Simple Queue Service (SQS) AWS Entity Resolution
Amazon CodeWhisperer Amazon Kinesis Video Streams Amazon Textract AWS GameLift
Amazon Comprehend Amazon Lex Amazon Timestream AWS Glue
Amazon Connect Amazon Lightsail[1] Amazon Transcribe AWS Glue DataBrew
Amazon Connect Customer Profiles Amazon Location Service Amazon Translate AWS Ground Station
Amazon Connect Voice ID Amazon Lookout for Equipment Amazon WorkMail AWS IoT SiteWise
Amazon Connect Wisdom Amazon Lookout for Metrics Amazon WorkSpaces AWS Lambda
Amazon DocumentDB Amazon Lookout for Vision Amazon WorkSpaces 精簡型客戶端 AWS License Manager
Amazon DynamoDB Amazon Macie Amazon WorkSpaces Web AWS Mainframe Moderization
Amazon DynamoDB Accelerator (DAX)[1]
Amazon Managed Blockchain AWS AppConfig AWS Network Firewall
Amazon EBS Amazon Managed Service for
Prometheus
AWS AppFabric AWS Proton
Amazon EC2 Image Builder Amazon Managed Streaming for Kafka (MSK) AWS Application Cost Profiler AWS Secrets Manager
Amazon EFS Amazon Managed Workflows for Apache Airflow(MWAA) AWS Application Migration Service AWS Snowball 
Amazon Elastic Container Registry (ECR) Amazon MemoryDB AWS App Runner AWS Snowball Edge
Amazon Elastic Kubernetes Service (EKS) Amazon Monitron AWS Audit Manager AWS Snowcone
Amazon Elastic Transcoder Amazon MQ AWS Backup AWS Storage Gateway
Amazon ElastiCache Amazon Neptune AWS Certificate Manager[1] AWS Systems Manager
Amazon EMR Amazon Nimble Studio AWS Cloud9[1] AWS Supply Chain
Amazon EMR Serverless Amazon OpenSearch AWS CloudHSM[2] AWS Verified Access
Amazon EventBridge 排程器 Amazon Omics AWS CloudTrail AWS X-Ray
Amazon FinSpace Amazon Personalize AWS CodeArtifact  
Amazon Forecast Amazon QLDB AWS CodeBuild  
Amazon Fraud Detector Amazon Redshift AWS CodeCommit[1]  

[1] 僅支援 AWS 受管金鑰。

[2] AWS KMS 支援由 AWS CloudHSM 叢集提供技術支援的自訂金鑰存放區。

[3] S3 Express One Zone 並未與 AWS KMS 整合,但支援使用 Amazon S3 受管理金鑰 (SSE-S3) 進行伺服器端加密。若要進一步了解 S3 Express One Zone 物件加密,請造訪 S3 Express One Zone 資料保護與加密

[4] 如需與 AWS KMS 整合且位於由 Sinnet 營運的 AWS 中國 (北京) 區域和由 NWCD 營運的 AWS 中國 (寧夏) 區域的服務清單,請瀏覽在中國的 AWS KMS 服務整合

上面未列出的 AWS 服務將使用個別服務擁有和管理的金鑰加密客戶資料。