# Recursos de segurança

[Ver no Terraform Registry](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/firewall_main_setting)

Os recursos de segurança do Azion Terraform Provider configuram o que bloqueia uma requisição antes que ela chegue à sua aplicação: proteção contra ameaças, bloqueio por geolocalização e rate limiting. O provider gerencia um [Firewall](/pt-br/documentacao/plataforma/firewall/) e as suas regras e instâncias de functions, as configurações de Web Application Firewall (WAF) e os seus [conjuntos de regras](/pt-br/documentacao/plataforma/firewall/waf/rule-sets/), e [Network Lists](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/) com seis recursos. Doze data sources leem os mesmos objetos de volta: para cada tipo de recurso, um lista os objetos e outro lê um único objeto.

---

## Recursos de segurança

| Recurso                                                                                                                                          | Descrição                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- |
| [`azion_firewall_main_setting`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/firewall_main_setting)             | Cria e gerencia as configurações principais de um firewall.                         |
| [`azion_firewall_rule_engine`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/firewall_rule_engine)               | Cria e gerencia uma regra do Rules Engine de um firewall.                           |
| [`azion_firewall_functions_instance`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/firewall_functions_instance) | Cria e gerencia uma instância de function em um firewall.                           |
| [`azion_waf`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/waf)                                                 | Cria e gerencia um WAF.                                                             |
| [`azion_waf_rule_set`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/waf_rule_set)                               | Cria e gerencia um conjunto de regras de WAF.                                       |
| [`azion_network_list`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/network_list)                               | Cria e gerencia uma network list de endereços IP e intervalos CIDR, países ou ASNs. |

`azion_firewall_main_setting` exige `name`, uma string que contém o nome do firewall, e aceita `active`, um booleano que define se o firewall está ativo. `azion_network_list` exige `name`, uma string que contém o nome da lista, e `list_type`, uma string que aceita `ip_cidr`, `countries` ou `asns`. `azion_waf_rule_set` aceita um `name`. A página de cada recurso no Terraform Registry lista todos os argumentos.

---

## Data sources

| Data source                                                                                                                                         | Descrição                                      |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| [`azion_firewall_main_settings`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/firewall_main_settings)           | Lista firewalls.                               |
| [`azion_firewall_main_setting`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/firewall_main_setting)             | Lê um firewall.                                |
| [`azion_firewall_rules_engine`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/firewall_rules_engine)             | Lista as regras do Rules Engine de firewalls.  |
| [`azion_firewall_rule_engine`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/firewall_rule_engine)               | Lê uma regra do Rules Engine de um firewall.   |
| [`azion_firewall_function_instances`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/firewall_functions_instance) | Lista as instâncias de functions de firewalls. |
| [`azion_firewall_functions_instance`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/firewall_functions_instance) | Lê uma instância de function de um firewall.   |
| [`azion_wafs`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/wafs)                                               | Lista WAFs.                                    |
| [`azion_waf`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/waf)                                                 | Lê um WAF.                                     |
| [`azion_waf_rule_sets`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/waf_rule_sets)                             | Lista conjuntos de regras de WAF.              |
| [`azion_waf_rule_set`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/waf_rule_set)                               | Lê um conjunto de regras de WAF.               |
| [`azion_network_lists`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/network_lists)                             | Lista network lists.                           |
| [`azion_network_list`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/network_list)                               | Lê uma network list.                           |

---

## Exemplo

Esta configuração fixa a versão do provider, cria uma network list de intervalos IP, um firewall ativo e um conjunto de regras de WAF, e exibe o ID do firewall em um output. Ela lê o seu personal token da variável `api_token` que [Primeiros passos com o Azion Terraform Provider](/pt-br/documentacao/devtools/terraform/getting-started/) declara.

```hcl
terraform {
  required_providers {
    azion = {
      source  = "aziontech/azion"
      version = "2.0.0"
    }
  }
}

provider "azion" {
  api_token = var.api_token
}

# Create network list for blocked IPs
resource "azion_network_list" "blocked_ips" {
  name      = "blocked-ips"
  list_type = "ip_cidr"
}

# Create firewall
resource "azion_firewall_main_setting" "my_firewall" {
  name   = "my-firewall"
  active = true

  # Link to workload/application
}

# Create WAF rule set
resource "azion_waf_rule_set" "my_waf" {
  name = "my-waf"

  # WAF configuration
}

output "firewall_id" {
  value = azion_firewall_main_setting.my_firewall.id
}
```

---

## Recursos relacionados

- [Firewall](/pt-br/documentacao/plataforma/firewall.md): A página da plataforma sobre firewalls, as suas regras e as proteções WAF, Network Shield e Bot Manager que eles executam.
- [Recursos e data sources](/pt-br/documentacao/devtools/terraform/examples.md): Todos os recursos e data sources do provider, com um exemplo por família.
- [Recursos de Applications](/pt-br/documentacao/devtools/terraform/applications.md): Os recursos que gerenciam aplicações, as suas configurações de cache, regras, device groups e instâncias de functions.
- [Migre do provider v1.x para o v2.0](/pt-br/documentacao/devtools/terraform/migration-v3-to-v4.md): Os nomes de recursos e os argumentos que mudaram entre o provider v1.x e a v2.0.
