説明
API Gateway REST APIのキャッシュクラスターは、繰り返されるリクエストのレスポンスを再利用し、バックエンドの負荷を軽減できます。キャッシュがないこと自体は脆弱性ではありません。データの鮮度やユーザーごとのデータ分離を先に確認してください。
想定される影響
キャッシュ可能なリクエストを繰り返し処理すると、バックエンドの負荷や応答遅延が増えることがあります。
対処方法
キャッシュが適切なら、CacheClusterEnabled: trueと対象メソッドのCachingEnabled: trueを設定してください。キャッシュキーと有効期間はレスポンスの特性に合わせて決めてください。
例
GETレスポンスのキャッシュを有効にする例です。API、デプロイリソース、必要なキャッシュキー設定は省略しています。
変更前
yaml
Resources:
ProdStage:
Type: AWS::ApiGateway::Stage
Properties:
StageName: Prod
RestApiId: !Ref MyRestApi
DeploymentId: !Ref MyDeployment
TracingEnabled: true
変更後
yaml
Resources:
ProdStage:
Type: AWS::ApiGateway::Stage
Properties:
StageName: Prod
RestApiId: !Ref MyRestApi
DeploymentId: !Ref MyDeployment
TracingEnabled: true
CacheClusterEnabled: true
MethodSettings:
- ResourcePath: /*
HttpMethod: GET
CachingEnabled: true