

# API Gateway Lambda 권한 부여자를 사용한 API 직접 호출
<a name="call-api-with-api-gateway-lambda-authorization"></a>

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

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

 다음에서는 Postman을 사용하여 Lambda `TOKEN` 권한 부여자로 API를 호출하거나 테스트하는 방법을 보여줍니다. 이 방법은 필요한 경로, 헤더 또는 쿼리 문자열 파라미터를 명시적으로 지정할 경우 Lambda `REQUEST` 권한 부여자를 사용해 API를 호출하는 데 적용할 수 있습니다.

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

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

    Lambda 권한 부여 토큰 헤더를 추가하고 값을 `allow`로 설정합니다. **Send(전송)**를 선택합니다.  
![\[Lambda 권한 부여 허용 토큰을 사용하여 API 호출\]](http://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/images/custom-auth-call-api-with-allow-token.png)

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

1.  Postman에 머물면서 Lambda 권한 부여 토큰 헤더 값을 `deny`로 변경합니다. **Send(전송)**를 선택합니다.  
![\[Lambda 권한 부여 거부 토큰을 사용하여 API 호출\]](http://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/images/custom-auth-call-api-with-deny-token.png)

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

1.  Postman에서 Lambda 권한 부여 토큰 헤더 값을 `unauthorized`로 변경하고 **전송**을 선택합니다.  
![\[Lambda 권한 부여 권한 없음 토큰을 사용하여 API 호출\]](http://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/images/custom-auth-call-api-with-unauthorized-token.png)

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

1.  이제 Lambda 권한 부여 토큰 헤더 값을 `fail`로 변경합니다. **Send(전송)**를 선택합니다.  
![\[Lambda 권한 부여 실패 토큰을 사용하여 API 호출\]](http://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/images/custom-auth-call-api-with-fail-token.png)

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