

# CloudFront による相互 TLS 認証 (Viewer mTLS)
<a name="mtls-authentication"></a>

相互 TLS 認証 (相互 Transport Layer Security 認証 - mTLS) は、双方向証明書ベースの認証を要求することで標準 TLS 認証を拡張するセキュリティプロトコルです。クライアントとサーバーの両方が、安全な接続を確立する前に ID を証明する必要があります。相互 TLS を使用すると、信頼される TLS 証明書を提示するクライアントのみが CloudFront ディストリビューションにアクセスできるようになります。

## 仕組み
<a name="how-mtls-works"></a>

標準の TLS ハンドシェイクでは、サーバーのみがクライアントに ID を証明する証明書を提示します。相互 TLS では、認証プロセスは双方向になります。クライアントが CloudFront ディストリビューションに接続しようとすると、CloudFront は TLS ハンドシェイク中にクライアント証明書をリクエストします。クライアントは、安全な接続を確立する前に、CloudFront が設定されたトラストストアに対して検証する有効な X.509 証明書を提示する必要があります。

CloudFront は、AWS エッジロケーションでこの証明書の検証を実行し、CloudFront のグローバルパフォーマンスの利点を維持しながら、オリジンサーバーから認証の複雑さをオフロードします。mTLS は、検証モード (すべてのクライアントが有効な証明書を提示する必要がある) またはオプションモード (提示されたときに証明書を検証するが、証明書のない接続も許可する) の 2 つのモードで設定できます。

## ユースケース
<a name="mtls-use-cases"></a>

CloudFront による相互 TLS 認証は、従来の認証方法では不足していたいくつかの重要なセキュリティシナリオに対処します。
+ **コンテンツキャッシュによるデバイス認証** - ファームウェアの更新、ゲームのダウンロード、または内部リソースへのアクセスを許可する前に、ゲームコンソール、IoT デバイス、または企業ハードウェアを認証することができます。各デバイスには、CloudFront のキャッシュ機能のメリットを享受しながら、その信頼性を証明する一意の証明書が含まれています。
+ **API-to-API 認証** - 信頼されるビジネスパートナー、支払いシステム、マイクロサービス間のマシン間通信を保護できます。証明書ベースの認証により、自動データ交換に強力な ID 検証を提供しながら、共有シークレットや API キーが不要になります。

**Topics**
+ [仕組み](#how-mtls-works)
+ [ユースケース](#mtls-use-cases)
+ [トラストストアと証明書の管理](trust-stores-certificate-management.md)
+ [CloudFront ディストリビューションの相互 TLS を有効にする](enable-mtls-distributions.md)
+ [CloudFront Connection Function を関連付ける](connection-functions.md)
+ [その他の設定](configuring-additional-settings.md)
+ [オリジンに転送されるキャッシュポリシーの mTLS ヘッダービューワー](viewer-mtls-headers.md)
+ [CloudFront 接続Connection Function と KVS を使用した取り消し](revocation-connection-function-kvs.md)
+ [接続ログを使用したオブザーバビリティ](connection-logs.md)