Elastic Load Balancing(ELB)의 Application Load Balancer에서 알 수 없는 도메인 이름 관련 요청을 해결하고 싶습니다.
간략한 설명
ELB는 클라이언트 요청을 처리하는 로드 밸런서를 모니터링 및 관리합니다. 로드 밸런서 규모가 조정되면 ELB는 애플리케이션에 대한 트래픽을 기반으로 로드 밸런서의 DNS 레코드를 업데이트합니다. 이러한 업데이트를 통해 새 리소스의 IP 주소를 DNS 레코드에 등록할 수 있습니다. 또한 DNS 항목은 TTL(Time to Live) 값을 60초로 지정합니다. DNS 서비스를 사용하여 CNAME 레코드를 생성해서 로드 밸런서로 쿼리를 라우팅하는 것이 모범 사례입니다. Amazon Route 53을 사용하여 별칭 레코드 세트를 사용할 수도 있습니다. 자세한 내용은 ELB 로드 밸런서로 트래픽 라우팅을 참조하십시오.
IP 주소가 DNS에서 A 레코드로 지정되어 있거나 공개적으로 액세스할 수 있는 경우에는 HTTP 요청을 수신할 수 있습니다. HTTP 요청은 악성 소스, 봇 및 잘못된 IP 주소로 설정된 무작위 요청과 같은 인터넷상의 모든 호스트에서 받을 수 있습니다.
해결 방법
Application Load Balancer에서 알 수 없는 도메인 이름 관련 요청을 해결하려면 다음 방법 중 하나를 사용하십시오.
Application Load Balance 액세스 로그를 모니터링하고 알 수 없는 소스를 차단합니다.
인식할 수 없는 도메인에 대한 요청을 Application Load Balancer 액세스 로그에서 모니터링하려면 client:port 및 user_agent 필드를 확인하십시오. 이 필드에는 요청의 출처와 같은 자세한 요청 세부 정보가 표시됩니다.
애플리케이션이 도메인에서만 트래픽을 수신하도록 하려면 호스트 헤더 리스너 규칙을 사용하십시오. 이 규칙을 사용하면, 클라이언트 요청 호스트 헤더와 일치하는 리스너 규칙이 없는 경우 기본 리스너 규칙을 적용합니다.
또한 즉각적인 해결을 위해 알 수 없는 도메인에 대한 요청을 생성하는 클라이언트 IP 주소를 차단하십시오. 네트워크 액세스 제어 목록(ACL)에서 IP 주소를 차단했는지 확인하십시오.
AWS WAF 사용
AWS WAF와 통합하면 사용자가 구성하는 지정 도메인에 대한 요청이 Application Load Balancer 대상으로 라우팅됩니다. AWS WAF와 통합하려면 다음 단계를 완료하십시오.
- 웹 ACL을 생성합니다.
- Application Load Balancer에 웹 ACL을 연결합니다.
- AWS WAF 콘솔을 엽니다.
- Add rules and rule groups(규칙 및 규칙 그룹 추가) 페이지에서 Add rules(규칙 추가) > Add my own rules and rule groups(내 규칙 및 규칙 그룹 추가) > Rule builder(규칙 빌더) > **Rule visual editor(규칙 비주얼 편집기)**를 선택합니다.
- **Name(이름)**에는 이 규칙을 식별하기 위해 사용할 이름을 입력합니다.
- **Type(유형)**에서는 **Regular rule(일반 규칙)**을 선택합니다.
- **If a request(요청이 있는 경우)**에서는 **doesn't match the statement (NOT)(문과 일치하지 않음(NOT))**를 선택합니다.
- **Statement(문)**에서는 **Inspect(검사)**에 대한 드롭다운 목록을 선택한 다음 **Single Header(단일 헤더)**를 선택합니다. **Header(헤더)**를 선택할 때 AWS WAF에서 검사하려는 헤더로 **host(호스트)**를 지정합니다.
- **Match type(일치 유형)**에서 **Matches regular expression(정규식 일치)**을 선택합니다. 이에 따라 AWS WAF는 요청 구성 요소를 단일 정규 표현식(regex)에 일치시킬 수 있습니다.
- **Regular expression(정규식)**에서 AWS WAF에서 검색할 문자열을 지정합니다. 예를 들어, **^.*example.com$|^.*test.com$**를 입력합니다. AWS WAF는 사용자가 지정한 정규 표현식 값에 대한 웹 요청 호스트 헤더를 검사합니다.
- **Text transformation(텍스트 변환)**은 **None(없음)**으로 설정합니다.
- **Action(작업)**에서는 규칙이 웹 요청과 일치할 경우에 수행하려는 작업을 선택합니다. 예를 들어 **Block(차단)**을 선택하고 다른 선택 항목은 그대로 둡니다.
- 규칙 추가를 선택합니다.
AWS Network Firewall을 사용하여 알 수 없는 도메인 이름을 포함한 요청을 차단합니다.
Network Firewall은 도메인 이름 상태 저장 네트워크 트래픽 검사를 지원합니다. 상태 저장 규칙 엔진이 네트워크 트래픽에서 찾는 도메인 이름으로 허용 목록 및 거부 목록을 생성할 수 있습니다. 도메인 **allowlist(허용 목록)**를 사용하면 방화벽이 HTTP 또는 HTTPS 요청을 지정된 도메인으로만 전달하고, 지정되지 않은 도메인에 대한 요청은 삭제합니다.
Network Firewall을 사용하여 알 수 없는 도메인 이름을 포함한 요청을 차단하려면, 특정 도메인을 차단하거나 허용하려면 Network Firewall 규칙을 어떻게 구성해야 합니까?를 참조하십시오.
남용 신고
AWS 리소스가 남용되었거나 불법적인 목적으로 사용된 것으로 의심되는 경우에는 Amazon AWS 남용 신고 양식을 사용하십시오. 악의적인 활동을 보여주는 네트워크 로그를 제공해야 하며 소스, 대상 IP 주소, 포트 및 타임스탬프를 포함해야 합니다. 자세한 내용은 AWS 리소스 남용을 신고하려면 어떻게 해야 합니까?를 참조하십시오.
관련 정보
Classic Load Balancer에 대한 사용자 지정 도메인 이름 구성