Skip to content

API Gateway 403 Error, Empty URL

0

안녕하세요,

AWS API Gateway-V2 (Http)를 이용해 request를 lambda로 전달받고 있습니다. serverless.yml을 통해서 배포하고 있습니다.

여기에서 문제가 생겼는데 아래와 같습니다.

AWS 콘솔에서

Lambda > 함수 > "해당 람다 함수" > 트리거를 통해 리소스 경로와 메서드를 확인해보면 url은 {url: ""}으로 빈 스트링으로 보이고 메서드도 GET이 아닌 ANY로 설정되어 있습니다. API Gateway > API > "해당 게이트웨이"에서 확인 할 때에는 메소드와 path가 잘 설정되어 있습니다.

배포 후 외부에서 API를 호출하면 403에러가 발생하게 됩니다.

[질문]

  • 403 에러가 발생하는 원인은 무엇일까요? 제 추측상 url path가 매핑이 제대로 되어있지 않아서 그런 것으로 보이는데 맞을까요?
  • 리소스 경로에서 url이 비어있는 것과 메소드가 ANY로 되어있는 것이 문제일까요? 이것을 해결하려면 어떻게 해야할까요? serverless.yml 파일을 이용해 해결하고 싶은데 제가 놓친 부분이 있을까요?
1개 답변
0

안녕하세요. API Gateway에서 403 오류가 발생하는 문제에 대해 답변 드리겠습니다.

403 오류는 일반적으로 접근 권한 문제를 나타냅니다. 하지만 귀하의 경우, 설정 불일치로 인한 문제일 가능성이 높습니다.

  1. 403 오류의 원인:

    • URL 경로 매핑 문제가 주요 원인일 수 있습니다. Lambda 함수의 트리거 설정과 API Gateway의 설정이 일치하지 않아 발생할 수 있습니다.
    • 리소스 경로의 URL이 비어있고 메서드가 ANY로 설정된 것은 분명 문제가 될 수 있습니다.
  2. 해결 방안:

    • serverless.yml 파일을 검토하고 수정하는 것이 좋습니다. 특히 다음 부분을 확인해보세요: a) 함수 정의 부분에서 events 섹션을 올바르게 설정했는지 확인 b) http 이벤트에 대해 path와 method가 정확히 지정되어 있는지 확인
    • 예를 들어, 다음과 같이 설정할 수 있습니다:
      functions:
        yourFunction:
          handler: handler.yourHandler
          events:
            - http:
                path: your/api/path
                method: get
  3. 추가 확인 사항:

    • API Gateway의 CORS 설정을 확인하세요. CORS 설정이 잘못되어 있으면 403 오류가 발생할 수 있습니다.
    • Lambda 함수에 API Gateway에서 호출할 수 있는 권한이 있는지 확인하세요.
  4. 로깅 및 디버깅:

    • API Gateway에서 로깅을 활성화하여 요청이 어떻게 처리되고 있는지 확인하세요.
    • Lambda 함수의 로그를 확인하여 함수가 호출되고 있는지, 어떤 오류가 발생하고 있는지 확인하세요.

이러한 단계를 따라 문제를 해결해 보시기 바랍니다. 여전히 문제가 지속된다면, serverless.yml 파일의 전체 내용과 함께 더 자세한 오류 메시지를 제공해 주시면 더 구체적인 도움을 드릴 수 있을 것 같습니다.
Sources
API Gateway REST API endpoint response 403 error | AWS re:Post
API gateway gives status 200 but browser reports error 403 | AWS re:Post
Common Errors - AWS AppConfig
AWS API Gateways CORS error | AWS re:Post

답변함 5달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

관련 콘텐츠