内部向け Serverless Framework API の公開エンドポイント

内部専用 REST API にプライベートエンドポイントとアクセスポリシーを使います。

説明

Serverless Framework の REST API が公開エンドポイントを使うと、インターネットからリクエストを受け付けられます。内部専用 API は provider.endpointType: PRIVATE に設定し、VPC エンドポイント経由でアクセスしてください。

想定される影響

内部向け API が不要な外部呼び出しを受けるおそれがあります。エンドポイントの公開範囲と、呼び出し元の認証・認可は個別に管理する必要があります。

対処方法

内部専用 API に provider.endpointType: PRIVATE を設定し、API リソースポリシーと VPC エンドポイントポリシーでアクセスを制限してください。vpcEndpointIds は呼び出し用 DNS エイリアスの関連付けであり、許可リストの代わりにはなりません。

例

抜粋内のエンドポイント ID は実際の ID に置き換えてください。リソースポリシーと関数ハンドラーの定義は省略しています。公開用 API まで一律にプライベートに変更する必要はありません。

変更前

yaml
provider:
  name: aws
functions:
  hello:
    events:
      - http:
          path: user/create
          method: get

変更後

yaml
provider:
  name: aws
  endpointType: PRIVATE
  vpcEndpointIds:
    - vpce-123
    - vpce-456
functions:
  hello:
    events:
      - http:
          path: user/create
          method: get

参考資料