Amazon API Gateway
개발자 안내서

API Gateway Lambda 권한 부여자를 사용하여 API 호출

Lambda 권한 부여자(이전에는 사용자 지정 권한 부여자라고 함)를 구성하고 API를 배포했으면 Lambda 권한 부여자가 활성화된 상태에서 API를 테스트해야 합니다. 이를 위해서는 REST 클라이언트(예: cURL 또는 Postman)가 필요합니다. 다음 예제에서는 Postman을 사용합니다.

참고

권한 부여자 사용 메서드를 호출할 때 지정된 Token validation expression(토큰 확인 표현식)에 필요한 TOKEN 권한 부여자가 설정되어 있지 않거나 null이거나 무효화된 경우 API Gateway에서는 CloudWatch에 대한 호출을 기록하지 않습니다. 마찬가지로 API Gateway는 REQUEST 권한 부여자에 필요한 자격 증명 원본이 하나라도 설정되지 않았거나, null이거나, 비어 있을 경우 CloudWatch에 대한 호출을 기록하지 않습니다.

다음 예제에서는 이전에 설명한 Lambda TOKEN 권한 부여자를 활성화한 상태에서 API를 호출 또는 테스트하는 방법을 설명합니다. 이 방법은 필요한 경로, 헤더 또는 쿼리 문자열 파라미터를 명시적으로 지정할 경우 Lambda REQUEST 권한 부여자를 사용해 API를 호출하는 데 적용할 수 있습니다.

사용자 지정 TOKEN 권한 부여자를 사용해 API를 호출하려면

  1. Postman을 열고 GET 메서드를 선택한 후 API의 Invoke URL(URL 호출)을 인접한 URL 필드에 붙여 넣습니다.

    Lambda 권한 부여 토큰 헤더를 추가하고 값을 allow로 설정합니다. Send(전송)를 선택합니다.

    
                        Lambda 권한 부여 허용 토큰을 사용하여 API 호출

    응답을 보면, API Gateway Lambda 권한 부여자가 200 OK 응답을 반환하고, 메서드와 통합된 HTTP 엔드포인트(http://httpbin.org/get)에 액세스할 수 있는 호출 권한을 부여함을 알 수 있습니다.

  2. Postman에 머물면서 Lambda 권한 부여 토큰 헤더 값을 deny로 변경합니다. Send(전송)를 선택합니다.

    
                        Lambda 권한 부여 거부 토큰을 사용하여 API 호출

    응답을 보면, API Gateway Lambda 권한 부여자가 403 Forbidden 응답을 반환하고, HTTP 엔드포인트에 액세스할 수 있는 호출 권한을 부여하지 않음을 알 수 있습니다.

  3. Postman에서 Lambda 권한 부여 토큰 헤더 값을 unauthorized로 변경하고 전송을 선택합니다.

    
                        Lambda 권한 부여 권한 없음 토큰을 사용하여 API 호출

    응답을 보면, API Gateway가 401 Unauthorized 응답을 반환하고, HTTP 엔드포인트에 액세스할 수 있는 호출 권한을 부여하지 않음을 알 수 있습니다.

  4. 이제 Lambda 권한 부여 토큰 헤더 값을 fail로 변경합니다. Send(전송)를 선택합니다.

    
                        Lambda 권한 부여 실패 토큰을 사용하여 API 호출

    응답을 보면, API Gateway가 500 Internal Server Error 응답을 반환하고, HTTP 엔드포인트에 액세스할 수 있는 호출 권한을 부여하지 않음을 알 수 있습니다.