Back-End

CloudFlare Proxy IP 대역폭 보안그룹 설정

Meluu_ 2025. 11. 7. 18:20

AWS에 서버를 배포하고 Cloudflare를 리버스 프록시로 구성하였다.

이를 통해 HTTPS 통신을 가능하게하였다.

 

그런데 AWS 보안 그룹에서 IP 대역을 모든 주소로 받으니 걱정이 되었다.

따라서 최소한 CloudFlare의 트래픽만 받기위해 CloudFlare에서 제공하는 IP 대역을 보안 그룹에 인바운드 규칙에 적용하려했다.

하지만 수동으로 하긴 어렵다. 

 

따라서 AWS의 Lambda와 EventBrige를 사용하여 자동화한다.

 

1. Lambda의 최소한의 EC2 보안 그룹 접근 권한을 설정

Lambda가 AWS 내 모든 리소스에 접근하게 둘 수는 없다.

따라서 GPT의 도움을 받아 인라인으로 액세스 정책을 만든다.

 

1-1. IAM 정책으로 이동

 

1-2. 정책 생성 - (JSON) 선택

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeSecurityGroups",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Resource": "arn:aws:ec2:ap-northeast-2:[계정ID '-' 없이]:security-group/[보안그룹 명]"
        }
    ]
}

 

각 권한 설명

  • ec2:DescribeSecurityGroups             : 보안그룹 조회 권한
  • ec2:AuthorizeSecurityGroupIngress  : 인바운드 규칙 추가 권한
  • ec2:RevokeSecurityGroupIngress     : 인바운드 규칙 삭제 권한

 

보안 그룹 명

EC2에 연결된 보안 그룹의 보안 그룹 ID를 넣으면 된다.

 

 

1-3. 정책 메타 데이터 설정 후 생성

2. 역할 생성

2-1. 신뢰할 수 있는 엔티티에서 사용할 Lambda 선택 

 

2-2. 만든 정책 검색해서 체크 표

 

2-3. 역할 메타데이터 작성 후 바로 역할 생

3. 람다 함수 생성

이름 설정 후 python 선택하고 함수 생성

 

새성된 함수로 들어가면

이렇게 되있는데 여기에 GPT 가 만들어준 자동화 코드를 넣는다.

중요! Deploy를 꼭 눌러주자 

구성 - 환경 변수로 가서 3가지 환경 변수를 설정한다.

DRY_RUN은 테스트 전용, True시 실제 보안그룹 적용 X, false로 설정

보안 그룹은 ec-2의 보안그룹 ID 넣으면 된다.

권한으로 가서 실행 역할 편집

기존 역할을 위에서 만든 역할로 설정

테스트로 가서 테스트 누르기

 

성공뜨면 성공

이제 매일 새벽 4시에 자동화처리를 위해 이벤트 브릿지를 사용해보자

4. 이벤트 브릿지 설정

람다 옆에 트리거 추가를 누른다.

트리거에서 EventBridge를 선택하고 새 규칙 생성한다음 

규칙 유형을 예약 표현식으로 하고

스케줄러 cron으로 자동화 일정을 설정한다.

 

 

구성에 트리거로 가서 ENABLED면 성공

 

 

 

 

 

 

lambda를 수동으로 실행시켜 보안그룹 추가되고

클라이언트에서 정상 접근이 되는 것을 확인했다.

 

이벤트 브릿지가 정상 작동되는지는 로그를 추적하면서 확인할 예정이다. 

'Back-End' 카테고리의 다른 글

Docker 이미지 생성 및 컴포즈  (0) 2025.07.09
Docker 기본 개념  (0) 2025.07.02