이 포스팅에서는 AWS WAF 에서 사용하는 Rule Group 의 주요 특징과 함께 간단한 사용방법과 팁을 살펴보도록 하겠습니다.
AWS WAF 는 WebACL 을 통해 관리자가 웹 보안 설정을 적용할 수 있습니다. 그리고 이 때 WebACL 은 다양한 형태의 규칙들이 포함될 수 있는데요. 이 규칙은 크게 2가지로 나눌 수 있습니다.
첫번째, Rule 입니다. 이름 그대로 웹방화벽에 사용할 수 있는 정책을 정의하는 것으로 IP 정책이나 SQL Injection, XSS 공격과 같은 다양한 유형의 사용자 정의 규칙을 적용하는데 사용됩니다.
- WebACL 에 포함된 Rule 은 그 자체로 Priority 와 Action 을 정의할 수 있습니다.
- Rule 은 재사용되지 않습니다. 즉, 하나의 WebACL 에 사용된 Rule 은 다른 WebACL 에서 재사용될 수 없습니다. AWS IAM 서비스에 익숙하시다면 IAM 의 Inline Policy 처럼 하나의 대상에만 종속적인 개념이라고 생각하셔도 좋을 것 같습니다.
두번째, Rule Group 입니다. Rule Group 은 여러가지 Rule 을 Group 으로 모아둔 것을 말합니다. Rule Group 의 누가 생성했는지에 따라 사용자 정의 Rule Group 과 AWS Managed Rule Group, Partner Managed Rule Group 으로 나뉘게 됩니다.
Managed Rule Group 은 AWS 나 파트너가 관리하는 Rule Group 이기 때문에 관리자가 Rule Group 에 포함된 Rule 을 수정하거나 추가할 수 없지만 사용자 정의 Rule Group 은 관리자가 직접 생성하고 수정할 수 있습니다.
이와 같은 Rule 과 Rule Group 은 하나의 WebACL 에 할당되어 관리자가 지정한 Priority 에 따라 규칙을 검사하게 되는데요.
WebACL 의 규칙 검사 순서를 그림으로 나타내면 아래 그림과 같습니다.
간단하게 설명하면 Rule 에도 Priority 가 있고 Rule Group 에도 Priority 가 있어서 WebACL 은 Priority 값이 낮은 Rule 이나 Rule Group 부터 검사를 합니다. 그리고 Rule Group 내부에 있는 Rule 에도 Priority 가 있어 Rule Group 내부에서는 다시 한 번 Priority 를 기준으로 규칙 검사가 일어나게 됩니다.
조금전 이야기한 것처럼 Rule Group 은 재사용이 가능합니다. 즉, 여러 WebACL 에 공통적으로 적용해야하는 규칙들이 있다면 그 규칙들을 Rule Group 으로 모아서 생성한 후에 WebACL 에 적용하면 되는데요.
그럼 Rule Group 을 사용할 때 참고해야하는 사항은 무엇이 있을까?
- Rule Group 에는 Rule Group 기준의 WCU 가 할당됩니다.
: Rule Group 을 생성할 때는 Rule Group 에 포함할 Rule 과 함께 반드시 해당 Rule Group 의 최대 WCU 값을 지정하여야 합니다. 아래 그림과 같이 Rule Group 에는 사용자가 지정한 WCU 값이 포함되어야 하며 해당 Rule Group 에 포함되는 여러 Rule 이 소모한 모든 WCU 의 합은 지정한 WCU 를 초과할 수 없습니다.
2. Rule Group 을 생성할 때 지정한 WCU 는 수정이 불가능합니다.
: Rule Group 을 생성할 때 지정한 WCU 값은 Rule Group 이 생성된 이후에는 수정이 불가능합니다. 따라서, WCU 의 값을 수정해야하는 상황이 발생하면 Rule Group 을 재생성해야하므로 Rule Group 생성 시에는 WCU 의 값을 적절하게 계산한 후에 최대값을 입력하여야 합니다.
3. Rule Group 에 지정된 WCU 값은 사용 중인 WCU 값과 별개로 WebACL 전체 WCU 를 소모합니다.
: 예를 들어, 관리자가 1000WCU 로 설정한 Rule Group 이 있고 실제 Rule Group 에는 200WCU 만큼의 Rule 만 들어있다고 가정하겠습니다. 이 상황에서 이 Rule Group 을 WebACL 에 할당하면 WebACL 에서는 1000WCU 를 소모한 것으로 간주합니다. 즉, Rule Group 의 WCU 는 실제 사용하는 WCU 가 아닌 관리자가 설정한 WCU 최대값을 기준으로 WebACL WCU 를 소모하게 됩니다. 따라서, Rule Group 은 최대한 정교하게 Rule 을 생성하고 WCU 의 최대값이 설정되어야 합니다.
4. Rule Group 자체에 Count Mode 적용이 가능합니다.
: Rule Group 에 포함된 여러 개의 Rule 들은 개별적으로 Action 설정이 가능합니다. 여기에 추가적으로 Rule Group 단위로 Action 을 Count Mode 로 변경하는 것이 가능합니다.
이처럼 AWS WAF 의 Rule Group 은 여러 WebACL 에서 재사용 가능하다는 장점이 있지만 WCU 와 관련해서는 사전에 Rule Group 에 포함될 Rule 에 대해서 파악할 필요가 있고 각 Rule 들이 소모할 WCU 에 대해서도 정교한 설정이 요구되는 기능입니다.
이 점 참고하시어 AWS WAF 사용 시 Rule Group 을 잘 활용하시기 바랍니다.
감사합니다.