azure.azcollection.azure_rm_applicationfirewallpolicy module – Manage the Application firewall policy instance
Note
This module is part of the azure.azcollection collection (version 3.9.0).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install azure.azcollection.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: azure.azcollection.azure_rm_applicationfirewallpolicy.
New in azure.azcollection 3.1.0
Synopsis
- Creating, Updating or Deleting the application firewall policy instance. 
Requirements
The below requirements are needed on the host that executes this module.
- python >= 2.7 
- The host that executes this module must have the azure.azcollection collection installed via galaxy 
- All python packages listed in collection’s requirements.txt must be installed via pip on the host that executes modules from azure.azcollection 
- Full installation instructions may be found https://galaxy.ansible.com/azure/azcollection 
Parameters
| Parameter | Comments | 
|---|---|
| Active Directory username. Use when authenticating with an Active Directory user rather than service principal. | |
| Azure AD authority url. Use when authenticating with Username/password, and has your own ADFS authority. | |
| Selects an API profile to use when communicating with Azure services. Default value of  Default:  | |
| Use to control if tags field is canonical or just appends to existing tags. When canonical, any tags not found in the tags parameter will be removed from the object’s metadata. Choices: 
 | |
| Controls the source of the credentials to use for authentication. Can also be set via the  When set to  When set to  When set to  When set to  When set to  The  Choices: 
 | |
| Controls the certificate validation behavior for Azure endpoints. By default, all modules will validate the server certificate, but when an HTTPS proxy is in use, or against Azure Stack, it may be necessary to disable this behavior by passing  Choices: 
 | |
