

# バックエンドクライアント証明書認証の仕組み
<a name="rest-api-backend-auth-overview"></a>

アウトバウンド相互 TLS (mTLS) では、API Gateway は TLS クライアントとして機能します。接続時にバックエンドサーバーにクライアント証明書を提示します。バックエンドはこの証明書を使用して、リクエストが API Gateway から送信されたことを確認します。

アウトバウンド mTLS はインバウンド mTLS とは異なります。インバウンド mTLS では、API クライアントが API Gateway に証明書を提示する必要があります。アウトバウンド mTLS は、API Gateway とバックエンド間のリンクを保護します。

## TLS ハンドシェイクシーケンス
<a name="rest-api-backend-auth-overview-handshake"></a>

次のステップは、API Gateway がバックエンドとの相互 TLS 接続を設定する方法を示しています。

1. API Gateway がバックエンドに ClientHello メッセージを送信します。

1. バックエンドがサーバー証明書を API Gateway に送信します。

1. API Gateway がサーバー証明書を確認します。

1. バックエンドが API Gateway に CertificateRequest を送信します。

1. API Gateway がクライアント証明書チェーンをバックエンドに送信します。

1. バックエンドがクライアント証明書をトラストストアに照らし合わせて確認します。

1. 相互 TLS 接続の準備が完了します。API Gateway が API リクエストを転送します。

バックエンドがステップ 4 でクライアント証明書をリクエストしない場合、API Gateway はクライアント証明書を送信せずに TLS ハンドシェイクを完了します。接続では、標準の一方向 TLS を使用します。

## 証明書オプションの比較
<a name="rest-api-backend-auth-overview-comparison"></a>

次の表は、バックエンドクライアント証明書を設定するための 2 つのアプローチを比較したものです。


**ACM で管理される証明書と API Gateway で生成される証明書の比較**  

| 機能 | ACM で管理される証明書 | API Gateway で生成される証明書 | 
| --- | --- | --- | 
| 証明書ソース | PKI または AWS Private Certificate Authority | API Gateway 自己署名 | 
| 設定 | ACM ARN でステージの証明書を参照し、ACM API を使用して証明書のライフサイクルを管理します。 | クライアント証明書ページで管理するか、API Gateway クライアント証明書 API を使用して管理します。 | 
| 更新 | 証明書の発行方法によって異なります。ACM が AWS Private Certificate Authority を通じて発行する証明書の場合、ACM は証明書を自動的に更新し、API Gateway は再デプロイやダウンタイムなしで更新を伝播します。ACM にインポートする証明書の場合、有効期限が切れる前に再インポートする必要があります。その後、API Gateway は再インポートを自動的に伝播します。 | 手動。証明書は 365 日後に期限切れになるため、手動で更新する必要があります。 | 
| チェーンのサポート | フルチェーン (最大 5 つの証明書) | 単一の自己署名証明書 | 
| バックエンド信頼モデル | バックエンドが CA を信頼する | バックエンドは API Gateway 証明書を固定する必要があります。 | 