API Gateway REST API の公開範囲の確認

内部専用 API は、必要なネットワークからのみ呼び出せるように構成してください。

説明

API Gateway REST API の EDGE・REGIONAL エンドポイントは、インターネットからの到達性が必要な API に適しています。内部専用 API に不要な公開経路を設けると、外部からの探索や呼び出し試行にさらされるおそれがあります。

公開エンドポイント自体が匿名の呼び出しを許可するわけではありません。PRIVATE はネットワークの到達範囲を制限しますが、API の認証と認可は別途必要です。

想定される影響

  • 内部用のパスや機能が外部からの呼び出し試行の対象になる可能性があります。
  • 認証や権限確認が不足すると、データ漏えいや機能の不正利用につながるおそれがあります。

対処方法

内部専用 REST API には endpoint_type: PRIVATE を使い、インターフェイス VPC エンドポイント、DNS・接続経路、エンドポイントのセキュリティグループを構成してください。API のリソースポリシーも必要な VPC やエンドポイントに限定してください。移行前に承認済みクライアントの接続を試験し、公開が必要な API には適切な認証・認可を維持してください。

例

エンドポイントの種類を比較するデプロイの抜粋です。my_api.yml、VPC エンドポイント、リソースポリシーは省略しています。稼働中の API では、サポートされる変更方法とクライアント接続への影響を確認してください。

変更前

yaml
- name: Setup AWS API Gateway
  community.aws.aws_api_gateway:
    swagger_file: my_api.yml
    stage: production
    endpoint_type: EDGE
    state: present

EDGE エンドポイントとしてデプロイします。意図的にインターネットへ公開する API には適する場合がありますが、内部専用 API なら公開範囲を見直してください。

変更後

yaml
- name: Setup AWS API Gateway
  community.aws.aws_api_gateway:
    swagger_file: my_api.yml
    stage: production
    endpoint_type: PRIVATE
    state: present

PRIVATE エンドポイントとしてデプロイします。実際の呼び出しには、必要な VPC 接続経路とリソースポリシーの構成も必要です。

参考資料