API 게이트웨이 + HTTP 호스트 = X_forwarded_for 헤더 없음
5834 단어 apicloudflareaws
배경
REST API를 API Gateway에 배포할 때 헤더가 없는 문제
HTTP_X_FORWARDED_FOR
를 발견했습니다. 고객 IP 주소를 얻을 수 있는 방법이 없었기 때문에 보안 팀의 보안 문제였습니다.x-amazon-apigateway-integration OpenAPI extension을 활용하여 API 최종 사용자에게 제공되는 API 문서에 추가 데이터를 추가합니다.
예시
다음은 단계 변수 URL을 사용하여 내부 백엔드에 액세스하는 매우 간단한 Open API 3.0 엔드포인트의 예입니다.
/products:
summary: get all products
get:
summary: Retrieve all products
responses:
'200':
description: No issues
content:
application/json:
schema:
$ref: '#/components/schemas/products'
x-amazon-apigateway-integration:
type: http
httpMethod: GET
uri: https://${stageVariables.url}/products
requestParameters:
default:
statusCode: 200
해결책
REST API를 배포할 때 아래와 같이 x-forwarded-for 헤더를 http 엔드포인트로 전달해야 합니다.
/products:
summary: get all products
get:
summary: Retrieve all products
responses:
'200':
description: No issues
content:
application/json:
schema:
$ref: '#/components/schemas/products'
x-amazon-apigateway-integration:
type: http
httpMethod: GET
uri: https://${stageVariables.url}/products
requestParameters:
integration.request.header.x-forwarded-for: method.request.header.x-forwarded-for
default:
statusCode: 200
parameters:
- name: x-forwarded-for
in: header
required: true
schema:
type: string
다음 단계
우리의 x-amazon-API 게이트웨이 통합 문서는 계속 증가하고 있으므로 자동 배포 스크립트를 업데이트하여 이러한 일반 항목 대부분을 추가했습니다. 이는 특정 Amazon 문서 없이 문서를 깔끔하게 유지하는 데 도움이 됩니다.
현재 제품 끝점 사양의 예를 추가했습니다.
/products:
summary: get all products
get:
summary: Retrieve all products
responses:
'200':
description: No issues
content:
application/json:
schema:
$ref: '#/components/schemas/products'
Reference
이 문제에 관하여(API 게이트웨이 + HTTP 호스트 = X_forwarded_for 헤더 없음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kaspersfranz/api-gateway-http-host-no-xforwardedfor-header-4gbc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)