| Azure client ID. Use when authenticating with a Service Principal or Managed Identity (msi). Can also be set via the  | |
| For cloud environments other than the US public cloud, the environment name (as defined by Azure Python SDK, eg,  Default:  | |
| The custom rules inside the policy. | |
| Type of Actions. Choices: 
 | |
| List of user session identifier group by clauses. | |
| List of group by clause variables. | |
| User Session clause variable. Choices: 
 | |
| List of match conditions. | |
| Match value. | |
| List of match variables. | |
| The selector of match variable. | |
| Match Variable. Choices: 
 | |
| Whether this is negate condition or not. Choices: 
 | |
| The operator to be matched. Choices: 
 | |
| List of transforms. Choices: 
 | |
| The name of the resource that is unique within a policy. This name can be used to access the resource. | |
| Priority of the rule. Rules with a lower value will be evaluated before rules with a higher value. | |
| Duration over which Rate Limit policy will be applied. Applies only when ruleType is RateLimitRule. Choices: 
 | |
| Rate Limit threshold to apply in case ruleType is RateLimitRule. Must be greater than or equal to 1. | |
| The rule type. Choices: 
 | |
| Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. Choices: 
 | |
| Determines whether or not instance discovery is performed when attempting to authenticate. Setting this to true will completely disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to **True**, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. Set via credential file profile or the  Choices: 
 | |
| Valid Azure location. Defaults to the location of the resource group. | |
| Parent argument. | |
| Parent argument. | |
| Describes the managedRules structure. | |
| The Exclusions that are applied on the policy. | |
| The managed rule sets that are associated with the exclusion. | |
| Defines the rule groups to apply to the rule set. | |
| The managed rule group for exclusion. | |
| List of rules that will be excluded. If none specified, all rules in the group will be excluded. | |
| Identifier for the managed rule. | |
| Defines the rule set type to use. | |
| Defines the version of the rule set to use. | |
| The variable to be excluded. Choices: 
 | |
| When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. | |
| When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. Choices: 
 | |
| The managed rule sets that are associated with the policy. | |
| Defines the rule group overrides to apply to the rule set. | |
| The managed rule group to override. | |
| List of rules that will be disabled. If none specified, all rules in the group will be disabled. | |
| Describes the override action to be applied when rule matches. Choices: 
 | |
| Identifier for the managed rule. | |
| Describes the override sensitivity to be applied when rule matches. Choices: 
 | |
| The state of the managed rule. Defaults to  Choices: 
 | |
| Defines the rule set type to use. | |
| Defines the version of the rule set to use. | |
| The name of the application firewall policy’s name. | |
| Active Directory user password. Use when authenticating with an Active Directory user rather than service principal. | |
| The PolicySettings for policy. | |
| If the action type is block, customer can override the response body. The body must be specified in base64 encoding. | |
| If the action type is block, customer can override the response status code. | |
| Whether allow WAF to enforce file upload limits. Choices: 
 | |
| Maximum file upload size in Mb for WAF. | |
| Web Application Firewall JavaScript Challenge Cookie Expiration time in minutes. | |
| To scrub sensitive log fields. | |
| The rules that are applied to the logs for scrubbing. | |
| The variable to be scrubbed from the logs. Choices: 
 | |
| When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to. | |
| When matchVariable is a collection, operate on the selector to specify which elements in the collection this rule applies to. Choices: 
 | |
| Defines the state of log scrubbing rule. Choices: 
 | |
| State of the log scrubbing config. Choices: 
 | |
| Maximum request body size in Kb for WAF. | |
| The mode of the policy. Choices: 
 | |
| Whether to allow WAF to check request Body. Choices: 
 | |
| Whether allow WAF to enforce request body limits. Choices: 
 | |
| Max inspection limit in KB for request body inspection for WAF. | |
| The state of the policy. Choices: 
 | |
| Security profile found in ~/.azure/credentials file. | |
| The name of the resource group., | |
| Azure client secret. Use when authenticating with a Service Principal. | |
| Assert the state of the firewall policy. Use  Choices: 
 | |
| Your Azure subscription Id. | |
| Dictionary of string:string pairs to assign as metadata to the object. Metadata tags on the object will be updated with any provided values. To remove tags set append_tags option to false. Currently, Azure DNS zones and Traffic Manager services also don’t allow the use of spaces in the tag. Azure Front Door doesn’t support the use of Azure Automation and Azure CDN only support 15 tags on resources. | |
| Azure tenant ID. Use when authenticating with a Service Principal. | |
| The thumbprint of the private key specified in x509_certificate_path. Use when authenticating with a Service Principal. Required if x509_certificate_path is defined. | |
| Path to the X509 certificate used to create the service principal in PEM format. The certificate must be appended to the private key. Use when authenticating with a Service Principal. | 
Notes
Note
- For authentication with Azure you can pass parameters, set environment variables, use a profile stored in ~/.azure/credentials, or log in before you run your tasks or playbook with - az login.
- Authentication is also possible using a service principal or Active Directory user. 
- To authenticate via service principal, pass subscription_id, client_id, secret and tenant or set environment variables AZURE_SUBSCRIPTION_ID, AZURE_CLIENT_ID, AZURE_SECRET and AZURE_TENANT. 
- To authenticate via Active Directory user, pass ad_user and password, or set AZURE_AD_USER and AZURE_PASSWORD in the environment. 
- Alternatively, credentials can be stored in ~/.azure/credentials. This is an ini file containing a [default] section and the following keys: subscription_id, client_id, secret and tenant or subscription_id, ad_user and password. It is also possible to add additional profiles. Specify the profile by passing profile or setting AZURE_PROFILE in the environment. 
See Also
See also
- Sign in with Azure CLI
- How to authenticate using the - az logincommand.
Examples
- name: Create a new application firewall policy
  azure_rm_applicationfirewallpolicy:
    resource_group: "{{ resource_group }}"
    name: "new{{ rpfx }}02"
    location: australiasoutheast
    policy_settings:
      file_upload_enforcement: true
      file_upload_limit_in_mb: 88
      js_challenge_cookie_expiration_in_mins: 30
      max_request_body_size_in_kb: 128
      mode: Detection
      request_body_check: true
      request_body_enforcement: true
      request_body_inspect_limit_in_kb: 128
      state: Enabled
      custom_block_response_status_code: 200
      custom_block_response_body: Fredtest
      log_scrubbing:
        state: Enabled
        scrubbing_rules:
          - match_variable: RequestHeaderNames
            selector_match_operator: Equals
            selector: '*'
            state: Enabled
    custom_rules:
      - action: Block
        match_conditions:
          - match_values:
              - 10.1.0.0/24
              - 10.2.0.0/24
            match_variables:
              - variable_name: RemoteAddr
            negation_conditon: true
            operator: IPMatch
            transforms:
              - Uppercase
              - Lowercase
        name: ruledefine01
        priority: 21
        rule_type: MatchRule
        state: Enabled
      - action: Block
        group_by_user_session:
          - group_by_variables:
              - variable_name: ClientAddr
        match_conditions:
          - match_values:
              - 10.1.0.0/24
              - 10.2.0.0/24
            match_variables:
              - variable_name: RemoteAddr
            negation_conditon: false
            operator: IPMatch
        name: ruledefine02
        priority: 22
        rule_type: RateLimitRule
        rate_limit_threshold: 100
        rate_limit_duration: OneMin
        state: Enabled
    managed_rules:
      exclusions:
        - match_variable: RequestHeaderNames
          selector_match_operator: Equals
          selector: IPMatch
          exclusion_managed_rule_sets:
            - rule_set_type: Microsoft_DefaultRuleSet
              rule_set_version: 2.1
      managed_rule_sets:
        - rule_set_type: Microsoft_BotManagerRuleSet
          rule_set_version: 1.0
        - rule_set_type: Microsoft_DefaultRuleSet
          rule_set_version: 2.1
- name: Delete the application firewall policy
  azure_rm_applicationfirewallpolicy:
    resource_group: "{{ resource_group }}"
    name: firewallpolicy
    state: absent
Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Description | 
|---|---|
| A list of the application firewall policy facts Returned: always | |
| The custom rules inside the policy. Returned: when used | |
| The name of the resource that is unique within a policy. This name can be used to access the resource. Returned: always Sample:  | |
| List of match conditions. Returned: always Sample:  | |
| The name of the resource that is unique within a policy. This name can be used to access the resource. Returned: always Sample:  | |
| Priority of the rule. Rules with a lower value will be evaluated before rules with a higher value. Returned: always Sample:  | |
| The rule type. Returned: always Sample:  | |
| Describes if the custom rule is in enabled or disabled state. Returned: always Sample:  | |
| The application firewall policy’s ID. Returned: always Sample:  | |
| Location of application firewall policy. Returned: always Sample:  | |
| Describes the managedRules structure. Returned: when used | |
| The exceptions that are applied on the policy. Returned: always Sample:  | |
| The managed rule sets that are associated with the policy. Returned: always Sample:  | |
| Name of application firewall policy. Returned: always Sample:  | |
| The PolicySettings for policy. Returned: when used | |
| Whether allow WAF to enforce file upload limits. Returned: always Sample:  | |
| Maximum file upload size in Mb for WAF. Returned: always Sample:  | |
| Web Application Firewall JavaScript Challenge Cookie Expiration time in minutes. Returned: always Sample:  | |
| Maximum request body size in Kb for WAF. Returned: always Sample:  | |
| The mode of the policy. Returned: always Sample:  | |
| Whether to allow WAF to check request Body. Returned: always Sample:  | |
| Whether allow WAF to enforce request body limits. Returned: always Sample:  | |
| The state of the policy. Returned: always Sample:  | |
| Provisioning state of application firewall policy. Returned: always Sample:  | |
| Name of resource group. Returned: always Sample:  | |
| The application firewall policy tags. Returned: always Sample:  | |
| The type of the application firewall policy. Returned: always Sample:  | 
