説明
API Gateway の clientCertificateId は、対応する統合でバックエンドが API Gateway を認証するためのクライアント証明書を指定します。この設定がないだけで、利用者と API Gateway 間の HTTPS が無効になるわけではありません。
この認証を要求するバックエンドには、ステージの設定と証明書の検証が必要です。API Gateway v2 では WebSocket API のみに対応し、HTTP API 用の設定ではありません。
想定される影響
- 必要なバックエンド認証がないと、接続が拒否されたり、意図した送信元の検証が欠けたりする場合があります。
- 証明書の期限切れや更新漏れは、サービスの接続障害につながるおそれがあります。
対処方法
バックエンドが証明書認証を要求する対応 API で clientCertificateId を設定し、バックエンドがその証明書を実際に検証するよう構成してください。有効期限と更新手順を管理し、認証されない接続が拒否されることを確認してください。API Gateway v2 の HTTP API には、このフィールドを適用しないでください。
例
WebSocket API ステージのバックエンド用証明書を比較する抜粋です。exampleApi、aws:apigateway:ClientCertificate 型の exampleClientCertificate、ステージとデプロイの設定は別途準備してください。
変更前
yaml
resources:
example:
type: aws:apigatewayv2:Stage
properties:
apiId: ${exampleApi.id}
変更後
yaml
resources:
example:
type: aws:apigatewayv2:Stage
properties:
apiId: ${exampleApi.id}
clientCertificateId: ${exampleClientCertificate.id}
変更後は、用意したクライアント証明書 ID をステージに関連付けます。ID を指定するだけで、バックエンドの検証や利用者の認証が完了するわけではありません。