---
name: azion-proteja-um-caminho-com-uma-network-list
description: >-
  Negue os endereços de uma network list em um caminho, como /admin, e mantenha os demais abertos, com uma regra de firewall no Azion Console, na CLI ou na API.
---

# Proteja um caminho com uma network list

Você pode negar endereços listados em um caminho, `/admin`, pelo Azion Console, pela [Azion CLI](/pt-br/documentacao/devtools/cli/) ou pela API. Todos os outros caminhos do workload continuam abertos a esses endereços. Uma regra de [firewall](/pt-br/documentacao/plataforma/firewall/) encadeia dois critérios: *Network* compara o endereço do cliente com uma [network list](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/) `ip_cidr`, e *Request Uri* compara o caminho. Use esta regra para manter alguns endereços fora de uma área de administração, de um formulário de login ou de uma rota de API. Ela também permite que você teste uma lista em um caminho antes que uma regra aplique a lista a toda requisição. Para negar endereços listados em todos os caminhos, e não em um só, consulte [Bloqueie requisições por IP, ASN ou país](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/blocklists-enderecos-ip-edge/).

---

Selecione a interface em que você trabalha. Os pré-requisitos e todas as tarefas desta página mudam para corresponder a ela.

## Pré-requisitos

- Um [workload](/pt-br/documentacao/plataforma/workloads/) vinculado a um firewall pelo deployment dele. Esse firewall recebe a regra que você cria neste guia.
- [Network Shield](/pt-br/documentacao/plataforma/firewall/#network-shield) ativado para esse firewall. Network Shield vem ativado por padrão quando um firewall é criado. Para ativá-lo, consulte [Defina as configurações principais de um firewall](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/firewall-definir-main-settings/).

**Console**

- Acesso ao [Azion Console](https://console.azion.com/).

**CLI**

- Azion CLI, instalada e configurada com um [personal token](/pt-br/documentacao/fundamentos/personal-tokens/).
- O ID do firewall ao qual o seu workload está vinculado.

**API**

- Um [personal token](/pt-br/documentacao/fundamentos/personal-tokens/). Cada requisição deste guia o carrega no lugar de `[TOKEN VALUE]`.
- O ID do firewall ao qual o seu workload está vinculado.

---

## Crie a lista de endereços

Uma lista `ip_cidr` guarda endereços IP e intervalos, um por item, em IPv4 ou IPv6. Um intervalo usa a notação CIDR, como `198.51.100.0/24`. Um cliente corresponde à lista quando o endereço dele é um item ou está dentro de um intervalo. A lista deste guia guarda um endereço IPv4, um intervalo IPv4 e um intervalo IPv6. O tipo continua `ip_cidr` enquanto a lista existir. Para os campos de uma lista e o formato de cada tipo, consulte [Campos da network list](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/#campos-da-network-list) e [Tipos de lista](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/#tipos-de-lista).

**Console**

Para criar a lista no Azion Console:

1. **Abra a página Network Lists**

   Acesse [Azion Console](https://console.azion.com/) > **Edge Libraries** > **Network Lists**.

2. **Selecione Network List**

3. **Nomeie a lista**

   Na seção **General**, informe um **Name**. Por exemplo: `Blocked addresses`.

4. **Selecione o tipo IP/CIDR**

   Na seção **Network List Settings**, selecione *IP/CIDR* para substituir *ASN*, o tipo com que o formulário abre.

5. **Informe os endereços**

   No campo **List**, informe cada endereço ou intervalo em uma linha própria:

   ```text
   192.0.2.10
   198.51.100.0/24
   2001:db8::/32
   ```

6. **Salve a lista**

   Selecione **Save**.

Azion Console confirma com a mensagem `Your network list has been created`. **Network Lists** mostra a lista, e a coluna **List Type** dela mostra *IP/CIDR*.

**CLI**

Para criar a lista com a Azion CLI, salve a definição dela como `network-list.json`:

```json
{
  "name": "Blocked addresses",
  "type": "ip_cidr",
  "items": ["192.0.2.10", "198.51.100.0/24", "2001:db8::/32"]
}
```

Depois, crie a lista a partir do arquivo:

```bash
azion create network-list --file network-list.json
```

A CLI imprime o ID da lista que ela criou:

```text
Created Network List with ID <network-list-id>
```

A lista `Blocked addresses` guarda os três itens, e a regra se refere à lista por esse ID.

**API**

Para criar a lista com a API, envie o corpo dela para `/v4/workspace/network_lists` em uma requisição `POST`. Substitua `[TOKEN VALUE]` pelo seu personal token:

```bash
curl -X POST https://api.azion.com/v4/workspace/network_lists \
  -H "Authorization: Token [TOKEN VALUE]" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"Blocked addresses","type":"ip_cidr","items":["192.0.2.10","198.51.100.0/24","2001:db8::/32"]}'
```

A API responde `201` e retorna a lista armazenada:

```json
{
  "state": "executed",
  "data": {
    "id": <network-list-id>,
    "name": "Blocked addresses",
    "type": "ip_cidr",
    "items": ["192.0.2.10", "198.51.100.0/24", "2001:db8::/32"],
    "last_editor": "<your-email>",
    "last_modified": "2026-01-01T12:00:00.000000Z",
    "created_at": "2026-01-01T12:00:00.000000Z",
    "active": true,
    "version_id": null,
    "version_state": null,
    "is_versioned": false,
    "version": null
  }
}
```

Um `state` igual a `executed` significa que a lista já está armazenada. O `data.id` dela é o ID a que a regra se refere.

---

## Crie a regra que protege o caminho

A regra guarda dois critérios em um bloco. O primeiro, *Network*, carrega o condicional `if`. O segundo, *Request Uri*, carrega `and`, o que faz dele uma condição que também precisa ser verdadeira. Por isso, a regra nega uma requisição somente quando o cliente está na lista e o caminho começa com `/admin`. Quando qualquer um dos critérios é falso, a regra não executa nada, e o firewall passa para a próxima regra. Para saber como critérios e blocos se combinam, consulte [Condicionais](/pt-br/documentacao/plataforma/firewall/rules-engine/#condicionais).

**Console**

Para criar a regra no Azion Console:

1. **Abra o firewall vinculado ao seu workload**

   Acesse [Azion Console](https://console.azion.com/) > **Secure** > **Firewalls**. Selecione o firewall na lista.

2. **Selecione a aba Rules Engine**

3. **Selecione Rule**

   O drawer **Create Rule** abre.

4. **Nomeie a regra**

   Na seção **General**, informe um **Name**. Por exemplo: `Deny listed addresses on /admin`.

5. **Defina o critério Network**

   Na seção **Criteria**, selecione *Network* como a variável e *matches* como o operador.

   A variável aparece como *Network - required Network Shield* enquanto o firewall está com Network Shield desativado. Nesse caso, vá para **Main Settings** > **Modules**, ative **Network Shield** e selecione **Save**. A variável fica selecionável depois que você salva.

6. **Selecione a lista**

   No dropdown **Select a Network**, selecione `Blocked addresses`, o nome que você deu à lista.

7. **Adicione um segundo critério**

   Selecione **And**. Azion Console adiciona um critério ao mesmo bloco. A regra só é executada quando esse critério também é verdadeiro.

8. **Defina o critério Request Uri**

   No critério adicionado, selecione *Request Uri* como a variável e *starts with* como o operador.

9. **Informe o caminho**

   Como argumento do critério adicionado, informe `/admin`.

10. **Adicione o comportamento Deny**

    Na seção **Behaviors**, selecione o comportamento *Deny (403 Forbidden)*.

11. **Salve a regra**

    Selecione **Save**.

Azion Console confirma com a mensagem `Rule successfully created`. A regra aparece na aba **Rules Engine**, e a coluna **Status** dela mostra *Active*.

**CLI**

O comando `azion create firewall-rule` lê a regra de um arquivo JSON. Para criar a regra com a Azion CLI, salve este corpo como `rule.json`. Coloque o ID da sua lista no lugar de `<network-list-id>`, como um número simples, sem aspas:

```json
{
  "name": "Deny listed addresses on /admin",
  "active": true,
  "criteria": [
    [
      { "variable": "${network}", "conditional": "if", "operator": "is_in_list", "argument": <network-list-id> },
      { "variable": "${request_uri}", "conditional": "and", "operator": "starts_with", "argument": "/admin" }
    ]
  ],
  "behaviors": [
    { "type": "deny" }
  ]
}
```

Depois, crie a regra a partir do arquivo. Escreva o ID do firewall vinculado ao seu workload no lugar de `<firewall-id>`:

```bash
azion create firewall-rule --firewall-id <firewall-id> --file rule.json
```

A CLI imprime o ID da regra que ela criou:

```text
Created Firewall Rule with ID <rule-id>
```

O firewall guarda a regra, ativa, e a regra nega os endereços listados nos caminhos sob `/admin`.

**API**

Para criar a regra com a API, envie o corpo dela para `/v4/workspace/firewalls/{firewall_id}/request_rules` em uma requisição `POST`. Escreva o ID do firewall vinculado ao seu workload no lugar de `<firewall-id>`. Substitua `<network-list-id>` pelo `data.id` da resposta da lista, um número simples, sem aspas:

```bash
curl -X POST https://api.azion.com/v4/workspace/firewalls/<firewall-id>/request_rules \
  -H "Authorization: Token [TOKEN VALUE]" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Deny listed addresses on /admin",
  "active": true,
  "criteria": [
    [
      { "variable": "${network}", "conditional": "if", "operator": "is_in_list", "argument": <network-list-id> },
      { "variable": "${request_uri}", "conditional": "and", "operator": "starts_with", "argument": "/admin" }
    ]
  ],
  "behaviors": [
    { "type": "deny" }
  ]
}'
```

A API responde `202`, com a regra como o firewall a armazenou:

```json
{
  "state": "pending",
  "data": {
    "id": <rule-id>,
    "name": "Deny listed addresses on /admin",
    "active": true,
    "criteria": [
      [
        { "conditional": "if", "variable": "${network}", "operator": "is_in_list", "argument": <network-list-id> },
        { "conditional": "and", "variable": "${request_uri}", "operator": "starts_with", "argument": "/admin" }
      ]
    ],
    "behaviors": [{ "type": "deny" }],
    "description": "",
    "order": 0
  }
}
```

O firewall guarda a regra. A plataforma adiciona um `description` vazio e `order`, que é a posição da regra entre as regras do firewall.

> **nota**
>
> O corpo da regra para a CLI e a API guarda os dois critérios em um bloco. Nos termos do Azion Console, `${network}` é o critério *Network* e `is_in_list` é o operador *matches* dele. `${request_uri}` é *Request Uri*, e `starts_with` é *starts with*. `deny` é o comportamento *Deny (403 Forbidden)*. Um firewall com Network Shield desativado recusa a regra com `25047 Missing Required Modules`. Um ID de lista enviado como string é recusado com `25042 Invalid Operator Argument Type`. Para os operadores de cada variável, consulte [Operadores](/pt-br/documentacao/plataforma/firewall/rules-engine/#operadores) e [O critério Network](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/#o-criterio-network).

---

## Confirme que o caminho nega os endereços listados

Espere que a regra chegue ao tráfego de 6 minutos e 29 segundos a 9 minutos e 18 segundos depois que você a cria. Um workload vinculado pouco antes pode precisar de vários minutos para a primeira regra dele, e nenhuma duração é garantida. Até que a regra chegue ao tráfego, `/admin` responde aos endereços listados como qualquer outro caminho.

Depois disso, um cliente da lista recebe `HTTP 403` em `/admin` e em todos os caminhos sob ele. O corpo da resposta é a página de erro padrão da Azion, encabeçada por **Forbidden**. Uma requisição de um endereço listado para `/admin` recebe esta resposta:

```text
$ curl -i https://<your-workload-domain>/admin
HTTP/2 403
server: nginx
date: Thu, 01 Jan 2026 12:00:00 GMT
content-type: text/html; charset=utf-8
x-content-type-options: nosniff
x-azion-request-id: <request-id>
x-azion-edge-location: <edge-location>
alt-svc: h3=":443"; ma=86400

<title>Azion - Default error page</title>
...
<h1 class="error-header__title">Forbidden</h1>
...
Your IP         <your-ip>
Request ID      <request-id>
Status Code     403
Edge Location   <edge-location>
```

A linha `Your IP` é o endereço do cliente que o firewall comparou com a lista. Uma requisição do mesmo endereço para um caminho fora de `/admin` passa pela regra. Ela chega à aplicação, que responde como faz para qualquer cliente. Para a resposta que um cliente negado recebe, consulte [Deny (403 Forbidden)](/pt-br/documentacao/plataforma/firewall/rules-engine/#deny-403-forbidden).

O operador *starts with* corresponde a todo caminho que começa com o argumento dele. Por isso, o argumento `/admin` também cobre `/admin/users` e `/administrator`. Para escolher o caminho de que um bloqueio precisa, consulte [Restrinja um bloqueio ao caminho que precisa dele](/pt-br/documentacao/plataforma/firewall/boas-praticas/).

Uma mudança nos itens da lista depois que a regra está em vigor chega ao tráfego mais rápido do que a regra chegou: em 46 segundos a cerca de 100 segundos. Enquanto isso, uma requisição pode refletir os itens antigos e a próxima, os itens atualizados. Envie a requisição novamente até que as respostas coincidam. Para todos os tempos de propagação, consulte [Propagação](/pt-br/documentacao/plataforma/firewall/como-funciona/#propagacao).

---

## Próximos passos

- [Permita somente os endereços de uma lista](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/allowlist.md): Inverta o operador do critério Network, para que a regra negue todo endereço fora da lista.
- [Bloqueie requisições por IP, ASN ou país](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/blocklists-enderecos-ip-edge.md): Monte uma lista de cada tipo e negue-a em todos os caminhos com uma regra de firewall.
- [Network Lists](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists.md): Os tipos de lista, os formatos de item e os erros por trás da lista que este guia cria.
- [Como Firewall funciona](/pt-br/documentacao/plataforma/firewall/como-funciona.md#network-shield): A seção Network Shield explica como o critério Network faz a correspondência entre o endereço de um cliente e uma lista.
- [Guias e tutoriais de Firewall](/pt-br/documentacao/plataforma/firewall/guias.md): As outras configurações construídas sobre network lists e todos os outros guias para um firewall.
