説明
SAM REST API の公開エンドポイントは、インターネットからリクエストを受け付けられます。内部専用 API では EndpointConfiguration の Type を PRIVATE にし、VPC エンドポイント経由でアクセスする構成にしてください。
想定される影響
内部向け API が想定外の外部呼び出しにさらされるおそれがあります。公開エンドポイントだからといって、認証なしの呼び出しが許可されるわけではありません。
対処方法
EndpointConfiguration.Type: PRIVATE を設定し、VPC エンドポイントと API リソースポリシーでアクセスを制限してください。VPCEndpointIds の関連付けは呼び出し用の DNS エイリアスを作成するもので、許可リストの代わりにはなりません。
例
この例は SAM の単数形の Type プロパティを使います。API リソースポリシーと VPC エンドポイントは省略しているため、デプロイ時に設定してください。公開サービス向け API では、要件に合う公開エンドポイントを利用できます。
変更前
yaml
Resources:
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
EndpointConfiguration:
Type: EDGE
変更後
yaml
Resources:
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
EndpointConfiguration:
Type: PRIVATE