API Gatewayのセキュリティポリシーに使いたくない暗号スイートが含まれている場合の対応

記事タイトルとURLをコピーする

エンタープライズクラウド部 小林(嵩) です。
API Gateway 導入に際し、セキュリティ要件に沿わない暗号スイートを無効化するよう相談があった場合の対応例を紹介します。

結論

API Gateway では暗号スイートを自由に選択するような機能はございません。
CloudFront を API Gateway の前段に置くことで、選択できるキュリティポリシーの種類を増やすことが出来ます。 これにより、より要件にあったセキュリティポリシーを選択することが可能となります。

セキュリティポリシーの比較

前提として、CloudFront *1 と API Gateway *2 を対象に、各セキュリティポリシーに含まれる暗号スイート等を横並びでまとめたものを以下の図に示します。※2023年6月23日現在

セキュリティポリシーの比較

背景黄色のものは CloudFront、エッジ最適化APIエンドポイント、リージョンAPIエンドポイント、それぞれで最も厳しいセキュリティポリシーを示していますが、最も厳しいものでも対応している暗号スイートに差があることがわかります。

対応例

例えば下記暗号スイートを利用不可としたい場合の対処を検討します。

  • ECDHE-RSA-AES128-SHA256
  • ECDHE-RSA-AES256-SHA384

現時点で暗号スイートを個別に無効化や選択するといった機能はない為、API Gateway 単体ではこの要件を満たすことは不可となります。

一方で CloudFront のセキュリティポリシー「TLSv1.2_2021」にはこれら暗号スイートは含まれていない為、CloudFront を経由させることで要件を満たすことが可能となります。

具体的な設定手順は、公式ドキュメントを参照いただくのが一番確実かと思います。

repost.aws

注意事項

CloudFront からのアクセスのみに制限するよう、例えば API Gateway で Lambda オーソライザーなどを用いて API への直接アクセスを禁止するなどの実装を忘れずに実施してください。 docs.aws.amazon.com

まとめ

いつか暗号スイートを個別に無効化とか出来たら嬉しいな、と期待していますが、こんなやり方もあるんだなと参考にしてみてください。

小林 嵩生 (記事一覧)

導入~設計構築~運用まで何でもしたいなといった感じです。