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

内部専用 API のネットワーク経路と呼び出し権限を必要な範囲に制限してください。

説明

内部専用 API に公開エンドポイントを使用すると、想定したネットワークの外からも呼び出し経路に到達できます。公開エンドポイント自体が匿名呼び出しを許可するわけではなく、公開サービス用の EDGE や REGIONAL エンドポイントは正当な構成です。

PRIVATE REST API には、インターフェイス VPC エンドポイントやリソースポリシーなどの準備が必要です。ネットワーク範囲を狭めても、メソッド認証やアプリケーションの権限確認は必要です。

想定される影響

  • 認証やアクセスポリシーが不足すると、内部機能が意図しない呼び出し元に公開されるおそれがあります。
  • プライベート接続経路を用意する前に切り替えると、正常な呼び出しが中断する場合があります。

対処方法

API の公開が必要か確認してください。内部専用 REST API では、インターフェイス VPC エンドポイント、セキュリティグループ、DNS、許可する VPC またはエンドポイントを制限するリソースポリシーを準備してから PRIVATE 構成を適用してください。必要な呼び出し元の接続と認証を試験し、公開 API では目的に合う認証とアクセス制限を維持してください。

例

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

変更前

yaml
Resources:
  InternalApi:
    Type: AWS::ApiGateway::RestApi
    Properties:
      Name: internal-api
      EndpointConfiguration:
        Types:
          - EDGE

EDGE は公開 API エンドポイントを構成します。この設定だけではメソッド認証や実際のデータアクセス権限は判断できません。

変更後

yaml
Resources:
  InternalApi:
    Type: AWS::ApiGateway::RestApi
    Properties:
      Name: internal-api
      EndpointConfiguration:
        Types:
          - PRIVATE

エンドポイントタイプを PRIVATE に設定します。利用するには必要なプライベート経路とリソースポリシーも構成してください。

参考資料