

# 자습서: 교차 계정 Lambda 프록시 통합을 통해 REST API 생성
<a name="apigateway-cross-account-lambda-integrations"></a>

이제는 다른 AWS Lambda 계정의 AWS 함수도 API 통합 백엔드로 사용할 수 있습니다. 각 계정은 Amazon API Gateway를 사용할 수 있는 모든 리전에 존재할 수 있습니다. 따라서 여러 API에 대해 Lambda 백엔드 함수를 중앙에서 손쉽게 관리 및 공유할 수 있습니다.

이 단원에서는 Amazon API Gateway 콘솔을 사용하여 교차 계정 Lambda 프록시 통합을 구성하는 방법을 보여줍니다.

## API Gateway 교차 계정 Lambda 통합을 위한 API 생성
<a name="apigateway-cross-account-lambda-integrations-create-api"></a>

**API를 생성하려면**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)에서 API Gateway 콘솔에 로그인합니다.

1. API Gateway를 처음 사용하는 경우, 서비스의 기능을 소개하는 페이지가 나타납니다. **REST API**에서 **빌드**를 선택합니다. **예제 API 생성** 팝업이 나타나면 **확인**을 선택합니다.

   API Gateway를 처음 사용하는 것이 아닌 경우 **API 생성**을 선택합니다. **REST API**에서 **빌드**를 선택합니다.

1.  **API 이름**에서 **CrossAccountLambdaAPI**을 입력합니다.

1. (선택 사항) **설명**에 설명을 입력합니다.

1. **API 엔드포인트 유형** 설정을 **지역**으로 유지합니다.

1. **IP 주소 유형**에서 **IPv4**를 선택합니다.

1. **API 생성**을 선택합니다.

## 다른 계정으로 Lambda 통합 함수 생성
<a name="apigateway-cross-account-lambda-integrations-create-lambda-function"></a>

이제, 예제 API를 생성한 환경에서 다른 계정으로 Lambda 함수를 만들어 보겠습니다.

**다른 계정으로 Lambda 함수 생성**

1. API Gateway API를 생성한 환경에서 다른 계정으로 Lambda 콘솔에 로그인합니다.

1. **함수 생성**을 선택합니다.

1. **새로 작성**을 선택합니다.

1. **새로 작성**에서 다음 작업을 수행합니다.

   1. **함수 이름**에 이름을 입력합니다.

   1. **런타임** 드롭다운 목록에서 지원되는 Node.js 런타임을 선택합니다.

   1. **아키텍처**의 경우 기본 설정을 유지합니다.

   1. **권한**에서 **실행 역할 선택 또는 생성**을 확장합니다. 역할을 만들거나 기존 역할을 선택할 수 있습니다.

   1. **함수 생성**을 선택하여 계속 진행합니다.

1. 아래로 스크롤하여 **함수 코드(Function code)** 창을 찾습니다.

1. [자습서: Lambda 프록시 통합을 통해 REST API 생성](api-gateway-create-api-as-simple-proxy-for-lambda.md)에서 Node.js 함수 구현을 입력합니다.

1. [**Deploy**]를 선택합니다.

1. 함수의 정식 ARN을 기록해 둡니다(Lambda 함수 창의 오른쪽 위에). 이것은 나중에 교차 계정 Lambda 통합을 생성할 때 필요합니다.

## 교차 계정 Lambda 통합 구성
<a name="apigateway-cross-account-lambda-integrations-create-integration2"></a>

다른 계정으로 Lambda 통합 함수를 생성하면 API Gateway 콘솔을 사용하여 이를 첫 번째 계정의 API에 추가할 수 있습니다.

**참고**  
교차 리전, 교차 계정 권한 부여자를 구성할 때 대상 함수에 추가된 `sourceArn`은 API의 리전이 아닌 함수에 포함된 리전을 사용합니다.

API를 생성한 후에는 리소스를 생성합니다. 일반적으로 API 리소스는 애플리케이션 로직에 따른 리소스 트리로 정리되어 있습니다. 이 예시에서는 **/helloworld** 리소스를 생성합니다.

**리소스를 생성하려면**

1. **리소스 생성**을 선택합니다.

1. **프록시 리소스**는 꺼진 상태로 둡니다.

1. **리소스 경로**를 `/`로 유지합니다.

1. **리소스 이름**에 **helloworld**을 입력합니다.

1. **오리진 간 리소스 공유(CORS)**를 꺼진 상태로 둡니다.

1. **리소스 생성**을 선택합니다.

리소스를 생성한 후 `GET` 메서드를 생성합니다. 다른 계정으로 Lambda 함수와 `GET` 메서드를 통합합니다.

**`GET` 메서드를 생성하는 방법**

1. **/helloworld** 리소스를 선택한 다음 **메서드 생성**을 선택합니다.

1. **메서드 유형**에서 **GET**을 선택합니다.

1. **통합 유형**에서 **Lambda 함수**를 선택합니다.

1. **Lambda 프록시 통합**을 켭니다.

1. **Lambda** 함수에, 1단계에서 입력한 Lambda 함수의 전체 ARN을 입력합니다.

   Lambda 콘솔 창의 오른쪽 위 모서리에서 함수의 ARN을 찾을 수 있습니다.

1. ARN을 입력하면 `aws lambda add-permission` 명령 문자열이 나타납니다. 이 정책은 첫 번째 계정이 두 번째 계정의 Lambda 함수에 액세스할 수 있는 권한을 부여합니다. `aws lambda add-permission` 명령 문자열을 복사해 두 번째 계정에 대해 구성된 AWS CLI 창에 붙여 넣습니다.

1. **메서드 생성**을 선택합니다.

Lambda 콘솔에서 함수에 대해 업데이트된 정책을 확인할 수 있습니다.

**(선택 사항) 업데이트된 정책을 보려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)에서 AWS Lambda 콘솔을 엽니다.

1. Lambda 함수를 선택합니다.

1. **Permissions**를 선택합니다.

   `Allow`이 API `Condition` 메서드에 대한 ARN인 `AWS:SourceArn` 절이 포함된 `GET` 정책이 표시되어야 합니다.