본문 바로가기
  • ANALOG CODE
  • AnalogCode
개발

AWS ALB(Application Load Balancer) - IP로 웹사이트 접근 막기

by 아날로그코더 2023. 3. 20.
반응형

웹사이트를 오픈하고 구글 SEO도 적용하고 시간이 조금 지나서 구글에 검색이 되나 확인해보니까 검색결과에 도메인이 아닌 ip주소로 나오는 걸 보았다. 생각해보니 IP로 접근하면 SSL 인증서 에러가 나지만 웹서버로 접근이 가능하다는 걸 깨닫고 AWS에서 들어가서 수정하였다.

 

일단 구글 검색결과에 왜 ip 주소로 노출이 되었는지는 모르겠다. 분명히 구글써치콘솔에도 도메인으로 등록을 해놨고 구글 크롤링봇이 IP로 크롤링을 하지는 않을거 같은데 이유는 구글만 알 것 같다. 하지만 중요한건 검색결과가 어쨌든간에 IP로의 접근을 차단하고 싶다는 것이다.

ALB (Application Load Balancer)

AWS의 ALB를 통해 로드밸런싱을 하고 있다. ALB 설정을 이용하여 웹사이트 IP로 들어오는 요청을 막아보자.

 

1. EC2 - Load Balancer 로 가서 변경할 로드밸런서를 선택하여 들어간다.

   아래와 같은 Listeners가 보일것이다.

 

현재 80으로 오는 요청은 모두 443 포트로 redirect 해주고 있다.

그래서 HTTPS:443 에서 처리해주면 된다. HTTPS:443을 클릭하여 준다.

 

2. 새창으로 Listener 설정이 뜬다. 

   Rules 탭을 클릭한다. 

 

 

3. Listener Rule 수정

그럼 아래와 같이 내가 설정한 Rules 리스트가 나온다. 이것을 수정하기 위해 Manager rules 버튼을 누른다.

 

 

4. 규칙 수정

도메인을 example.com이라고 하자. 그럼 아래와 같이 수정했다.

수정후

1 api.example.com THEN
다음으로 전달: {api-target-group}
2 example.com THEN
다음으로 전달: {target-group}
마지막 
HTTPS 443: 기본작업
요청 시에만 라우팅 1. 고정 응답 반환 404

 

 

수정전

1 api.example.com THEN
다음으로 전달: {api-target-group} 
2 example.com THEN
다음으로 전달: {target-group}
마지막 
HTTPS 443: 기본작업
요청 시에만 라우팅 THEN
다음으로 전달: {target-group}

 

수정전을 보면 마지막 규칙이  {taget-group} 으로 전달하게 되어 있었다.

ip로 접근을 하면 위의 2개의 규칙에 해당이 안되므로 마지막 규칙을 따라가서 {target-group}으로 전달이 되는 것이었다.

 

그래서 https://xxx.xxx.xxx.xxx 이런식으로 요청이 오더라도 {target-group}으로 전달되서 웹사이트로 접근이 가능했던 것이다.

 

이것을 고정 응답 반환으로 해서 404 에러를 주게 변경하였다.

이제 example.com 도메인 외에 IP 및 다른 경로로 접근을 하면 ALB 에서 막히게 된다.

 

 

반응형

댓글