Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 1 addition & 30 deletions roles/aws/aws_acl/tasks/create_acl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
33 changes: 33 additions & 0 deletions roles/aws/aws_acl/tasks/rate_limit.yml
Original file line number Diff line number Diff line change
@@ -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] }}"