API Gatewayエンドポイントの公開範囲の確認

内部専用のREST APIにはPRIVATEエンドポイントを使用してください。

説明

API Gateway REST APIの公開エンドポイントは、インターネット経由の呼び出し経路を提供します。公開されているだけで匿名呼び出しが許可されるわけではなく、認証やリソースポリシーもアクセスを制御します。

すべてのAPIを非公開にする必要はありませんが、内部専用APIの公開エンドポイントは不要な露出となります。探索や認証を回避する試みの対象になるおそれがあります。

想定される影響

  • 内部専用APIがインターネットから発見される可能性があります。
  • スキャン、認証の試行、不正なリクエストが公開の入口に届くおそれがあります。
  • 意図したVPCの境界ではなく、公開エンドポイントのポリシーにアクセス制御が依存する場合があります。

対処方法

  • 内部専用APIにはendpoint_configuration.types = ["PRIVATE"]を設定してください。
  • 公開APIと内部専用APIを分け、それぞれに適切なアクセスポリシーを適用してください。
  • インターフェイスVPCエンドポイント、セキュリティグループ、DNSを準備してください。リソースポリシーとVPCエンドポイントポリシーで呼び出し範囲を制限し、認証と正当な呼び出しを検証してください。

例

同じREST APIのエンドポイント種別を比較する抜粋です。PRIVATE APIに必要なVPCエンドポイント、リソースポリシー、メソッドと認証設定は省略しています。

変更前

hcl
resource "aws_api_gateway_rest_api" "example" {
  name = "regional-example"

  endpoint_configuration {
    types = ["REGIONAL"]
  }
}

変更後

hcl
resource "aws_api_gateway_rest_api" "example" {
  name = "regional-example"

  endpoint_configuration {
    types = ["PRIVATE"]
  }
}

説明:

  • 変更前: REGIONALは公開ネットワークからの呼び出し経路を提供します。
  • 変更後: PRIVATEはVPCエンドポイント経由の経路を使います。必要な接続とリソースポリシーを構成する必要があり、呼び出し元の認証の代わりにはなりません。

参考資料