

# Lambda 함수에 다른 계정의 Amazon VPC에 있는 리소스에 대한 액세스 권한 부여
<a name="configuration-vpc-cross-account"></a>

다른 계정에서 관리하는 Amazon Virtual Private Cloud의 Amazon VPC에 있는 리소스에 대한 액세스 권한을 AWS Lambda 함수에 부여하면, 두 VPC 중 어느 쪽도 인터넷에 노출되지 않습니다. 이 액세스 패턴을 사용하면 AWS를 사용하는 다른 조직과 데이터를 공유할 수 있습니다. 이 액세스 패턴을 사용하면 인터넷보다 더 높은 수준의 보안과 성능으로 VPC 간에 데이터를 공유할 수 있습니다. 이러한 리소스에 액세스하기 위해 Amazon VPC 피어링 연결을 사용하도록 Lambda 함수를 구성하세요.

**주의**  
계정 또는 VPC 간 액세스를 허용할 때는 플랜이 해당 계정을 관리하는 각 조직의 보안 요구 사항을 충족하는지 확인하세요. 이 문서의 지침을 따르면 리소스의 보안 태세에 영향을 미칠 수 있습니다.

이 자습서에서는 IPv4를 사용하여 두 개의 계정을 피어링 연결로 연결합니다. Amazon VPC에 아직 연결되지 않은 Lambda 함수를 구성합니다. 고정 IP를 제공하지 않는 리소스에 함수를 연결하도록 DNS 확인을 구성합니다. 이 지침을 다른 피어링 시나리오에 적용하려면 [VPC 피어링 설명서](https://docs.aws.amazon.com//vpc/latest/peering/what-is-vpc-peering.html)를 참조하세요.

## 사전 조건
<a name="w2aac15c43c67b9"></a>

Lambda 함수에 다른 계정의 리소스에 대한 액세스 권한을 부여하려면 다음이 필요합니다.
+ 리소스로 인증한 다음 리소스에서 읽도록 구성된 Lambda 함수
+ Amazon VPC를 통해 사용할 수 있는 다른 계정의 리소스(예: Amazon RDS 클러스터)
+ Lambda 함수 계정 및 리소스 계정의 자격 증명. 리소스 계정을 사용할 권한이 없는 경우 승인된 사용자에게 문의하여 해당 계정을 준비하세요.
+ Lambda 함수와 연결할 VPC와 지원하는 Amazon VPC 리소스를 생성하고 업데이트할 수 있는 권한
+ Lambda 함수의 실행 역할과 VPC 구성을 업데이트할 수 있는 권한
+ Lambda 함수의 계정에서 VPC 피어링 연결을 생성할 수 있는 권한
+ 리소스 계정의 VPC 피어링 연결을 수락할 수 있는 권한
+ 리소스의 VPC와 지원하는 Amazon VPC 리소스의 구성을 업데이트할 수 있는 권한
+ Lambda 함수를 간접적으로 간접 호출할 수 있는 권한입니다.

## 함수의 계정에서 Amazon VPC 생성
<a name="w2aac15c43c67c11"></a>

Lambda 함수의 계정에서 Amazon VPC, 서브넷, 라우팅 테이블 및 보안 그룹을 생성합니다.

**콘솔을 사용하여 VPC, 서브넷 및 기타 VPC 리소스를 생성하려면**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. 대시보드에서 **VPC 생성**을 선택합니다.

1. **IPv4 CIDR 블록**에 프라이빗 CIDR 블록을 제공합니다. CIDR 블록은 리소스의 VPC에 사용되는 블록과 겹치지 않아야 합니다. 리소스의 VPC가 리소스에 IP를 할당하는 데 사용하는 블록이나 리소스 VPC의 라우팅 테이블에 이미 정의된 블록은 선택하지 마세요. 적절한 CIDR 블록을 정의하는 방법에 대한 자세한 내용은 [VPC CIDR 블록](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html)을 참조하세요.

1. **AZ 사용자 지정**을 선택합니다.

1. 리소스와 동일한 AZ를 선택합니다.

1. **퍼블릭 서브넷 수**로 **0**을 선택합니다.

1. **VPC 엔드포인트**는 **없음**을 선택합니다.

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

## 함수의 실행 역할에 VPC 권한 부여
<a name="w2aac15c43c67c13"></a>

함수의 실행 역할에 [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html)을 연결하여 VPC에 연결할 수 있도록 허용합니다.

**함수의 실행 역할에 VPC 권한을 부여하려면 다음을 수행하세요.**

1. Lambda 콘솔의 [함수 페이지](https://console.aws.amazon.com/lambda/home#/functions)를 엽니다.

1. 함수의 이름을 선택합니다.

1. **구성**을 선택합니다.

1. **권한**을 선택합니다.

1. **역할 이름**에서 실행 역할을 선택합니다.

1. **권한 정책** 섹션에서 **권한 추가**를 선택합니다.

1. 드롭다운 목록에서 **정책 연결**을 선택합니다.

1. 검색 상자에 `AWSLambdaVPCAccessExecutionRole`을(를) 입력합니다.

1. 정책 이름 왼쪽에서 확인란을 선택합니다.

1. **권한 추가**를 선택합니다.

**Amazon VPC에 함수를 연결하려면 다음을 수행하세요.**

1. Lambda 콘솔의 [함수 페이지](https://console.aws.amazon.com/lambda/home#/functions)를 엽니다.

1. 함수의 이름을 선택합니다.

1. **구성** 탭을 선택한 다음 **VPC**를 선택합니다.

1. **편집**을 선택합니다.

1. **VPC**에서 사용자의 VPC를 선택합니다.

1. **서브넷**에서 사용자의 서브넷을 선택합니다.

1. **보안 그룹**에서 사용자 VPC의 기본 보안 그룹을 선택합니다.

1. **저장**을 선택합니다.

## VPC 피어링 연결 요청 생성
<a name="w2aac15c43c67c17"></a>

함수의 VPC(요청자 VPC)에서 리소스의 VPC(수락자 VPC)로 VPC 피어링 연결 요청을 생성합니다.

**함수의 VPC에서 VPC 피어링 연결을 요청하려면 다음을 수행하세요.**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)를 엽니다.

1. 탐색 창에서 **Peering connections**를 선택합니다.

1. **Create peering connection**(피어링 연결 생성)을 선택합니다.

1. **VPC ID(요청자)**에서 함수의 VPC를 선택합니다.

1. **계정 ID**에 리소스 계정의 ID를 입력합니다.

1. **VPC ID(수락자)**에 리소스의 VPC를 입력합니다.

## 리소스 계정 준비
<a name="w2aac15c43c67c19"></a>

피어링 연결을 생성하고 리소스의 VPC가 연결을 사용하도록 준비하려면 사전 요구 사항에 나열된 권한을 보유하는 역할로 리소스 계정에 로그인합니다. 로그인 단계는 계정 보안 방법에 따라 다를 수 있습니다. AWS 계정에 로그인하는 방법에 대한 자세한 내용은 [AWS Sign-in User Guide](https://docs.aws.amazon.com//signin/latest/userguide/what-is-sign-in.html)를 참조하세요. 리소스 계정에서 다음 절차를 수행하세요.

**VPC 피어링 연결 요청을 수락하려면 다음을 수행하세요.**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)를 엽니다.

1. 탐색 창에서 **Peering connections**를 선택합니다.

1. 보류 중인 VPC 피어링 연결(상태는 수락 대기 중)을 선택합니다.

1. **작업**을 선택합니다.

1. 드롭다운 목록에서 **요청 수락**을 선택합니다.

1. 확인 메시지가 나타나면 **요청 수락**을 선택합니다.

1. 피어링 연결을 통해 트래픽을 보내고 받을 수 있도록 VPC의 기본 경로 테이블에 대한 경로를 추가하려면 **지금 내 라우팅 테이블 수정**을 선택합니다.

리소스의 VPC에 대한 라우팅 테이블을 검사합니다. Amazon VPC에서 생성된 경로는 리소스의 VPC가 설정된 방식에 따라 연결이 설정되지 않을 수 있습니다. 새 경로와 VPC의 기존 구성 간에 충돌이 있는지 확인합니다. 문제 해결에 대한 자세한 내용은 *Amazon Virtual Private Cloud VPC 피어링 설명서*의 [VPC 피어링 연결 문제 해결](https://docs.aws.amazon.com/vpc/latest/peering/troubleshoot-vpc-peering-connections.html)을 참조하세요.

**리소스의 보안 그룹을 업데이트하려면 다음을 수행하세요.**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)를 엽니다.

1. 탐색 창에서 **Security groups**를 선택합니다.

1. 리소스에 대한 보안 그룹을 선택합니다.

1. **작업**을 선택합니다.

1. 드롭다운 목록에서 **인바운드 규칙 편집**을 선택합니다.

1. **규칙 추가**를 선택합니다.

1. **소스**에 함수의 계정 ID와 보안 그룹 ID를 슬래시로 구분하여 입력합니다(예: 111122223333/sg-1a2b3c4d).

1. **아웃바운드 규칙 편집**을 선택합니다.

1. 아웃바운드 트래픽이 제한되는지 확인합니다. 기본 VPC 설정은 모든 아웃바운드 트래픽을 허용합니다. 아웃바운드 트래픽이 제한되면 다음 단계로 계속 진행합니다.

1. **규칙 추가**를 선택합니다.

1. **대상**에 함수의 계정 ID와 보안 그룹 ID를 슬래시로 구분하여 입력합니다(예: 111122223333/sg-1a2b3c4d).

1. **규칙 저장**을 선택합니다.

**피어링 연결에 대한 DNS 확인을 활성화하려면 다음을 수행하세요.**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)를 엽니다.

1. 탐색 창에서 **Peering connections**를 선택합니다.

1. 피어링 연결을 선택합니다.

1. **작업**을 선택합니다.

1. **DNS 설정 편집**을 선택합니다.

1. **수락자 DNS 확인** 아래에서 **요청자 VPC가 수락자 VPC 호스트의 DNS를 프라이빗 IP로 확인하도록 허용**을 선택합니다.

1. **변경 사항 저장**을 선택합니다.

## 함수의 계정에서 VPC 구성 업데이트
<a name="w2aac15c43c67c21"></a>

함수 계정에 로그인한 다음 VPC 구성을 업데이트합니다.

**VPC 피어링 연결을 위한 경로를 추가하려면 다음을 수행하세요.**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)를 엽니다.

