Setting and Comparing Custom Header Configuration in AWS WAF and ALB

2023.04.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Introduction

When it comes to building a web application, setting custom headers can be a crucial step in securing and optimizing your application. AWS provides two services that can help you set custom headers for your web application: AWS WAF and ALB.

AWS WAF, or Web Application Firewall, is a web application firewall that helps protect your web applications from common web exploits that could affect application availability, compromise security, or consume excessive resources. It allows you to create rules that inspect the headers of incoming requests and block or allow them based on the values of those headers. AWS WAF also allows you to add custom headers to outgoing responses.

On the other hand, ALB, or Application Load Balancer, is a load balancer that routes traffic to your web application. ALB allows you to configure rules to modify the headers of incoming requests or outgoing responses. You can use the ALB's built-in rules to add or modify headers, or you can create your own custom rules.

So which service should you use to set custom headers for your web application? Let's explore the differences between AWS WAF and ALB when it comes to setting custom headers.

Custom Headers with AWS WAF

AWS WAF is primarily focused on protecting your web application from common web exploits, but it can also be used to add custom headers to outgoing responses. To set a custom header with AWS WAF, you would typically create a rule that includes an action to add the desired header.

For example, let's say you want to add a custom header called "X-Custom-Header" to all outgoing responses from your web application. Here's how you would do it with AWS WAF:

  1. Create a rule group: In the AWS WAF console, create a new rule group and add a new rule to the rule group.
  2. Add a rule action: In the rule action, select "Add a Header" and enter "X-Custom-Header" as the name of the header and a value of your choice.
  3. Associate the rule group with your web ACL: Finally, associate the rule group with your web ACL to ensure that it is applied to all requests and responses that pass through your web application.

Custom Headers with ALB

ALB allows you to add or modify headers on incoming requests or outgoing responses. To set a custom header with ALB, you would typically create a rule that includes an action to add or modify the desired header.

For example, let's say you want to add a custom header called "X-Custom-Header" to all incoming requests to your web application. Here's how you would do it with ALB:

  1. Create a rule or edit the rule: In the ALB console, create a new rule and add a new action to the rule.
  2. Add a header action: In the action, select "Insert a Header" and enter "X-Custom-Header" as the name of the header and a value of your choice.
  3. Associate the rule with your listener: Finally, associate the rule with the listener for your ALB to ensure that it is applied to all incoming requests that pass through your load balancer.

Conclusion

Both AWS WAF and ALB provide the ability to set custom headers for your web application. The choice of which service to use will depend on your specific use case and requirements. If you are primarily concerned with protecting your web application from web exploits, AWS WAF may be the better option. On the other hand, if you are primarily concerned with routing traffic to your web application and need more advanced traffic routing capabilities, ALB may be the better option.

Regardless of which service you choose, setting custom headers can be an important step in securing and optimizing your web application. With AWS WAF and ALB, you have the tools you need to easily set custom headers for your web application.

Reference:

  1. AWS WAF Developer Guide: https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html
  2. AWS WAF Rule Actions: https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-action.html
  3. AWS ALB Developer Guide: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html
  4. AWS ALB Rules: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html