설명
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