【Security Hub修復手順】[APIGateway.10] API Gateway V2 統合では、プライベート接続に HTTPS を使用する必要があります
こんにちは!コンサルティング部のヒスです。
皆さん、お使いのAWS環境のセキュリティチェックはしていますか?
本記事では、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修復手順をご紹介します。
本記事の対象コントロール
[APIGateway.10] API Gateway V2 統合では、プライベート接続に HTTPS を使用する必要があります
[APIGateway.10] API Gateway V2 integrations should use HTTPS for private connections
前提条件
本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。
AWS Security Hubの詳細についてはこちらのブログをご覧ください。
対象コントロールの説明
このコントロールは、API Gateway V2(HTTP API)のプライベート統合でHTTPSが有効になっているかをチェックします。
プライベート統合にTLS設定を構成すると、このコントロールはPASSEDになります。
API GatewayのプライベートリソースへのアクセスにはVPCリンクを使用します。
VPCリンクはAPI GatewayとVPC内のバックエンド(Application Load BalancerやNetwork Load Balancerなど)の間にプライベートな接続経路を確立しますが、その経路自体は通信内容を暗号化しません。
統合のTLS設定でサーバー名を指定し、HTTPSプロトコルで通信させることで、API Gatewayからバックエンドまでの通信が暗号化されます。
TLSを設定しない場合、機密性の高いAPIトラフィックがプライベート接続区間で暗号化されないまま流れます。
VPC内部の通信であっても、通信内容の傍受や中間者攻撃、認証情報の漏洩につながるおそれがあるため、プライベート接続でもHTTPSによる暗号化を有効にすることが必要です。
なお、本コントロールは統合の接続タイプが「VPCリンク(プライベート接続)」の場合に評価されます。
インターネット経由の統合(接続タイプ INTERNET)は対象外です。
修復手順
コントロールの確認方法
- Security Hubコンソールを開く

- 左メニューから「検出結果」を選択

- フィルターで対象のコントロールID「APIGateway.10」を検索

検出結果のリソースから、対象となるAPI(HTTP API)と統合(Integration)を特定します。
ステークホルダーに確認
修復を行う前に、以下の点をステークホルダーに確認してください。
- バックエンド(ALB/NLB、または接続先サーバー)がHTTPS(TLS)でのリクエストを受け付けられる状態か
- バックエンドの証明書に設定されているホスト名(サーバー名)は何か(TLS設定の
安全なサーバー名に指定するため) - 統合先のリスナー/ポートをHTTPS用に変更する必要がないか(HTTPのみのリスナーの場合、HTTPS対応が別途必要)
- 修復に伴う一時的な接続影響が許容できるメンテナンスウィンドウはいつか
修復手順
ここでは、既存のプライベート統合にTLS設定を追加してHTTPS通信に変更する手順を説明します。
- API Gatewayコンソールを開く

- 対象のHTTP APIを選択する

- 左メニューの「統合(Integrations)」を選択し、「統合を管理」を選択する

- 統合の一覧から対象の統合を選択し、「編集」を選択する

- 「詳細設定」を展開し、「安全なサーバー名」に接続先バックエンドのDNS名またはホスト名を入力する
-
NLB / ALB の場合:
ロードバランサーのDNS名を入力します
(例:xxxx.ap-northeast-1.elb.amazonaws.com) -
その他のバックエンドの場合:
接続先サーバーのホスト名を入力します※DNS名はEC2コンソールの
「ロードバランサー」から確認できます
-

- 内容を保存する
「安全なサーバー名」を設定すると、プライベート統合のトラフィックはHTTPSプロトコルを使用するようになります。
入力したサーバー名は、バックエンド証明書のホスト名検証およびTLSハンドシェイク時のSNI(Server Name Indication)に使用されます。
CLIで修復する場合
AWS CLIでは update-integration コマンドでTLS設定を追加できます。
aws apigatewayv2 update-integration \
--api-id <API-ID> \
--integration-id <INTEGRATION-ID> \
--tls-config ServerNameToVerify=<バックエンドのホスト名またはDNS名> \
--region ap-northeast-1
修復確認
修復後、Security Hubで検出結果が「PASSED」になることを確認します。

最後に
今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。
コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!
最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。






