説明
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