

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

# AWS 付款密碼編譯的安全性
<a name="security"></a>

的雲端安全性 AWS 是最高優先順序。身為 AWS 客戶，您可以受益於資料中心和網路架構，這些架構專為滿足最安全敏感組織的需求而建置。

安全性是 AWS 與您之間的共同責任。[共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)將其描述為雲端的安全性和雲端中的安全性：
+ **雲端的安全性** -AWS 負責保護在 AWS Cloud 中執行 AWS 服務的基礎設施。 AWS 也為您提供可安全使用的服務。在[AWS 合規計劃](https://aws.amazon.com/compliance/programs/)中，第三方稽核人員會定期測試和驗證我們安全的有效性。若要了解適用於 AWS 付款密碼編譯的合規計劃，請參閱[合規計劃的 AWS 服務範圍](https://aws.amazon.com/compliance/services-in-scope/)。
+ **雲端的安全性** - 您的責任取決於您使用 AWS 的服務。您也必須對其他因素負責，包括資料的機密性、您公司的要求和適用法律和法規。

本主題可協助您了解如何在使用 AWS 付款密碼編譯時套用共同責任模型。其中說明如何設定 AWS 付款密碼編譯以符合您的安全與合規目標。您也會了解如何使用其他 AWS 服務來協助您監控和保護 AWS 付款密碼編譯資源。

**Topics**
+ [資料保護](data-protection.md)
+ [恢復能力](resilience.md)
+ [基礎設施安全性](infrastructure-security.md)
+ [使用 Amazon VPC 和 AWS PrivateLink](vpc-endpoint.md)
+ [混合式後量子 TLS](pqtls.md)
+ [安全最佳實務](security-best-practices.md)

# AWS 付款密碼編譯中的資料保護
<a name="data-protection"></a>

 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於 AWS 付款密碼編譯中的資料保護。如此模型所述， AWS 負責保護執行所有 的全域基礎設施 AWS 雲端。您負責維護在此基礎設施上託管內容的控制權。您也同時負責所使用 AWS 服務 的安全組態和管理任務。如需資料隱私權的詳細資訊，請參閱[資料隱私權常見問答集](https://aws.amazon.com/compliance/data-privacy-faq/)。如需有關歐洲資料保護的相關資訊，請參閱*AWS 安全性部落格*上的[AWS 共同責任模型和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 部落格文章。

基於資料保護目的，我們建議您保護 AWS 帳戶 登入資料，並使用 AWS IAM Identity Center 或 AWS Identity and Access Management (IAM) 設定個別使用者。如此一來，每個使用者都只會獲得授與完成其任務所必須的許可。我們也建議您採用下列方式保護資料：
+ 每個帳戶均要使用多重要素驗證 (MFA)。
+ 使用 SSL/TLS 與 AWS 資源通訊。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 使用 設定 API 和使用者活動記錄 AWS CloudTrail。如需有關使用 CloudTrail 追蹤擷取 AWS 活動的資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[使用 CloudTrail 追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+ 使用 AWS 加密解決方案，以及其中的所有預設安全控制 AWS 服務。
+ 使用進階的受管安全服務 (例如 Amazon Macie)，協助探索和保護儲存在 Amazon S3 的敏感資料。
+ 如果您在 AWS 透過命令列界面或 API 存取 時需要 FIPS 140-3 驗證的密碼編譯模組，請使用 FIPS 端點。如需有關 FIPS 和 FIPS 端點的更多相關資訊，請參閱[聯邦資訊處理標準 (FIPS) 140-3](https://aws.amazon.com/compliance/fips/)。

我們強烈建議您絕對不要將客戶的電子郵件地址等機密或敏感資訊，放在標籤或自由格式的文字欄位中，例如**名稱**欄位。這包括當您使用 AWS 付款密碼或其他 主控台 AWS CLI、API 或 AWS 服務 AWS SDKs 時。您在標籤或自由格式文字欄位中輸入的任何資料都可能用於計費或診斷日誌。如果您提供外部伺服器的 URL，我們強烈建議請勿在驗證您對該伺服器請求的 URL 中包含憑證資訊。



AWS Payment Cryptography 會存放和保護您的付款加密金鑰，使其高度可用，同時為您提供強大且靈活的存取控制。

**Topics**
+ [保護金鑰資料](#key-protection)
+ [資料加密](#data-encryption)
+ [靜態加密](#encryption-rest)
+ [傳輸中加密](#encryption-transit)
+ [網際網路流量隱私權](#internetwork)

## 保護金鑰資料
<a name="key-protection"></a>

根據預設，AWS Payment Cryptography 會保護由 服務管理之付款金鑰的密碼編譯金鑰資料。此外，AWS Payment Cryptography 提供匯入在服務外部建立之金鑰資料的選項。如需付款金鑰和金鑰材料的技術詳細資訊，請參閱 AWS 付款密碼編譯詳細資訊。

## 資料加密
<a name="data-encryption"></a>

AWS Payment Cryptography 中的資料包含 AWS Payment Cryptography 金鑰、其代表的加密金鑰材料，以及其用量屬性。金鑰材料僅以純文字存在於 AWS Payment Cryptography 硬體安全模組 (HSMs) 內，且僅在使用中時存在。否則，金鑰材料和屬性會加密並存放在持久性持久性儲存中。

AWS Payment Cryptography 為付款金鑰產生或載入的金鑰材料絕不會讓 AWS Payment Cryptography HSMs 的界限處於未加密狀態。它可以透過 AWS Payment Cryptography API 操作來匯出加密。

## 靜態加密
<a name="encryption-rest"></a>

AWS Payment Cryptography 會為 PCI PTS HSM 列出的 HSMs 中的付款金鑰產生金鑰材料。不使用時，金鑰資料會由 HSM 金鑰加密，並寫入耐久的持久性儲存裝置。付款密碼編譯金鑰的金鑰材料和保護金鑰材料的加密金鑰絕不會以純文字形式保留 HSMs。

付款密碼編譯金鑰的金鑰材料加密和管理完全由 服務處理。

如需詳細資訊，請參閱 AWS Key Management Service 密碼編譯詳細資訊。

## 傳輸中加密
<a name="encryption-transit"></a>

 AWS 付款密碼編譯為付款金鑰產生或載入的金鑰材料絕不會在 AWS 付款密碼編譯 API 操作中以純文字匯出或傳輸。 AWS 付款密碼編譯會使用金鑰識別符來代表 API 操作中的金鑰。

不過，有些 API 操作會匯出先前共用或非對稱金鑰交換金鑰所加密的金鑰。此外，客戶可以使用 API 操作來匯入付款金鑰的加密金鑰材料。

所有 AWS 付款密碼編譯 API 呼叫都必須使用 Transport Layer Security (TLS) 簽署和傳輸。 AWS 付款密碼編譯需要 PCI 定義為「嚴格密碼編譯」的 TLS 版本和密碼套件。所有服務端點都支援 TLS 1.2—1.3 和混合式後量子 TLS。

如需詳細資訊，請參閱 AWS Key Management Service 密碼編譯詳細資訊。

## 網際網路流量隱私權
<a name="internetwork"></a>

AWS 付款密碼編譯支援 AWS 管理主控台和一組 API 操作，可讓您建立和管理付款金鑰，並在密碼編譯操作中使用它們。

AWS 付款密碼編譯支援從您的私有網路到 AWS 的兩個網路連線選項。
+ 透過網際網路的 IPSec VPN 連線。
+ AWS Direct Connect，透過標準乙太網路光纖纜線將您的內部網路連結至 AWS Direct Connect 位置。

所有付款密碼編譯 API 呼叫都必須使用 Transport Layer Security (TLS) 簽署和傳輸。這些呼叫還需要支援完整轉寄密碼的現代加密套件。只能透過 AWS 內部網路從已知的 AWS Payment Cryptography API 主機傳輸到存放付款金鑰之金鑰資料的硬體安全模組 (HSMs)。

若要從虛擬私有雲端 (VPC) 直接連線至 AWS Payment Cryptography，而不透過公有網際網路傳送流量，請使用採用 AWS PrivateLink 技術的 VPC 端點。如需詳細資訊，請參閱透過 VPC 端點連線至 AWS Payment Cryptography。

AWS Payment Cryptography 也支援 Transport Layer Security (TLS) 網路加密通訊協定的混合式後量子金鑰交換選項。當您連線到 AWS Payment Cryptography API 端點時，您可以將此選項與 TLS 搭配使用。

# AWS 付款密碼編譯中的彈性
<a name="resilience"></a>

AWS 全球基礎設施是以 AWS 區域和可用區域為基礎建置。區域提供多個分開且隔離的實際可用區域，並以低延遲、高輸送量和高度備援網路連線相互連結。透過可用區域，您可以設計與操作的應用程式和資料庫，在可用區域之間自動容錯移轉而不會發生中斷。可用區域的可用性、容錯能力和擴展能力，均較單一或多個資料中心的傳統基礎設施還高。

如需 AWS 區域和可用區域的詳細資訊，請參閱 [AWS 全球基礎設施](https://aws.amazon.com/about-aws/global-infrastructure/)。

## 區域隔離
<a name="region-isolation"></a>

AWS Payment Cryptography 是一項區域性服務，可在多個區域使用。

AWS Payment Cryptography 的區域隔離設計可確保一個 AWS 區域中的可用性問題不會影響任何其他區域中的 AWS Payment Cryptography 操作。AWS Payment Cryptography 旨在確保零計劃停機時間，所有軟體更新和擴展操作均無縫且無法理解地執行。

AWS Payment Cryptography Service Level Agreement (SLA) 包含所有 Payment Cryptography APIs 99.99% 的服務承諾。為了履行此承諾，AWS Payment Cryptography 可確保執行 API 請求所需的所有資料和授權資訊，都可用於接收請求的所有區域主機。

AWS Payment Cryptography 基礎設施會在每個區域中至少三個可用區域 (AZs中複寫。為了確保多個主機故障不會影響 AWS Payment Cryptography 效能，AWS Payment Cryptography 旨在服務來自區域中任何 AZs 的客戶流量。

您對付款金鑰屬性或許可所做的變更會複寫到 區域中的所有主機，以確保該區域中的任何主機都能正確處理後續請求。使用您的付款金鑰對密碼編譯操作的請求會轉送至 AWS Payment Cryptography 硬體安全模組 (HSMs) 機群，其中任何一個都可以使用付款金鑰執行操作。

## 多租用戶設計
<a name="multi-tenant"></a>

AWS Payment Cryptography 的多租戶設計可讓它滿足可用性 SLA，並維持高請求率，同時保護金鑰和資料的機密性。

部署多個完整性強制執行機制，以確保您為密碼編譯操作指定的付款金鑰始終是使用的付款金鑰。

付款密碼編譯金鑰的純文字金鑰材料受到廣泛保護。金鑰材料一旦建立就會在 HSM 中加密，而且加密的金鑰材料會立即移至安全儲存。系統會在 HSM 內擷取並解密已加密的金鑰，以便及時使用。純文字金鑰僅在完成密碼編譯操作所需的時間內保留在 HSM 記憶體中。純文字金鑰資料永遠不會離開 HSM；它永遠不會寫入持久性儲存。

如需 AWS Payment Cryptography 用來保護金鑰之機制的詳細資訊，請參閱 AWS Payment Cryptography Cryptography Details。

# 中的基礎設施安全性 AWS Payment Cryptography
<a name="infrastructure-security"></a>

作為受管服務， AWS Payment Cryptography 受到 [Amazon Web Services：安全程序概觀](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf)白皮書中所述的 AWS 全球網路安全程序的保護。

您可以使用 AWS 已發佈的 API 呼叫， AWS Payment Cryptography 透過網路存取 。用戶端必須支援 Transport Layer Security (TLS) 1.2 或更新版本。用戶端也必須支援具備完美轉送私密 (PFS) 的密碼套件，例如臨時 Diffie-Hellman (DHE) 或橢圓曲線臨時 Diffie-Hellman (ECDHE)。現代系統 (如 Java 7 和更新版本) 大多會支援這些模式。

此外，請求必須使用存取金鑰 ID 和與 IAM 主體相關聯的私密存取金鑰來簽署。或者，您可以使用 [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) 來產生暫時安全憑證來簽署請求。

## 實體主機的隔離
<a name="isolation"></a>

AWS Payment Cryptography 使用的實體基礎設施安全性受 Amazon Web Services：安全程序概觀之實體和環境安全一節中所述的控制。您可以在上一節所列的合規報告和第三方稽核問題清單中找到更多詳細資訊。

專用commercial-off-the-shelf PCI PTS HSM 列出的硬體安全模組 (HSMs) 支援 AWS Payment Cryptography。AWS Payment Cryptography 金鑰的金鑰材料只會存放在 HSMs 的揮發性記憶體中，而且只有在使用 Payment Cryptography 金鑰時。HSMs位於 Amazon 資料中心內的受存取控制機架中，可強制對任何實體存取進行雙重控制。如需 AWS Payment Cryptography HSMs 操作的詳細資訊，請參閱 AWS Payment Cryptography Cryptography Details。

# 透過 VPC 端點連線至 AWS 付款密碼編譯
<a name="vpc-endpoint"></a>

您可以透過虛擬私有雲端 (VPC) 中的私有介面端點直接連線至 AWS 付款密碼編譯。當您使用界面 VPC 端點時，VPC 與 AWS 付款密碼編譯之間的通訊會完全在 AWS 網路中執行。

AWS 付款密碼編譯支援採用 技術的 Amazon Virtual Private Cloud (Amazon VPC) 端點[AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/)。每個 VPC 端點皆會由一個或多個具私有 IP 地址[彈性網路界面](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) (ENI) 來表示，而該界面位於 VPC 子網路中。

介面 VPC 端點會將您的 VPC 直接連線至 AWS 付款密碼編譯，無需網際網路閘道、NAT 裝置、VPN 連接或 AWS Direct Connect 連線。VPC 中的執行個體不需要公有 IP 地址，即可與 AWS 付款密碼編譯通訊。<a name="vpc-regions"></a>

**大區 (Regions)**  
AWS 支援付款密碼的所有 中 AWS 區域 都支援 VPC 端點和 VPC [AWS](https://docs.aws.amazon.com/general/latest/gr/payment-cryptography.html)端點政策。

**Topics**
+ [AWS 付款密碼編譯 VPC 端點的考量事項](#vpce-considerations)
+ [建立用於 AWS 付款密碼編譯的 VPC 端點](#vpce-create-endpoint)
+ [連線至 AWS 付款密碼編譯 VPC 端點](#vpce-connect)
+ [控制對 VPC 端點的存取](#vpce-policy)
+ [在政策陳述式中使用 VPC 端點](#vpce-policy-condition)
+ [記錄您的 VPC 端點](#vpce-logging)

## AWS 付款密碼編譯 VPC 端點的考量事項
<a name="vpce-considerations"></a>

**注意**  
雖然 VPC 端點可讓您在 中連線至服務，只要一個可用區域 (AZ)，但我們建議您連線至三個可用區域，以實現高可用性和備援目的。

在您設定 AWS 付款密碼編譯的介面 VPC 端點之前，請檢閱 *AWS PrivateLink 指南*中的[介面端點屬性和限制](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations)主題。

AWS VPC 端點的付款密碼編譯支援包括下列項目。
+ 您可以使用 VPC 端點從 VPC 呼叫所有[AWS 付款密碼編譯控制平面操作](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_Operations.html)和[AWS 付款密碼編譯資料平面操作](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_Operations.html)。
+ 您可以建立連線至 AWS 付款密碼編譯區域端點的介面 VPC 端點。
+ AWS 付款密碼編譯由控制平面和資料平面組成。您可以選擇設定一個或兩個子服務， AWS PrivateLink 但每個子服務都會分別設定。
+ 您可以使用 AWS CloudTrail 日誌，透過 VPC 端點稽核您對 AWS 付款密碼編譯金鑰的使用。如需詳細資訊，請參閱[記錄您的 VPC 端點](#vpce-logging)。

## 建立用於 AWS 付款密碼編譯的 VPC 端點
<a name="vpce-create-endpoint"></a>

您可以使用 Amazon VPC 主控台或 Amazon VPC API，為 AWS 付款密碼編譯建立 VPC 端點。如需詳細資訊，請參閱《*AWS PrivateLink 指南*》中的「[建立介面端點](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#create-interface-endpoint)」。
+ 若要為 AWS 付款密碼編譯建立 VPC 端點，請使用下列服務名稱：

  ```
  com.amazonaws.region.payment-cryptography.controlplane
  ```

  ```
  com.amazonaws.region.payment-cryptography.dataplane
  ```

  例如，在美國西部 （奧勒岡） 區域 (`us-west-2`) 中，服務名稱為：

  ```
  com.amazonaws.us-west-2.payment-cryptography.controlplane
  ```

  ```
  com.amazonaws.us-west-2.payment-cryptography.dataplane
  ```

若要更輕鬆使用 VPC 端點，您可以為 VPC 端點啟用[私有 DNS 名稱](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html)。如果您選取**啟用 DNS 名稱**選項，標準 AWS 付款密碼編譯 DNS 主機名稱會解析為您的 VPC 端點。例如，`https://controlplane.payment-cryptography.us-west-2.amazonaws.com` 會解析為連接至服務名稱 `com.amazonaws.us-west-2.payment-cryptography.controlplane` 的 VPC 端點。

此選項可讓您更輕鬆使用 VPC 端點。根據預設， AWS SDKs 和 AWS CLI 會使用標準 AWS 付款密碼編譯 DNS 主機名稱，因此您不需要在應用程式和命令中指定 VPC 端點 URL。

如需詳細資訊，請參閱《AWS PrivateLink 指南》**中的[透過介面端點存取服務](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#access-service-though-endpoint)。

## 連線至 AWS 付款密碼編譯 VPC 端點
<a name="vpce-connect"></a>

您可以使用 AWS SDK、 AWS CLI 或 ，透過 VPC 端點連線至 AWS 付款密碼編譯 AWS Tools for PowerShell。若要指定 VPC 端點，請使用它的 DNS 名稱。

例如，此 [list-keys](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/list-keys.html) 命令會使用 `endpoint-url` 參數來指定 VPC 端點。若要使用如下的命令，請將範例 VPC 端點 ID 換成您帳戶中的 ID。

```
$ aws payment-cryptography list-keys --endpoint-url https://vpce-1234abcdf5678c90a-09p7654s-us-east-1a.ec2.us-east-1.vpce.amazonaws.com
```

如果您在建立 VPC 端點時啟用私有主機名稱，則不需要在 CLI 命令或應用程式組態中指定 VPC 端點 URL。標準 AWS 付款密碼編譯 DNS 主機名稱會解析為您的 VPC 端點。 AWS CLI 和 SDKs預設使用此主機名稱，因此您可以開始使用 VPC 端點連線到 AWS 付款密碼編譯區域端點，而無需變更指令碼和應用程式中的任何內容。

若要使用私有主機名稱，您 VPC 的 `enableDnsHostnames` 和 `enableDnsSupport` 屬性必須設為 `true`。如需設定這些屬性，請使用 [ModifyVpcAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcAttribute.html) 操作。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[檢視和更新 VPC 的 DNS 屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating)。

## 控制對 VPC 端點的存取
<a name="vpce-policy"></a>

若要控制 AWS 對付款密碼編譯之 VPC 端點的存取，請將 *VPC 端點政策*連接至您的 VPC 端點。端點政策會決定主體是否可以使用 VPC 端點來呼叫具有特定 AWS 付款密碼編譯資源的 AWS 付款密碼編譯操作。

您可以在建立端點時建立 VPC 端點政策，並且可以隨時變更 VPC 端點政策。使用 VPC 管理主控台，或 [CreateVpcEndpoint](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVpcEndpoint.html) 或 [ModifyVpcEndpoint](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html) 操作。您也可以[使用 AWS CloudFormation 範本](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html)建立和變更 VPC 端點政策。如需有關如何使用 VPC 管理主控台的說明，請參閱《AWS PrivateLink 指南》**中的[建立介面端點](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#create-interface-endpoint)和[修改介面端點](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#modify-interface-endpoint)。

如需撰寫及格式化 JSON 政策文件的說明，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)。

**Topics**
+ [關於 VPC 端點政策](#vpce-policy-about)
+ [預設 VPC 端點政策](#vpce-default-policy)
+ [建立 VPC 端點政策](#vpce-policy-create)
+ [檢視 VPC 端點政策](#vpce-policy-get)

### 關於 VPC 端點政策
<a name="vpce-policy-about"></a>

對於使用 VPC 端點成功的 AWS 付款密碼編譯請求，委託人需要兩個來源的許可：
+ [身分型政策](security_iam_id-based-policy-examples.md)必須授予委託人在 資源 (AWS 付款加密金鑰或別名） 上呼叫 操作的許可。
+ VPC 端點政策必須授予委託人許可，才能使用端點提出請求。

例如，金鑰政策可能會授予委託人在特定 AWS 付款密碼編譯金鑰上呼叫 [Decrypt](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html) 的許可。不過，VPC 端點政策可能不允許該主體使用端點`Decrypt`呼叫該 AWS 付款密碼編譯金鑰。

或者，VPC 端點政策可能允許委託人使用端點，在某些 AWS 付款密碼編譯金鑰上呼叫 [StopKeyUsage](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_StopKeyUsage.html)。但是，如果委託人沒有來自 IAM 政策的這些許可，請求會失敗。

### 預設 VPC 端點政策
<a name="vpce-default-policy"></a>

每個 VPC 端點都有 VPC 端點政策，但您不需要指定政策。如果您未指定政策，則預設端點政策會允許端點上所有資源的所有委託人進行所有操作。

不過，對於 AWS 付款密碼編譯資源，委託人也必須具有從 [IAM 政策](security_iam_id-based-policy-examples.md)呼叫 操作的許可。因此，實際上，預設政策指出，如果委託人具有對資源呼叫操作的許可，則其也可以使用端點來進行呼叫。

```
{
  "Statement": [
    {
      "Action": "*", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Resource": "*"
    }
  ]
}
```

 若要僅允許主體將 VPC 端點用於其允許操作的子集，請[建立或更新 VPC 端點政策](#vpce-policy-create)。

### 建立 VPC 端點政策
<a name="vpce-policy-create"></a>

VPC 端點政策決定委託人是否具有使用 VPC 端點對資源執行操作的許可。對於 AWS 付款密碼編譯資源，委託人還必須具有從 [IAM 政策](security_iam_id-based-policy-examples.md)執行操作的許可。

每個 VPC 端點政策陳述式都需要下列元素：
+ 可執行動作的委託人
+ 可執行的動作
+ 可在其中執行動作的資源

政策陳述式不會指定 VPC 端點。相反地，它適用於連接政策的任何 VPC 端點。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[使用 VPC 端點控制對服務的存取](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html)。

以下是 AWS 付款密碼編譯的 VPC 端點政策範例。連接到 VPC 端點時，此政策允許 `ExampleUser`使用 VPC 端點來呼叫指定 AWS 付款密碼編譯金鑰上的指定操作。使用這類政策之前，請將範例主體和[金鑰識別符](concepts.md#concepts.key-identifer)取代為您帳戶中的有效值。

```
{
   "Statement":[
      {
         "Sid": "AllowDecryptAndView",
         "Principal": {"AWS": "arn:aws:iam::111122223333:user/ExampleUser"},
         "Effect":"Allow",
         "Action": [ 
             "payment-cryptography:Decrypt",
             "payment-cryptography:GetKey",  
             "payment-cryptography:ListAliases", 
             "payment-cryptography:ListKeys",
             "payment-cryptography:GetAlias"
          ],
         "Resource": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h"
      }
   ]
}
```

AWS CloudTrail 會記錄使用 VPC 端點的所有操作。不過，您的 CloudTrail 日誌不包含其他帳戶中主體請求的操作，或其他帳戶中 AWS 付款密碼編譯金鑰的操作。

因此，您可能想要建立 VPC 端點政策，以防止外部帳戶中的主體使用 VPC 端點來呼叫本機帳戶中任何金鑰的任何 AWS 付款密碼編譯操作。

下列範例使用 [aws：PrincipalAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount) 全域條件金鑰，拒絕存取所有 AWS 付款密碼編譯金鑰上所有操作的所有主體，除非主體位於本機帳戶中。使用這類政策之前，請將範例帳戶 ID 取代為有效值。

```
{
  "Statement": [
    {
      "Sid": "AccessForASpecificAccount",
      "Principal": {"AWS": "*"},
      "Action": "payment-cryptography:*",
      "Effect": "Deny",
      "Resource": "arn:aws:payment-cryptography:*:111122223333:key/*",
      "Condition": {
        "StringNotEquals": {
          "aws:PrincipalAccount": "111122223333"
        }
      }
    }
  ]
}
```

### 檢視 VPC 端點政策
<a name="vpce-policy-get"></a>

若要檢視端點的 VPC 端點政策，請使用 [VPC 管理主控台](https://console.aws.amazon.com/vpc/)或 [DescribeVpcEndpoints](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcEndpoints.html) 操作。

下列 AWS CLI 命令會取得具有指定 VPC 端點 ID 的端點政策。

使用此命令之前，請將範例端點 ID 取代為您帳戶的有效 ID。

```
$ aws ec2 describe-vpc-endpoints \
--query 'VpcEndpoints[?VpcEndpointId==`vpce-1234abcdf5678c90a`].[PolicyDocument]'
--output text
```

## 在政策陳述式中使用 VPC 端點
<a name="vpce-policy-condition"></a>

當請求來自 VPC 或使用 VPC 端點時，您可以控制對 AWS 付款密碼編譯資源和操作的存取。若要這樣做，請使用其中一個 [IAM 政策](security_iam_id-based-policy-examples.md)
+ 使用 `aws:sourceVpce` 條件索引鍵，以根據 VPC 端點來授予或限制存取。
+ 使用 `aws:sourceVpc` 條件索引鍵，以根據託管私有端點的 VPC 來授予或限制存取。

**注意**  
當請求來自 [Amazon VPC 端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)時，`aws:sourceIP`條件金鑰無效。若要限制對 VPC 端點的請求，請使用 `aws:sourceVpce` 或 `aws:sourceVpc` 條件金鑰。如需詳細資訊，請參閱《AWS PrivateLink 指南》**中的[VPC 端點和 VPC 端點服務的身分與存取管理](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-iam.html) 

您可以使用這些全域條件金鑰來控制對 AWS Payment Cryptography 金鑰、別名和 [CreateKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html) 等操作的存取，這些操作不依賴於任何特定資源。

例如，以下範例金鑰政策允許使用者僅在請求使用指定的 VPC 端點時，使用 AWS 付款密碼編譯金鑰執行特定的密碼編譯操作，封鎖來自網際網路和 AWS PrivateLink 連線的存取 （如果設定）。當使用者向 AWS 付款密碼編譯提出請求時，請求中的 VPC 端點 ID 會與政策中的`aws:sourceVpce`條件索引鍵值進行比較。如果不相符，則會拒絕請求。

若要使用這類政策，請將預留位置 AWS 帳戶 ID 和 VPC 端點 IDs 取代為帳戶的有效值。

------
#### [ JSON ]

****  

```
{
    "Id": "example-key-1",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableIAMPolicies",
            "Effect": "Allow",
            "Principal": {
                "AWS": [ 
                    "arn:aws:iam::111122223333:root"
                ]
            },
            "Action": [
                "payment-cryptography:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "RestrictUsageToMyVPCEndpoint",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "payment-cryptography:EncryptData",
                "payment-cryptography:DecryptData"
            ],
            "Resource": "arn:aws:payment-cryptography:us-east-1:111122223333:key/*",
            "Condition": {
                "StringNotEquals": {
                    "aws:sourceVpce": "vpce-1234abcdf5678c90a"
                }
            }
        }

    ]
}
```

------

您也可以使用 `aws:sourceVpc`條件金鑰，根據 VPC 端點所在的 VPC 限制對 AWS 付款密碼編譯金鑰的存取。

下列範例金鑰政策允許管理 AWS 付款密碼編譯金鑰的命令，前提是這些金鑰來自 `vpc-12345678`。此外，它只允許使用 AWS 付款密碼編譯金鑰進行密碼編譯操作的命令來自 `vpc-2b2b2b2b`。如果應用程式在一個 VPC 中執行，但您使用第二個隔離的 VPC 來執行管理功能，您可能會使用如下的政策。

若要使用這類政策，請將預留位置 AWS 帳戶 ID 和 VPC 端點 IDs 取代為帳戶的有效值。

------
#### [ JSON ]

****  

```
{
    "Id": "example-key-2",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAdminActionsFromVPC12345678",
            "Effect": "Allow",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": [
               "payment-cryptography:Create*",
               "payment-cryptography:Encrypt*",
               "payment-cryptography:ImportKey*",
               "payment-cryptography:GetParametersForImport*",
               "payment-cryptography:TagResource",
               "payment-cryptography:UntagResource"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpc": "vpc-12345678"
                }
            }
        },
        {
            "Sid": "AllowKeyUsageFromVPC2b2b2b2b",
            "Effect": "Allow",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": [
                "payment-cryptography:Encrypt*",
                "payment-cryptography:Decrypt*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpc": "vpc-2b2b2b2b"
                }
            }
        },
        {
            "Sid": "AllowListReadActionsFromEverywhere",
            "Effect": "Allow",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": [
                "payment-cryptography:List*",
                "payment-cryptography:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 記錄您的 VPC 端點
<a name="vpce-logging"></a>

AWS CloudTrail 會記錄使用 VPC 端點的所有操作。當對 AWS 付款密碼編譯的請求使用 VPC 端點時，VPC 端點 ID 會出現在記錄請求的[AWS CloudTrail 日誌](monitoring-cloudtrail.md)項目中。您可以使用端點 ID 稽核 AWS 付款密碼編譯 VPC 端點的使用。

為了保護您的 VPC，[VPC 端點政策](#vpce-policy)拒絕的請求，但否則將允許，不會記錄在 中[AWS CloudTrail](monitoring-cloudtrail.md)。

例如，此範例日誌項目會記錄使用 VPC 端點的 [GenerateMac](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_GenerateMac.html) 請求。`vpcEndpointId` 欄位出現在日誌項目結尾。

```
{
      "eventVersion": "1.08",
      "userIdentity": {
          "principalId": "TESTXECZ5U9M4LGF2N6Y5:i-98761b8890c09a34a",
          "arn": "arn:aws:sts::111122223333:assumed-role/samplerole/i-98761b8890c09a34a",
          "accountId": "111122223333",
          "accessKeyId": "TESTXECZ5U2ZULLHHMJG",
          "sessionContext": {
              "sessionIssuer": {
                  "type": "Role",
                  "principalId": "TESTXECZ5U9M4LGF2N6Y5",
                  "arn": "arn:aws:iam::111122223333:role/samplerole",
                  "accountId": "111122223333",
                  "userName": "samplerole"
              },
              "webIdFederationData": {},
              "attributes": {
                  "creationDate": "2024-05-27T19:34:10Z",
                  "mfaAuthenticated": "false"
              },
              "ec2RoleDelivery": "2.0"
          }
      },
      "eventTime": "2024-05-27T19:49:54Z",
      "eventSource": "payment-cryptography.amazonaws.com",
      "eventName": "CreateKey",
      "awsRegion": "us-east-1",
      "sourceIPAddress": "172.31.85.253",
      "userAgent": "aws-cli/2.14.5 Python/3.9.16 Linux/6.1.79-99.167.amzn2023.x86_64 source/x86_64.amzn.2023 prompt/off command/payment-cryptography.create-key",
      "requestParameters": {
          "keyAttributes": {
              "keyUsage": "TR31_M1_ISO_9797_1_MAC_KEY",
              "keyClass": "SYMMETRIC_KEY",
              "keyAlgorithm": "TDES_2KEY",
              "keyModesOfUse": {
                  "encrypt": false,
                  "decrypt": false,
                  "wrap": false,
                  "unwrap": false,
                  "generate": true,
                  "sign": false,
                  "verify": true,
                  "deriveKey": false,
                  "noRestrictions": false
              }
          },
          "exportable": true
      },
      "responseElements": {
          "key": {
              "keyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h",
              "keyAttributes": {
                  "keyUsage": "TR31_M1_ISO_9797_1_MAC_KEY",
                  "keyClass": "SYMMETRIC_KEY",
                  "keyAlgorithm": "TDES_2KEY",
                  "keyModesOfUse": {
                      "encrypt": false,
                      "decrypt": false,
                      "wrap": false,
                      "unwrap": false,
                      "generate": true,
                      "sign": false,
                      "verify": true,
                      "deriveKey": false,
                      "noRestrictions": false
                  }
              },
              "keyCheckValue": "A486ED",
              "keyCheckValueAlgorithm": "ANSI_X9_24",
              "enabled": true,
              "exportable": true,
              "keyState": "CREATE_COMPLETE",
              "keyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
              "createTimestamp": "May 27, 2024, 7:49:54 PM",
              "usageStartTimestamp": "May 27, 2024, 7:49:54 PM"
          }
      },
      "requestID": "f3020b3c-4e86-47f5-808f-14c7a4a99161",
      "eventID": "b87c3d30-f3ab-4131-87e8-bc54cfef9d29",
      "readOnly": false,
      "eventType": "AwsApiCall",
      "managementEvent": true,
      "recipientAccountId": "111122223333",
      "vpcEndpointId": "vpce-1234abcdf5678c90a",
      "eventCategory": "Management",
      "tlsDetails": {
          "tlsVersion": "TLSv1.3",
          "cipherSuite": "TLS_AES_128_GCM_SHA256",
          "clientProvidedHostHeader": "vpce-1234abcdf5678c90a-oo28vrvr.controlplane.payment-cryptography.us-east-1.vpce.amazonaws.com"
      }
  }
```

# 使用混合式後量子 TLS
<a name="pqtls"></a>

AWS 付款密碼編譯和許多其他服務支援 Transport Layer Security (TLS) 網路加密通訊協定的混合式後量子金鑰交換選項。您可以在連線至 API 端點或使用 AWS SDKs時使用此 TLS 選項。這些選用的混合式後量子金鑰交換功能至少與現今使用的 TLS 加密功能同樣安全，且還能提供其他長期安全優勢。

您傳送至已啟用服務的資料受到 Transport Layer Security (TLS) 連線提供的加密保護。 AWS 付款密碼編譯支援以 RSA 和 ECC 為基礎的傳統密碼套件適用於 TLS 工作階段，對金鑰交換機制造成暴力破解攻擊，與目前技術不相容。不過，如果大規模或密碼編譯相關的量子電腦 (CRQC) 在未來變得實際，現有的 TLS 金鑰交換機制將容易受到這些攻擊的影響。對手現在可能會開始收集加密的資料，並希望他們可以在未來解密資料 （現在收集，稍後解密）。如果您開發的應用程式依賴於透過 TLS 連線傳遞之資料的長期機密性，您應該考慮在大規模量子電腦可供使用之前遷移至量子後密碼編譯的計劃。 AWS 正在為未來做好準備，我們也希望您做好充分準備。

![\[先前已記錄 TLS 工作階段的對手。多年後，當對手擁有 CRQC 時，對手可以先使用 CRQC 中斷傳統金鑰交換來復原工作階段金鑰。然後，對手可以使用探索到的工作階段金鑰解密資料。如果先前傳輸的資料仍然有價值，現在會遭到入侵。\]](http://docs.aws.amazon.com/zh_tw/payment-cryptography/latest/userguide/images/pqtls-risk2.png)


為了保護今天加密的資料免受潛在的未來攻擊， AWS 正在與密碼編譯社群參與開發量子抗性或*後量子*演算法。 AWS 已實作*混合*式後量子金鑰交換密碼套件，這些套件結合傳統元素和後量子元素，以確保您的 TLS 連線至少與傳統密碼套件一樣強大。

使用最新版本的 AWS SDKs時，這些混合密碼套件可用於您的生產工作負載。如需如何啟用/停用此行為的詳細資訊，請參閱 [啟用混合式後量子 TLS](pqtls-details.md)

![\[使用傳統金鑰協議和後量子金鑰協議保護的 TLS 工作階段。對手今天無法破壞金鑰協議的傳統部分。如果對手記錄資料，並嘗試在未來使用 CRQC 解密資料，則後量子金鑰協議會保護工作階段金鑰的安全。因此，現在傳輸的資料即使在將來也能安全防範探索。這就是為什麼混合式後量子 TLS 今天很重要。\]](http://docs.aws.amazon.com/zh_tw/payment-cryptography/latest/userguide/images/pqtls-mitigation.png)


## 關於 TLS 中的混合式後量子金鑰交換
<a name="PQTLS-concepts"></a>

 AWS 使用的演算法是一種*混合*式演算法，結合了 [Elliptic Curve Diffie-Hellman](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) (ECDH)，這是目前在 TLS 中使用的傳統金鑰交換演算法，與 [Module-Lattice-Based金鑰封裝機制 ](https://csrc.nist.gov/pubs/fips/203/final)(ML-KEM)、公有金鑰加密和金鑰建立演算法，美國國家標準技術研究所 (NIST) [已指定為第一個標準](https://csrc.nist.gov/pubs/fips/203/final)量子後金鑰協議演算法。此混合會獨立使用各演算法，以產生金鑰。然後以密碼編譯方式結合兩個金鑰。

## 進一步了解 PQC
<a name="pqtls-moreinfo"></a>

如需國家標準技術研究 (NIST) 的後量子加密法專案的資訊，請參閱[後量子加密法](https://csrc.nist.gov/Projects/Post-Quantum-Cryptography)。

如需有關 NIST 後量子密碼學標準化的資訊，請參閱[後量子密碼學標準化](https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cryptography-standardization)。

# 啟用混合式後量子 TLS
<a name="pqtls-details"></a>

AWS SDKs和工具具有不同語言和執行時間的密碼編譯功能和組態。AWS 開發套件或工具目前提供 PQ TLS 支援的三種方式：

**Topics**
+ [預設啟用 PQ TLS SDKs](#pq-tls-default)
+ [選擇加入 PQ TLS 支援](#pq-tls-opt-in)
+ [依賴 System OpenSSL SDKs](#pq-tls-open-ssl)
+ [AWS SDKs和工具不打算支援 PQ TLS](#pq-tls-nosupport)

## 預設啟用 PQ TLS SDKs
<a name="pq-tls-default"></a>

**注意**  
截至 6-Nov-2025 日，適用於 MacOS 和 Windows 的 AWS 開發套件及其基礎 CRT 程式庫使用 TLS 的系統程式庫，因此這些平台上的 PQ TLS 功能通常由系統層級支援決定。

### 適用於 Go 的 AWS SDK
<a name="pq-sdk-go"></a>

適用於 Go 的 AWS 開發套件使用 Golang 自有的 TLS 實作，由其標準程式庫提供。Golang 支援並偏好自 v1.24 起的 PQ TLS，因此適用於 Go 的 AWS 開發套件使用者只需將 Golang 升級到 v1.24 即可啟用 PQ TLS 

### 適用於 JavaScript 的 AWS 開發套件 （瀏覽器）
<a name="pq-sdk-javascript"></a>

適用於 JavaScript 的 AWS 開發套件 （瀏覽器） 使用瀏覽器的 TLS 堆疊，因此如果瀏覽器執行時間支援並偏好，開發套件會交涉 PQ TLS。Firefox 在 v132.0 中啟動了對 PQ TLS 的支援。Chrome 宣布支援 v131 中的 PQ TLS。Edge 在 v120 中支援桌上型電腦選擇加入 PQ TLS，在 Android 中支援 140。

### 適用於 Node.js 的 AWS 開發套件
<a name="pq-sdk-nodejs"></a>

從 Node.js v22.20 (LTS) 和 v24.9.0 開始，Node.js 靜態連結和綁定 OpenSSL 3.5。這表示 PQ TLS 預設會針對這些版本和後續版本啟用和偏好。

### 適用於 Kotlin 的 AWS 開發套件
<a name="pq-sdk-kotlin"></a>

Kotlin SDK 自 v1.5.78 起支援並偏好 Linux 上的 PQ TLS。由於適用於 Kotlin 的 CRT 型用戶端的 AWS 開發套件依賴 MacOS 和 Windows 上的 TLS 系統程式庫，因此 PQ TLS 的支援將取決於這些基礎系統程式庫。

### 適用於 Rust 的 AWS 開發套件
<a name="pq-sdk-rust"></a>

適用於 Rust 的 AWS 開發套件會為每個服務用戶端分配不同的套件 （在 Rust 生態系統中稱為「木箱」)。這些都是在合併的 GitHub 儲存庫中管理，但每個服務用戶端都遵循自己的版本和發行節奏。合併 SDK 在 8/29/25 發行的 PQ TLS 偏好設定，因此該日期之後發行的任何個別服務用戶端版本預設會支援並偏好 PQ TLS。

 您可以導覽至相關的 crates.io 版本 URL （例如， AWS Payment Cryptography 的 [在這裡](https://crates.io/crates/aws-sdk-paymentcryptography/versions))，並尋找 29-Aug-25 日之後發佈的第一個版本，以判斷支援特定服務用戶端 PQ TLS 的最低版本。根據預設，在 29-Aug-25都會啟用 PQ TLS 並優先使用。

## 選擇加入 PQ TLS 支援
<a name="pq-tls-opt-in"></a>

### 適用於 C\$1\$1 的 AWS SDK
<a name="pq-sdk-cplusplus"></a>

根據預設，C\$1\$1 開發套件會使用平台原生用戶端，例如 libcurl 和 WinHttp。Libcurl 通常依賴系統 OpenSSL for TLS，因此 PQ TLS 預設只有在系統 OpenSSL ≥ v3.5 時才啟用。您可以在 C\$1\$1 SDK v1.11.673 或更新版本中覆寫此預設值，並選擇加入支援並啟用預設 PQ TLS 的 AwsCrtHttpClient。

建立選擇加入 PQ TLS 的注意事項 您可以使用[此指令碼](https://github.com/aws/aws-sdk-cpp/blob/main/prefetch_crt_dependency.sh)擷取開發套件的 CRT 相依性。[此處](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/sdk-from-source.html)和[此處](https://github.com/aws/aws-sdk-cpp/tree/main?tab=readme-ov-file#building-from-source)說明從來源建置 SDK，但請注意，您可能需要一些額外的 CMake 旗標：

```
  
    -DUSE_CRT_HTTP_CLIENT=ON \
    -DUSE_TLS_V1_2=OFF \
    -DUSE_TLS_V1_3=ON \
    -DUSE_OPENSSL=OFF \
```

### 適用於 Java 的 AWS SDK
<a name="pq-sdk-java"></a>

 從 v2 開始，適用於 Java 的 AWS 開發套件提供可設定為執行 PQ TLS 的 AWS Common Runtime (AWS CRT) HTTP 用戶端。自 v2.35.11 起，AwsCrtHttpClient 預設會啟用並偏好 PQ TLS，無論在何處使用。

## 依賴 System OpenSSL SDKs
<a name="pq-tls-open-ssl"></a>

數個 AWS SDKs和工具取決於系統的 TLS 的 libcrypto/libssl 程式庫。最常用的系統程式庫是 OpenSSL。在 3.5 版中啟用 OpenSSL 的 PQ TLS 支援，因此設定 PQ TLS 的這些SDKs和工具最簡單的方式是在至少已安裝 OpenSSL 3.5 的作業系統分發上使用它。

您也可以將 Docker 容器設定為使用 OpenSSL 3.5，在支援 Docker 的任何系統上啟用 PQ TLS。如需為 Python 設定此範例，請參閱 Python 中的後量子 TLS。

### AWS CLI
<a name="pq-tls-cli"></a>

[AWS CLI 安裝程式](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)的 PQ TLS 支援即將推出。若要立即啟用，您可以使用 AWS CLI 的替代安裝程式，這會因作業系統而異，並且可以啟用 PQ TLS。

對於 MacOS，請透過 [Homebrew](https://brew.sh/) 安裝 AWS CLI，並確保 Homebrew 提供的 OpenSSL 已升級至 3.5\$1 版。您可以使用「brew install openssl@3.6」執行此操作，並使用「brew list \$1 grep openssl」進行驗證。

對於 Ubuntu 或 Debian Linux：確保您使用的 Linux 發行版本已安裝 OpenSSL 3.5\$1 做為系統 OpenSSL。然後，使用 apt 或 [PyPI](https://pypi.org/project/awscliv2/) 安裝 AWS CLI。使用這些先決條件時，由 apt 或 PyPI 提供的 AWS CLI 會設定為交涉 PQ-TLS。如需驗證安裝的step-by-step說明，請參閱 [github 儲存庫](https://github.com/aws-samples/sample-post-quantum-tls-python/)和隨附的[部落格文章](https://aws.amazon.com/blogs/security/post-quantum-tls-in-python/)。

### 適用於 PHP 的 AWS 開發套件
<a name="pq-tls-php"></a>

適用於 PHP 的 AWS 開發套件依賴系統 libssl/libcrypto。若要使用 PQ TLS，請在至少已安裝 OpenSSL 3.5 的作業系統分佈上使用此開發套件。

### 適用於 Python 的 AWS SDK (Boto3)
<a name="pq-tls-python"></a>

適用於 Python 的 AWS 開發套件 (Boto3) 依賴系統 libssl/libcrypto。若要使用 PQ TLS，請在至少已安裝 OpenSSL 3.5 的作業系統分佈上使用此開發套件。

### 適用於 Ruby 的 AWS SDK
<a name="pq-tls-ruby"></a>

適用於 Ruby 的 AWS 開發套件依賴系統 libssl/libcrypto。若要使用 PQ TLS，請在至少已安裝 OpenSSL 3.5 的作業系統分佈上使用此開發套件。

### 適用於 .NET 的 AWS SDK
<a name="pq-tls-dotnet"></a>

在 Linux 上，適用於 .NET 的 AWS 開發套件依賴系統 libssl/libcrypto。若要使用 PQ TLS，請在至少已安裝 OpenSSL 3.5 的作業系統分佈上使用此開發套件。在 Windows 和 MacOS 上，可從 [.NET 10 ](https://devblogs.microsoft.com/dotnet/post-quantum-cryptography-in-dotnet/)和 [Windows 11](https://techcommunity.microsoft.com/blog/microsoft-security-blog/post-quantum-cryptography-apis-now-generally-available-on-microsoft-platforms/4469093) 開始提供 PQ TLS。在 MacOS 上，可以透過選擇加入 Apple 的 Network.framework 來啟用 TLS 1.3 支援 (PQ TLS 的先決條件），如[此處](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/libraries#tls-13-for-macos-client)所述。假設最低 .NET 版本為 10，則應啟用 PQ TLS。

## AWS SDKs和工具不打算支援 PQ TLS
<a name="pq-tls-nosupport"></a>

目前沒有支援下列語言 SDKs和工具的計劃：
+ 適用於 SAP 的 AWS 開發套件
+ 適用於 Swift 的 AWS 開發套件
+ 適用於 Windows PowerShell 的 AWS 工具

# AWS 付款密碼編譯的安全最佳實務
<a name="security-best-practices"></a>

AWS 付款密碼編譯支援許多內建或您可以選擇性地實作的安全功能，以增強加密金鑰的保護，並確保它們用於其預期用途，包括 [IAM 政策](security_iam_service-with-iam.md)、一組廣泛的政策條件金鑰，以精簡金鑰政策和 IAM 政策，以及內建對金鑰區塊的 PCI PIN 規則強制執行。

**重要**  
提供的一般準則不代表完整的安全解決方案。由於並非所有的最佳實務都適用於所有情形，因此這些實務並非為規範性的。
+ **金鑰用量和使用模式**： AWS 付款密碼編譯遵循並強制執行金鑰用量和使用模式限制，如 ANSI X9 TR 31-2018 互通性安全金鑰交換金鑰區塊規格中所述，並與 PCI PIN 安全要求 18-3 一致。這會限制將單一金鑰用於多種用途，並以密碼方式將金鑰中繼資料 （例如允許的操作） 繫結至金鑰材料本身的能力。 AWS 付款加密會自動強制執行這些限制，例如金鑰加密金鑰 (TR31\$1K0\$1KEY\$1ENCRYPTION\$1KEY) 也無法用於資料解密。如需詳細資訊，請參閱[了解 AWS 付款密碼編譯金鑰的金鑰屬性](keys-validattributes.md)。
+ **限制共用對稱金鑰材料**：只與最多一個其他實體共用對稱金鑰材料 （例如 Pin 加密金鑰或金鑰加密金鑰）。如果需要將敏感資料傳輸到更多實體或合作夥伴，請建立其他金鑰。 AWS 付款密碼編譯永遠不會公開對稱金鑰材料或非對稱私有金鑰材料。
+ **使用別名或標籤將金鑰與特定使用案例或合作夥伴建立關聯**：別名可用來輕鬆表示與金鑰相關聯的使用案例，例如別名/BIN\$112345\$1CVK，以表示與 BIN 12345 相關聯的卡片驗證金鑰。若要提供更多彈性，請考慮建立標籤，例如 bin=12345、use\$1case=acquiing、country=us、partner=foo。別名和標籤也可以用於限制存取，例如在發行和取得使用案例之間強制執行存取控制。
+ **實行最低權限存取**：IAM 可用來限制系統而非個人的生產存取，例如禁止個別使用者建立金鑰或執行密碼編譯操作。IAM 也可以用來限制存取可能不適用於您的使用案例的命令和金鑰，例如限制為取得者產生或驗證接腳的能力。使用最低權限存取的另一種方法是限制對特定服務帳戶的敏感操作 （例如金鑰匯入）。如需範例，請參閱 [AWS 付款密碼編譯身分型政策範例](security_iam_id-based-policy-examples.md)。

**另請參閱**
+ [AWS 付款密碼編譯的身分和存取管理](security-iam.md)
+ 《*IAM 使用者指南*》中的 [IAM 安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。