AWS Lambda에서 사용하고 있는 함수중에
Private Subnet에 있는 RDS에 접근해야 되는 일이 생겨서 수행했던 내용을 기록하고자 글을 작성했습니다.
Lambda 함수에 연결해줄 보안 그룹 생성
우선은 다음과 같이 RDS에 접근하고자 하는 람다 함수에 대한 보안 그룹을 생성해줍니다.
VPC는 당연히 접근하고자 하는 RDS가 속해있는 VPC로 선택해줍니다.
이후 위 사진처럼
인바운드는 규칙없이, 아웃바운드는 Default로 설정되어있는 기존 규칙을 유지하며 보안그룹을 설정해줍니다.
Lambda 함수 설정
정책 추가
람다에서 연결하고자 하는 함수의 페이지로 진입하여
구성 > 권한을 클릭해서 권한을 수정해줘야합니다.
정책 연결을 누르거나 인라인 정책을 통해서 원하는 부분만 직접 설정할 수 있는데,
저는 정책 연결을 통해 "AWSLambdaVPCAccessExecutionRole"을 추가하였습니다.
인라인 정책을 사용하려면 아래 내용을 추가해주면됩니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeNetworkInterfaces",
"ec2:CreateNetworkInterface",
"ec2:DeleteNetworkInterface",
],
"Resource": "*"
}
]
}
자세한 내용은 아래 참고
Resource handler returned message: "The provided execution role does not have permissions to call CreateNetworkInterface on EC2
I've tried these approaches but I still get the error "The provided execution role does not have permissions to call CreateNetworkInterface on EC2 (Service: Lambda, Status Code: 400" And if I use t...
repost.aws
이와 같은 작업을 하지 않으면, 다음에 진행할 VPC 편집에서 저장 버튼 클릭시 아래와 같은 오류가 발생합니다.
- The provided execution role does not have permissions to call CreateNetworkInterface on EC2
VPC 편집
이후 람다에서 연결하고자 하는 함수의 페이지로 진입하여
구성 > VPC > 편집을 눌러줍니다.
VPC 편집에서 다음과 같이 설정하고 저장해줍니다.
- VPC : RDS에서 사용하고 있는 같은 VPC로 선택
- 서브넷 : RDS에서 설정한 서브넷과 동일하게 구성
- 보안그룹 : 맨 처음 새로 만든 보안그룹으로 설정
RDS에 연결된 보안그룹 수정
마지막으로 RDS에 연결된 보안 그룹을 맨 처음에 생성한 람다 함수가 사용하는 보안그룹과 연결해주면 됩니다.
이렇게 하면 특정 람다 함수에서 Private Subnet에 위치한 RDS에 연결할 수 있게 됩니다.
'AWS' 카테고리의 다른 글
[AWS] MSK 클러스터에 프로메테우스와 그라파나를 활용한 모니터링 연동하기 (0) | 2024.09.22 |
---|---|
[AWS] MSK로 Apache Kafka 환경 구축하기 (0) | 2024.09.22 |
[AWS] ElastiCache로 Redis 클러스터 모드 생성 및 적용해보기 (0) | 2024.08.17 |
[AWS] IAM 개념 및 IAM 사용자 추가하기 + IAM 정책 시뮬레이터 (0) | 2024.06.18 |