CloudFront との相互 TLS (オリジン)
相互 TLS 認証 (相互 Transport Layer Security 認証 - mTLS) は、双方向証明書ベースの認証を要求することで標準 TLS 認証を拡張するセキュリティプロトコルです。クライアントとサーバーの両方が、安全な接続を確立する前に ID を証明する必要があります。
ビューワー mTLS とオリジン mTLS
相互認証 (mTLS) は、ビューワーと CloudFront ディストリビューション間 (ビューワー mTLS) または CloudFront ディストリビューションとオリジン間 (オリジン mTLS) で有効にできます。このドキュメントは、オリジン mTLS 設定に関するものです。ビューワーの mTLS 設定については、「CloudFront による相互 TLS 認証 (Viewer mTLS)」を参照してください。
相互 TLS (オリジン) により、CloudFront はクライアント証明書を使用してオリジンサーバーに対して自身を認証できます。相互 TLS (オリジン) を使用すると、承認された CloudFront ディストリビューションのみがアプリケーションサーバーとの接続を確立できるようにすることができ、不正なアクセスの試みから保護できます。
注記
相互 TLS (オリジン) 接続では、CloudFront はクライアントとして機能し、TLS ハンドシェイク中にクライアント証明書をオリジンサーバーに提示します。CloudFront はクライアント証明書の有効性または失効ステータスの検証を実行しません。これはオリジンサーバーの責任です。セキュリティ要件に従って、クライアント証明書をトラストストアに対して検証し、証明書の有効期限を確認し、失効チェック (CRL や OCSP 検証など) を実行するように、オリジンインフラストラクチャを設定する必要があります。CloudFront の役割は証明書の提示に制限されており、すべての証明書検証ロジックとセキュリティポリシーはオリジンサーバーによって適用されます。
仕組み
CloudFront とオリジン間の標準 TLS ハンドシェイクでは、オリジンサーバーのみが CloudFront に ID を証明する証明書を提示します。相互 TLS (オリジン) では、認証プロセスは双方向になります。CloudFront がオリジンサーバーに接続しようとすると、CloudFront は TLS ハンドシェイク中にクライアント証明書を提示します。オリジンサーバーは、安全な接続を確立する前に、この証明書をトラストストアと照合して検証します。
ユースケース
相互 TLS (オリジン) は、従来の認証方法では運用上のオーバーヘッドが発生するいくつかの重要なセキュリティシナリオに対処します。
-
ハイブリッドおよびマルチクラウドセキュリティ - CloudFront と AWS の外でホストされているオリジン、または AWS 上のパブリックオリジン間の接続を保護できます。これにより、IP 許可リストまたはカスタムヘッダーソリューションを管理する必要がなくなり、AWS、オンプレミスのデータセンター、サードパーティープロバイダー間で一貫した証明書ベースの認証が提供されます。分散インフラストラクチャを運用するメディア企業、小売業者、企業は、インフラストラクチャ全体で標準化されたセキュリティコントロールを活用できます。
-
B2B API とバックエンドのセキュリティ - CloudFront のパフォーマンス上の利点を維持しながら、バックエンド API とマイクロサービスを直接アクセスの試みから保護できます。認証要件が厳しい SaaS プラットフォーム、支払い処理システム、エンタープライズアプリケーションでは、API リクエストが承認された CloudFront ディストリビューションからのみ送信されていることを確認し、中間者攻撃や不正アクセスの試みを防ぐことができます。
重要: オリジンサーバーの要件
相互 TLS (オリジン) では、相互 TLS 認証をサポートするようにオリジンサーバーを設定する必要があります。オリジンインフラストラクチャには、次の機能が必要です。
-
TLS ハンドシェイク中のクライアント証明書のリクエストと検証
-
CloudFront のクライアント証明書を発行した認証局証明書を含むトラストストアの維持
-
相互 TLS 接続イベントのログ記録とモニタリング
-
証明書検証ポリシーの管理と認証の失敗の処理
CloudFront はクライアント側の証明書の提示を処理しますが、オリジンサーバーにはこれらの証明書を検証し、相互 TLS 接続を管理する責任があります。CloudFront で相互 TLS (オリジン) を有効にする前に、オリジンインフラストラクチャが正しく設定されていることを確認します。
開始方法
CloudFront で相互 TLS (オリジン) を実装するには、AWS Certificate Manager でクライアント証明書をインポートし、相互 TLS を要求するようにオリジンサーバーを設定し、CloudFront ディストリビューションで相互 TLS (オリジン) を有効にする必要があります。以下のセクションでは、各設定タスクの詳細な手順について説明します。