

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Payment Cryptography のセキュリティ
<a name="security"></a>

のクラウドセキュリティが最優先事項 AWS です。お客様は AWS 、セキュリティを最も重視する組織の要件を満たすように構築されたデータセンターとネットワークアーキテクチャを活用できます。

セキュリティは、 AWS とお客様の間の責任共有です。[責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)ではこれをクラウドのセキュリティおよびクラウド内のセキュリティと説明しています。
+ **クラウドのセキュリティ**AWS — AWS クラウドで AWS サービスを実行するインフラストラクチャを保護する責任があります。 AWS また、 では、安全に使用できるサービスも提供しています。サードパーティーの監査者は、[AWS コンプライアンスプログラム](https://aws.amazon.com/compliance/programs/)コンプライアンスプログラムの一環として、当社のセキュリティの有効性を定期的にテストおよび検証。 AWS Payment Cryptography に適用されるコンプライアンスプログラムの詳細については、「コンプライアンスプログラム[による AWS 対象範囲内のサービスコンプライアンスプログラム](https://aws.amazon.com/compliance/services-in-scope/)」を参照してください。
+ **クラウド内のセキュリティ** — お客様の責任は、使用する AWS サービスによって決まります。また、ユーザーは、データの機密性、会社の要件、適用される法律や規制など、その他の要因についても責任を負います。

このトピックは、 AWS Payment Cryptography を使用する際に責任共有モデルを適用する方法を理解するのに役立ちます。セキュリティとコンプライアンスの目的を達成するように AWS Payment Cryptography を設定する方法を示します。また、 AWS Payment Cryptography リソースのモニタリングや保護に役立つ他の 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 Payment Cryptography でのデータ保護
<a name="data-protection"></a>

 AWS Payment Cryptography でのデータ保護には、 AWS [責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)が適用されます。このモデルで説明されているように、 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 アイデンティティセンター または 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 に保存されている機密データの検出と保護を支援します。
+ コマンドラインインターフェイスまたは API AWS を介して にアクセスするときに FIPS 140-3 検証済みの暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、「[連邦情報処理規格 (FIPS) 140-3](https://aws.amazon.com/compliance/fips/)」を参照してください。

お客様の E メールアドレスなどの極秘または機密情報を、タグ、または **[名前]** フィールドなどの自由形式のテキストフィールドに含めないことを強くお勧めします。これは、コンソール、API、または SDK を使用して AWS Payment Cryptography AWS CLIまたは他の 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 には、サービスの外部で作成されたキーマテリアルをインポートするオプションもあります。KMS キーとキーマテリアルの技術的な詳細については、「AWS Payment Cryptography 暗号化の詳細」を参照してください。

## データ暗号化
<a name="data-encryption"></a>

AWS Payment Cryptographyのデータは、AWS Payment Cryptography キー、それらが表す暗号化キーマテリアル、およびそれらの使用属性で構成されます。このキーマテリアルは、 AWS Payment Cryptography ハードウェアセキュリティモジュール (HSM) 内でのみ、使用中の場合にのみ、プレーンテキストで存在します。それ以外の場合、キー素材は暗号化され、属性は耐久性のある永続ストレージに保存されます。

AWS Payment Cryptography が支払いキー用に生成またはロードするキーマテリアルは、AWS Payment Cryptography HSM の境界を暗号化されずに残ることはありません。AWS Payment Cryptography API オペレーションによって暗号化されてエクスポートできます。

## 保管中の暗号化
<a name="encryption-rest"></a>

AWS Payment Cryptographyは、PCI PTS HSM に登録されている HSM 内の支払いキーのキーマテリアルを生成します。使用されていない場合、キーマテリアルは HSM キーによって暗号化され、耐久性のある永続的なストレージに書き込まれます。Payment Cryptography キーのキーマテリアルおよびキーマテリアルを保護する暗号化キーは、HSM をプレーンテキスト形式のままにしません。

Payment Cryptography キーのキーマテリアルの暗号化と管理は、サービスによって完全に処理されます。

詳細については、「AWS キーマネジメントサービス暗号化の詳細」を参照してください。

## 転送中の暗号化
<a name="encryption-transit"></a>

 AWS Payment Cryptography が生成またはロードする支払いキーのキーマテリアルは、 AWS Payment Cryptography API オペレーションでクリアテキストでエクスポートまたは送信されることはありません。 AWS Payment Cryptography は、キー識別子を使用して API オペレーションのキーを表します。

ただし、一部の API オペレーションでは、以前に共有されたキーまたは非対称キー交換キーによって暗号化されたキーをエクスポートします。お客様は API オペレーションを使用して、選択したキーのキーマテリアルをインポートすることもできます。

 AWS Payment Cryptography API コールはすべて署名し、Transport Layer Security (TLS) を使用して送信する必要があります。 AWS Payment Cryptography には、PCI で「強力な暗号化」として定義された TLS バージョンと暗号スイートが必要です。すべてのサービスエンドポイントは、TLS 1.2～1.3 およびハイブリッドポスト量子 TLS をサポートしています。

詳細については、「AWS キーマネジメントサービス暗号化の詳細」を参照してください。

## ネットワーク間のトラフィックのプライバシー
<a name="internetwork"></a>

AWS Payment Cryptography は、AWS マネジメントコンソールと一連の API オペレーションをサポートしています。これにより、支払いキーを作成および管理し、暗号化オペレーションで使用できます。

AWS Payment Cryptography は、プライベートネットワークから AWS への 2 つのネットワーク接続オプションをサポートしています。
+ インターネット経由の IPsec VPN 接続
+ AWS Direct Connect, ：標準イーサネット光ファイバケーブルを介して、内部ネットワークを AWS Direct Connect ロケーションにリンクします。

API 呼び出しすべて、署名し、Transport Layer Security (TLS) を使用して送信する必要があります。呼び出しには、 完全な転送秘密をサポートする最新の暗号スイートも必要です。キーのキーマテリアルを保存するハードウェアセキュリティモジュール (HSM) へのトラフィックは、 の内部ネットワーク経由で既知の API ホストからのみ許可されます。

パブリックインターネット経由でトラフィックを送信せずに仮想プライベートクラウド (VPC) から AWS Payment Cryptography に直接接続するには、AWS PrivateLink を搭載した VPC エンドポイントを使用します。詳細については、「VPC エンドポイントを介した AWS Payment Cryptographyへの接続」をご参照ください。

AWS Payment Cryptography は、Transport Layer Security (TLS)ネットワーク暗号化プロトコル用の ハイブリッドポスト量子キー交換オプションもサポートしています。このオプションは、 AWS Payment Cryptography API エンドポイントへの接続時に TLS で使用できます。

# AWS Payment Cryptography の耐障害性
<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 サービスレベルアグリーメント (SLA) には、すべての Payment Cryptography API に対して 99.99% のサービスコミットメントが含まれています。このコミットメントを実現するために、AWS Payment Cryptography は API リクエストの実行に必要なすべてのデータと認可情報が、リクエストを受信するすべてのリージョンのホストで利用可能であることを確認します。

AWS Payment Cryptography インフラストラクチャは、各リージョンの 3 つ以上のアベイラビリティーゾーン (AZ) にレプリケートされます。複数のホスト障害による のパフォーマンスへの影響を受けないように、リージョンのどの AZ からの顧客トラフィックでも処理するように、AWS Payment Cryptography は設計されています。

決済キーのプロパティまたは許可に加えた変更は、リージョン内のすべてのホストにレプリケートされ、後続のリクエストがリージョン内の任意のホストで正しく処理されるようにします。決済キーを使用した暗号化オペレーションのリクエストは、 ハードウェアセキュリティモジュール (HSM) のフリートに転送され、そのいずれもがキーを使用してオペレーションを実行できます。

## マルチテナント設計
<a name="multi-tenant"></a>

AWS Payment Cryptography のマルチテナント設計により、SLA の可用性を満たし、高いリクエストレートを維持しながら、キーとデータの機密性を保護できます。

暗号化オペレーションに指定したキーが常に使用される決済キーであることを保証するために、複数の整合性強制メカニズムがデプロイされます。

Payment Cryptography キーのプレーンテキストキーマテリアルは、広範囲に保護されています。キーマテリアルは作成後すぐに HSM で暗号化され、暗号化されたキーマテリアルはセキュアなストレージに即座に移動されます。暗号化されたキーは、HSM 内で取得され、使用に間に合うように復号されます。プレーンテキストキーは、暗号化オペレーションを完了するのに必要な時間だけ HSM メモリに残ります。プレーンテキストのキーマテリアルが HSM を離れることはありません。永続ストレージに書き込まれることもありません。

AWS Payment Cryptography がキーを保護するために使用するメカニズムの詳細は、「AWS Payment Cryptography 暗号化の詳細」を参照してください。

# のインフラストラクチャセキュリティ 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 以降をサポートする必要があります。クライアントは、Ephemeral Diffie-Hellman (DHE) や Elliptic Curve Ephemeral Diffie-Hellman (ECDHE) などの Perfect Forward Secrecy (PFS) を使用する暗号スイートもサポートする必要があります。これらのモードは、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: セキュリティプロセスの概要の物理的および環境的セキュリティのセクションで説明されている制御に支配されます。詳細については、前のセクションにリストされたコンプライアンスレポートとサードパーティーの監査結果を参照してください。

AWS Payment Cryptography は、市販の PCI PTS HSM 認定ハードウェアセキュリティモジュール (HSM) 専用のハードウェアセキュリティモジュール (HSM) によってサポートされています。AWS Payment Cryptography キーのキーマテリアルは、Payment Cryptography キーの使用中にのみ、HSM の揮発性メモリにのみ保存されます。HSM は Amazon データセンター内のアクセス制御ラックに設置されており、あらゆる物理的アクセスを二重に制御します。AWS Payment Cryptography HSM のオペレーションの詳細については、「AWS Payment Cryptography 暗号化の詳細」を参照してください。

# VPC エンドポイントを介した AWS Payment Cryptography への接続
<a name="vpc-endpoint"></a>

Virtual Private Cloud (VPC) のプライベートインターフェイスエンドポイントを介して AWS Payment Cryptography に直接接続できます。インターフェイス VPC エンドポイントを使用する場合、VPC と AWS Payment Cryptography 間の通信は AWS ネットワーク内で完全に行われます。

AWS Payment Cryptography は、 を利用した Amazon Virtual Private Cloud (Amazon VPC) エンドポイントをサポートしています[AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/)。各 VPC エンドポイントは、VPC サブネット内のプライベート IP アドレスを持つ 1 つ以上の [Elastic Network Interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) (ENI) で表されます。

インターフェイス VPC エンドポイントは、インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続を使用せずに、VPC を AWS Payment Cryptography に直接接続します。VPC 内のインスタンスは、 AWS Payment Cryptography と通信するためにパブリック IP アドレスを必要としません。<a name="vpc-regions"></a>

**リージョン**  
AWS Payment Cryptography は、 Payment Cryptography がサポートされているすべての AWS リージョン で VPC エンドポイントと VPC エンドポイントポリシーをサポートします。 [AWS](https://docs.aws.amazon.com/general/latest/gr/payment-cryptography.html)

**Topics**
+ [AWS Payment Cryptography VPC エンドポイントに関する考慮事項](#vpce-considerations)
+ [AWS Payment Cryptography 用の VPC エンドポイントの作成](#vpce-create-endpoint)
+ [AWS Payment Cryptography VPC エンドポイントへの接続](#vpce-connect)
+ [VPC エンドポイントへのアクセスの制御](#vpce-policy)
+ [ポリシーステートメントでの VPC エンドポイントの使用](#vpce-policy-condition)
+ [VPC エンドポイントのログ記録](#vpce-logging)

## AWS Payment Cryptography VPC エンドポイントに関する考慮事項
<a name="vpce-considerations"></a>

**注記**  
VPC エンドポイントでは、わずか 1 つのアベイラビリティーゾーン (AZ) でサービスに接続できますが、高可用性と冗長性の目的で 3 つのアベイラビリティーゾーンに接続することをお勧めします。

 AWS Payment Cryptography のインターフェイス VPC エンドポイントを設定する前に、「 *AWS PrivateLink ガイド*」の[「インターフェイスエンドポイントのプロパティと制限](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations)」トピックを確認してください。

AWS VPC エンドポイントの Payment Cryptography サポートには以下が含まれます。
+ VPC エンドポイントを使用して、VPC からすべての [AWS Payment Cryptography コントロールプレーンオペレーション](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_Operations.html)と [AWS Payment Cryptography データプレーンオペレーション](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_Operations.html)を呼び出すことができます。
+  AWS Payment Cryptography リージョンエンドポイントに接続するインターフェイス VPC エンドポイントを作成できます。
+ AWS Payment Cryptography は、コントロールプレーンとデータプレーンで構成されます。一方または両方のサブサービスを設定できます AWS PrivateLink が、それぞれが個別に設定されています。
+  AWS CloudTrail ログを使用して、VPC エンドポイントを介した AWS Payment Cryptography キーの使用を監査できます。詳細については、「[VPC エンドポイントのログ記録](#vpce-logging)」を参照してください。

## AWS Payment Cryptography 用の VPC エンドポイントの作成
<a name="vpce-create-endpoint"></a>

 AWS Payment Cryptography の VPC エンドポイントは、Amazon VPC コンソールまたは Amazon VPC API を使用して作成できます。詳細については、「*AWS PrivateLink ガイド*」の「[インターフェイスエンドポイントを作成](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#create-interface-endpoint)」を参照してください。
+  AWS Payment Cryptography の 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 Payment Cryptography DNS ホスト名が VPC エンドポイントに解決されます。例えば、`https://controlplane.payment-cryptography.us-west-2.amazonaws.com` はサービス名 `com.amazonaws.us-west-2.payment-cryptography.controlplane` に接続された VPC エンドポイントに解決されます。

このオプションにより VPC エンドポイントが使いやすくなります。 AWS SDKsと はデフォルトで標準の AWS Payment Cryptography DNS ホスト名 AWS CLI を使用するため、アプリケーションやコマンドで VPC エンドポイント URL を指定する必要はありません。

詳細については、「AWS PrivateLink ガイド」の「[インターフェイスエンドポイントを介したサービスへアクセスする](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#access-service-though-endpoint)」を参照してください。

## AWS Payment Cryptography VPC エンドポイントへの接続
<a name="vpce-connect"></a>

 AWS SDK、、 AWS CLI または を使用して、VPC エンドポイントを介して AWS Payment Cryptography に接続できます 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 を、ご自身のアカウントのものに置き換えてください。

```
$ 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 Payment Cryptography DNS ホスト名は VPC エンドポイントに解決されます。 AWS CLI および SDKsデフォルトでこのホスト名を使用するため、VPC エンドポイントを使用して AWS Payment Cryptography リージョンエンドポイントに接続し始めることができます。スクリプトやアプリケーションを変更する必要はありません。

プライベートホスト名を使用するには、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 Payment Cryptography の VPC エンドポイントへのアクセスを制御するには、*VPC エンドポイントポリシー*を VPC エンドポイントにアタッチします。エンドポイントポリシーは、プリンシパルが VPC エンドポイントを使用して、特定の AWS Payment Cryptography リソースで AWS Payment Cryptography オペレーションを呼び出すことができるかどうかを決定します。

エンドポイントの作成時に 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 Payment Cryptography リクエストを成功させるには、プリンシパルに 2 つのソースからのアクセス許可が必要です。
+ [アイデンティティベースのポリシー](security_iam_id-based-policy-examples.md)は、プリンシパルにリソース (AWS Payment Cryptography キーまたはエイリアス) で オペレーションを呼び出すアクセス許可を付与する必要があります。
+ VPC エンドポイントポリシーは、エンドポイントを使用してリクエストを実行するためのアクセス権限をプリンシパルに付与する必要があります。

たとえば、キーポリシーは、特定の AWS Payment Cryptography キーで [Decrypt](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html) を呼び出すアクセス許可をプリンシパルに付与する場合があります。ただし、VPC エンドポイントポリシーでは、そのプリンシパルがエンドポイントを使用して AWS Payment Cryptography キー`Decrypt`で を呼び出すことを許可しない場合があります。

または、VPC エンドポイントポリシーは、プリンシパルがエンドポイントを使用して特定の AWS Payment Cryptography キーで [StopKeyUsage](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_StopKeyUsage.html) を呼び出すことを許可する場合があります。ただし、プリンシパルに IAM ポリシーからのアクセス許可がない場合、リクエストは失敗します。

### デフォルトの VPC エンドポイントポリシー
<a name="vpce-default-policy"></a>

すべての VPC エンドポイントには VPC エンドポイントポリシーがありますが、ポリシーを指定する必要はありません。ポリシーを指定しない場合、デフォルトのエンドポイントポリシーでは、エンドポイント上のすべてのリソースのすべてのプリンシパルによるすべてのオペレーションが許可されます。

ただし、 AWS Payment Cryptography リソースの場合、プリンシパルには [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 Payment Cryptography リソースの場合、プリンシパルには [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)」を参照してください。

Payment Cryptography の VPC AWS エンドポイントポリシーの例を次に示します。このポリシーを VPC エンドポイントにアタッチすると、 `ExampleUser`は VPC エンドポイントを使用して、指定された AWS Payment Cryptography キーで指定されたオペレーションを呼び出すことができます。このようなポリシーを使用する前に、サンプルプリンシパルと[キー識別子](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 Payment Cryptography キーのオペレーションは含まれません。

そのため、外部アカウントのプリンシパルが VPC エンドポイントを使用してローカルアカウントのキーに対する AWS Payment Cryptography オペレーションを呼び出すことを禁止する VPC エンドポイントポリシーを作成できます。

次の例では、[aws:PrincipalAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount) グローバル条件キーを使用して、プリンシパルがローカルアカウントにある場合を除き、すべての AWS Payment Cryptography キーに対するすべてのオペレーションのすべてのプリンシパルへのアクセスを拒否します。このようなポリシーを使用する前に、サンプルアカウント 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 をアカウントの有効なものに置き換えてください。

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

## ポリシーステートメントでの VPC エンドポイントの使用
<a name="vpce-policy-condition"></a>

リクエストが VPC から送信されたとき、または VPC エンドポイントを使用する場合に、 AWS Payment Cryptography リソースとオペレーションへのアクセスを制御できます。これを行うには、[IAM ポリシー](security_iam_id-based-policy-examples.md)を 1 つ使用します。
+ `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 Payment Cryptography キーを使用して特定の暗号化オペレーションを実行し、インターネットと AWS PrivateLink 接続の両方からのアクセスをブロックできます (設定されている場合）。ユーザーが AWS Payment Cryptography にリクエストを行うと、リクエストの 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 Payment Cryptography キーへのアクセスを制限することもできます。

次のサンプルキーポリシーでは、 AWS Payment Cryptography キーを から取得した場合にのみ管理するコマンドを許可します`vpc-12345678`。さらに、 AWS Payment Cryptography キーを暗号化オペレーションに使用するコマンドは、 から取得した場合にのみ許可されます`vpc-2b2b2b2b`。ある VPC でアプリケーションが実行されていれば、このようなポリシーを使用できますが、管理機能のために 2 番目の切り離された 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 Payment Cryptography へのリクエストが VPC エンドポイントを使用する場合、VPC エンドポイント ID はリクエストを記録する[AWS CloudTrail ログ](monitoring-cloudtrail.md)エントリに表示されます。エンドポイント ID を使用して、 AWS Payment Cryptography 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 Payment Cryptography およびその他の多くのサービスは、Transport Layer Security (TLS) ネットワーク暗号化プロトコルのハイブリッドポスト量子キー交換オプションをサポートしています。この TLS オプションは、API エンドポイントに接続するとき、または AWS SDKs を使用するときに使用できます。これらのオプションのハイブリッドポスト量子キー交換機能は、現在使用している TLS 暗号化と同等以上に安全であり、セキュリティ上のさらなる長期的な利点をもたらす可能性があります。

有効なサービスに送信するデータは、Transport Layer Security (TLS) 接続によって提供される暗号化によって転送中に保護されます。 AWS Payment Cryptography が TLS セッションでサポートする RSA と ECC に基づく従来の暗号スイートは、現在のテクノロジーではキー交換メカニズムに対するブルートフォース攻撃を実行不可能にします。ただし、大規模または暗号に関連する量子コンピュータ (CRQC) が将来実用的になった場合、既存の TLS キー交換メカニズムはこれらの攻撃の影響を受けやすくなります。攻撃者は、今後復号化できることを期待して、暗号化されたデータの収集を開始する可能性があります (今すぐ収集し、後で復号化します）。TLS 接続を介して渡されるデータの長期的な機密性に依存するアプリケーションを開発している場合は、大規模な量子コンピュータが使用できるようになる前に、ポスト量子暗号化に移行する計画を検討する必要があります。 AWS は、この未来に備えており、準備も万全にしておく必要があります。

![\[以前に TLS セッションを記録した攻撃者。数年後、攻撃者に CRQC がある場合、攻撃者はまず CRQC を使用して従来のキー交換を中断することでセッションキーを復旧できます。その後、攻撃者は検出されたセッションキーを使用してデータを復号できます。以前に送信されたデータがまだ有益であれば、侵害されるようになりました。\]](http://docs.aws.amazon.com/ja_jp/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/ja_jp/payment-cryptography/latest/userguide/images/pqtls-mitigation.png)


## TLS におけるハイブリッドポスト量子キー交換について
<a name="PQTLS-concepts"></a>

が AWS 使用するアルゴリズムは、TLS で現在使用されている従来のキー交換アルゴリズムである [Elliptic Curve Diffie-Hellman](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) (ECDHML-KEM) と、米国国立標準技術研究所 (NIST) が[最初の標準ポスト量子キーアグリーメントアルゴリズムとして指定した](https://csrc.nist.gov/pubs/fips/203/final)パブリックキー暗号化およびキー確立アルゴリズムである [Module-Lattice-Based Key-Encapsulation Mechanism](https://csrc.nist.gov/pubs/fips/203/final) () を組み合わせた*ハイブリッド*です。このメカニズムは、各アルゴリズムを独立して使用してキーを生成します。次に、2つのキーを暗号的に組み合わせます。

## PQC の詳細
<a name="pqtls-moreinfo"></a>

米国国立標準技術研究所 (NIST) のポスト量子暗号プロジェクトの詳細については、「[Post-Quantum Cryptography](https://csrc.nist.gov/Projects/Post-Quantum-Cryptography)」(ポスト量子暗号化) を参照してください。

NIST ポスト量子暗号標準化については、「[Post-Quantum Cryptography Standardization](https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cryptography-standardization)」(ポスト量子暗号標準化) を参照してください。

# ハイブリッドポスト量子 TLS の有効化
<a name="pqtls-details"></a>

AWS SDKsとツールには、言語とランタイムによって異なる暗号化機能と設定があります。AWS SDK またはツールが現在 PQ TLS サポートを提供する方法は 3 つあります。

**Topics**
+ [PQ TLS がデフォルトで有効になっている SDKs](#pq-tls-default)
+ [オプトイン PQ TLS サポート](#pq-tls-opt-in)
+ [System OpenSSL に依存する SDKs](#pq-tls-open-ssl)
+ [PQ TLS をサポートする予定がない AWS SDKs とツール](#pq-tls-nosupport)

## PQ TLS がデフォルトで有効になっている SDKs
<a name="pq-tls-default"></a>

**注記**  
6-Nov-2025 日現在、MacOS および Windows 用の AWS SDK とその基盤となる CRT ライブラリは TLS 用のシステムライブラリを使用するため、これらのプラットフォームでの PQ TLS 機能は一般的にシステムレベルのサポートによって決まります。

### AWS SDK for Go
<a name="pq-sdk-go"></a>

AWS SDK for Go は、標準ライブラリが提供する Golang 独自の TLS 実装を使用します。Golang は v1.24 の時点で PQ TLS をサポートおよび優先しているため、AWS SDK for Go ユーザーは Golang を v1.24 にアップグレードするだけで PQ TLS を有効にできます。

### AWS SDK for JavaScript (ブラウザ)
<a name="pq-sdk-javascript"></a>

AWS SDK for JavaScript (ブラウザ) はブラウザの TLS スタックを使用するため、ブラウザランタイムがサポートし、希望する場合、SDK は PQ TLS をネゴシエートします。Firefox は v132.0 で PQ TLS のサポートを開始しました。Chrome は v131 での PQ TLS のサポートを発表しました。Edge は、デスクトップの場合は v120、Android の場合は 140 のオプトイン PQ TLS をサポートしています。

### AWS SDK for Node.js
<a name="pq-sdk-nodejs"></a>

Node.js v22.20 (LTS) および v24.9.0 以降、Node.js は OpenSSL 3.5 を静的にリンクしてバンドルします。つまり、PQ TLS は、これらのバージョン以降ではデフォルトで有効になっており、優先されます。

### AWS SDK for Kotlin
<a name="pq-sdk-kotlin"></a>

Kotlin SDK は、v1.5.78 の時点で Linux での PQ TLS をサポートしており、優先しています。AWS SDK for Kotlin の CRT ベースのクライアントは MacOS および Windows の TLS のシステムライブラリに依存しているため、PQ TLS のサポートは基盤となるシステムライブラリによって異なります。

### AWS SDK for Rust
<a name="pq-sdk-rust"></a>

AWS SDK for Rust は、サービスクライアントごとに個別のパッケージ (Rust エコシステムでは「木箱」と呼ばれる) を配布します。これらはすべて統合された GitHub リポジトリで管理されますが、各サービスクライアントは独自のバージョンとリリース頻度に従います。統合 SDK は 8/29/25 に PQ TLS 設定をリリースしたため、それ以降にリリースされた個々のサービスクライアントバージョンはデフォルトで PQ TLS をサポートし、優先します。

 特定のサービスクライアントの PQ TLS をサポートする最小バージョンを確認するには、関連する crates.io バージョン URL ( AWS Payment Cryptography の など[)](https://crates.io/crates/aws-sdk-paymentcryptography/versions) に移動し、29-Aug-25 日以降に発行された最初のバージョンを見つけます。29-Aug-25 日以降に発行されたサービスクライアントバージョンでは、デフォルトで PQ TLS が有効になり、優先されます。

## オプトイン PQ TLS サポート
<a name="pq-tls-opt-in"></a>

### AWS SDK for C\$1\$1
<a name="pq-sdk-cplusplus"></a>

デフォルトでは、C\$1\$1 SDK は libcurl や WinHttp などのプラットフォームネイティブクライアントを使用します。Libcurl は通常、TLS のシステム OpenSSL に依存しているため、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)を使用して SDK の CRT 依存関係を取得できます。ソースからの SDK の構築については[、](https://github.com/aws/aws-sdk-cpp/tree/main?tab=readme-ov-file#building-from-source)[ここで](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/sdk-from-source.html)説明しますが、いくつかの追加の CMake フラグが必要になる場合があります。

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

### AWS SDK for Java
<a name="pq-sdk-java"></a>

 v2 の時点で、AWS SDK for Java は、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 です。OpenSSL はバージョン 3.5 で PQ TLS のサポートを有効にしているため、PQ TLS 用にこれらの SDKs とツールを設定する最も簡単な方法は、少なくとも OpenSSL 3.5 がインストールされているオペレーティングシステムディストリビューションで使用することです。

OpenSSL 3.5 を使用して Docker をサポートするすべてのシステムで PQ TLS を有効にするように Docker コンテナを設定することもできます。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 以降にアップグレードされていることを確認します。これは「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 repository](https://github.com/aws-samples/sample-post-quantum-tls-python/) and accompanying [blog post](https://aws.amazon.com/blogs/security/post-quantum-tls-in-python/)」を参照してください。

### AWS SDK for PHP
<a name="pq-tls-php"></a>

AWS SDK for PHP はシステム libssl/libcrypto に依存しています。PQ TLS を使用するには、OpenSSL 3.5 以上がインストールされているオペレーティングシステムディストリビューションでこの SDK を使用します。

### 「AWS SDK for Python (Boto3)」
<a name="pq-tls-python"></a>

AWS SDK for Python (Boto3) は、システム libssl/libcrypto に依存しています。PQ TLS を使用するには、OpenSSL 3.5 以上がインストールされているオペレーティングシステムディストリビューションでこの SDK を使用します。

### AWS SDK for Ruby
<a name="pq-tls-ruby"></a>

AWS SDK for Ruby は、システム libssl/libcrypto に依存しています。PQ TLS を使用するには、OpenSSL 3.5 以上がインストールされているオペレーティングシステムディストリビューションでこの SDK を使用します。

### AWS SDK for .NET
<a name="pq-tls-dotnet"></a>

Linux では、AWS SDK for .NET はシステム libssl/libcrypto に依存しています。PQ TLS を使用するには、OpenSSL 3.5 以上がインストールされているオペレーティングシステムディストリビューションでこの SDK を使用します。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 では、[ここで](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/libraries#tls-13-for-macos-client)説明するように Apple の Network.framework にオプトインすることで、TLS 1.3 サポート (PQ TLS の前提条件) を有効にできます。最小 .NET バージョンが 10 であると仮定すると、PQ TLS を有効にする必要があります。

## PQ TLS をサポートする予定がない AWS SDKs とツール
<a name="pq-tls-nosupport"></a>

現在、以下の言語 SDKs とツールをサポートする予定はありません。
+ AWS SDK for SAP
+ Swift 用 AWS SDK
+ AWS Tools for Windows PowerShell

# AWS Payment Cryptography のセキュリティのベストプラクティス
<a name="security-best-practices"></a>

AWS Payment Cryptography は、組み込みまたはオプションで実装できる多くのセキュリティ機能をサポートしています。これらの機能は、暗号化キーの保護を強化し、IAM [ポリシー](security_iam_service-with-iam.md)、キーポリシーと IAM ポリシーを改良するための広範なポリシー条件キーのセット、キーブロックに関する PCI PIN ルールの組み込み適用など、意図した目的に使用できます。

**重要**  
これらの一般的なガイドラインは、完全なセキュリティソリューションを提供するものではありません。すべてのベストプラクティスがあらゆる状況に適しているわけではないため、これらは規範的なものではありません。
+ **Key Usage and Modes of Use**: AWS Payment Cryptography は、ANSI X9 TR 31-2018 Interoperable Secure Key Exchange Key Block Specification で説明されているように、PCI PIN セキュリティ要件 18-3 に準拠し、キーの使用と使用モードの制限を適用します。これにより、1 つのキーを複数の目的で使用できなくなり、キーメタデータ (許可されたオペレーションなど) をキーマテリアル自体に暗号的にバインドできます。 AWS Payment Cryptography は、キー暗号化キー (TR31\$1K0\$1KEY\$1ENCRYPTION\$1KEY) をデータ復号に使用できないなど、これらの制限を自動的に適用します。詳細については、「[AWS Payment Cryptography キーのキー属性について](keys-validattributes.md)」を参照してください。
+ **対称キーマテリアルの共有を制限する**：対称キーマテリアル (PIN 暗号化キーやキー暗号化キーなど) は、多くても他の 1 つのエンティティとのみ共有できます。機密マテリアルをより多くのエンティティまたはパートナーに転送する必要がある場合は、追加のキーを作成します。 AWS Payment Cryptography では、対称キーマテリアルや非対称プライベートキーマテリアルがクリアに公開されることはありません。
+ **エイリアスやタグを使用して、キーを特定のユースケースやパートナーに関連付ける**：エイリアスを使用すると、キーに関連するユースケースを簡単に示すことができます。例えば、Alias/BIN\$112345\$1CVK は BIN 12345 に関連するカード検証キーを表すのに便利です。より高い柔軟性が必要な場合は、bin=12345、use\$1case=acquiring、country=us、partner=foo などのタグを作成することを検討してください。エイリアスやタグは、ユースケースの発行と取得の間にアクセス制御を強制するなど、アクセスを制限するためにも使用できます。
+ **最小許可アクセスを実践する**：IAM を使用すると、個々のユーザーがキーを作成したり、暗号化オペレーションを実行したりすることを禁止するなど、本番環境へのアクセスを個人ではなくシステムに制限できます。IAM は、取得者による PIN の生成や検証を制限するなど、ユースケースには当てはまらないコマンドとキーの両方へのアクセスを制限するためにも使用できます。最小特権を使用するもう 1 つの方法は、機密性の高いオペレーション (キーのインポートなど) を特定のサービスアカウントに制限することです。例については、「[AWS Payment Cryptography のアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」を参照してください。

**以下の資料も参照してください。**
+ [AWS Payment Cryptography の Identity and Access Management](security-iam.md)
+ 「*IAM ユーザーガイド*」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」