diff --git a/roles/aws/aws_acl/tasks/create_acl.yml b/roles/aws/aws_acl/tasks/create_acl.yml index 431334714..8b1f1db36 100644 --- a/roles/aws/aws_acl/tasks/create_acl.yml +++ b/roles/aws/aws_acl/tasks/create_acl.yml @@ -26,39 +26,10 @@ loop_var: _cc_set - name: Set rate limit variable. + ansible.builtin.include_tasks: rate_limit.yml when: - _acl.rules.rate_limit is defined - _acl.rules.rate_limit.value > 0 - block: - - name: Set rate based statement from template - ansible.builtin.set_fact: - _rbs: "{{ lookup('ansible.builtin.template', './rate_limit.j2') | from_yaml }}" - - - name: Define rate rule. - ansible.builtin.set_fact: - rate_rule: - name: Rate_limit - action: - block: {} - visibility_config: - sampled_requests_enabled: true - cloud_watch_metrics_enabled: true - metric_name: rate_limit - Statement: - rate_based_statement: "{{ _rbs }}" - - - name: Set priority. - ansible.builtin.include_tasks: set_priority_dict.yml - vars: - _priority: "{{ _acl.rules.rate_limit.priority }}" - - - name: Append priority to rule. - ansible.builtin.set_fact: - rate_rule: "{{ rate_rule | combine(_priority_dict) }}" - - - name: Add rule to list. - ansible.builtin.set_fact: - _rules: "{{ _rules + [rate_rule] }}" - name: Create Bot Control rule. ansible.builtin.include_tasks: bot_control.yml diff --git a/roles/aws/aws_acl/tasks/rate_limit.yml b/roles/aws/aws_acl/tasks/rate_limit.yml new file mode 100644 index 000000000..a029db535 --- /dev/null +++ b/roles/aws/aws_acl/tasks/rate_limit.yml @@ -0,0 +1,33 @@ +--- +- name: Set rate based statement from template + ansible.builtin.set_fact: + _rbs: "{{ lookup('ansible.builtin.template', './rate_limit.j2') | from_yaml }}" + +- name: Set action statement + ansible.builtin.set_fact: + _action: "{ {{ _acl.rules.rate_limit.action | default('block') }}: {} }" + +- name: Define rate rule. + ansible.builtin.set_fact: + rate_rule: + name: "{{ _acl.rules.rate_limit.name | default('rate_limit') }}" + action: "{{ _action | from_yaml }}" + visibility_config: + sampled_requests_enabled: true + cloud_watch_metrics_enabled: true + metric_name: "{{ _acl.rules.rate_limit.name | default('rate_limit') }}" + Statement: + rate_based_statement: "{{ _rbs }}" + +- name: Set priority. + ansible.builtin.include_tasks: set_priority_dict.yml + vars: + _priority: "{{ _acl.rules.rate_limit.priority }}" + +- name: Append priority to rule. + ansible.builtin.set_fact: + rate_rule: "{{ rate_rule | combine(_priority_dict) }}" + +- name: Add rule to list. + ansible.builtin.set_fact: + _rules: "{{ _rules + [rate_rule] }}"