1. 탐색 창에서 **Route tables**을 선택합니다.

1. 함수와 연결된 서브넷에 대한 라우팅 테이블 이름 옆의 확인란을 선택합니다.

1. **작업**을 선택합니다.

1. **라우팅 편집(Edit routes)**을 선택합니다.

1. **경로 추가**를 선택합니다.

1. **대상**에 리소스 VPC의 CIDR 블록을 입력합니다.

1. **대상**에서 VPC 피어링 연결을 선택합니다.

1. **변경 사항 저장**을 선택합니다.

라우팅 테이블을 업데이트하는 동안 발생할 수 있는 고려 사항에 대한 자세한 내용은 [VPC 피어링 연결을 위한 라우팅 테이블 업데이트](https://docs.aws.amazon.com//vpc/latest/peering/vpc-peering-routing.html)를 참조하세요.

**Lambda 함수의 보안 그룹을 업데이트하려면 다음을 수행하세요.**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)를 엽니다.

1. 탐색 창에서 **Security groups**를 선택합니다.

1. **작업**을 선택합니다.

1. **인바운드 규칙 편집**을 선택합니다.

1. **규칙 추가**를 선택합니다.

1. **소스**에 리소스의 계정 ID와 보안 그룹 ID를 슬래시로 구분하여 입력합니다(예: 111122223333/sg-1a2b3c4d).

1. **규칙 저장**을 선택합니다.

**피어링 연결에 대한 DNS 확인을 활성화하려면 다음을 수행하세요.**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)를 엽니다.

1. 탐색 창에서 **Peering connections**를 선택합니다.

1. 피어링 연결을 선택합니다.

1. **작업**을 선택합니다.

1. **DNS 설정 편집**을 선택합니다.

1. **요청자 DNS 확인** 아래에서 **수락자 VPC가 요청자 VPC 호스트의 DNS를 프라이빗 IP로 확인하도록 허용**을 선택합니다.

1. **변경 사항 저장**을 선택합니다.

## 함수 테스트
<a name="w2aac15c43c67c23"></a>

**테스트 이벤트를 생성하여 함수의 출력을 검사하려면 다음을 수행하세요.**

1. **코드 소스** 창에서 **테스트**를 선택합니다.

1. **새 이벤트 생성**을 선택합니다.

1. **이벤트 JSON** 패널에서 기본값을 Lambda 함수에 적합한 입력으로 교체합니다.

1. ** 간접 호출**를 선택합니다.

1. **실행 결과** 탭에서 **응답**에 예상 출력이 포함되어 있는지 확인합니다.

또한 함수의 로그를 확인하여 로그가 예상과 일치하는지 확인할 수 있습니다.

**CloudWatch Logs에서 함수의 간접 호출 레코드 보기**

1. **모니터링** 탭을 선택합니다.

1. **CloudWatch 로그 보기**를 선택합니다.

1. **로그 스트림** 탭에서 함수의 간접 호출에 대한 로그 스트림을 선택합니다.

1. 로그가 예상과 일치하는지 확인합니다.