---
name: azion-permita-somente-os-enderecos-de-uma-lista
description: >-
  Crie uma network list de endereços permitidos e uma regra de firewall que nega todo cliente fora dela, pelo Azion Console, pela Azion CLI ou pela API.
---

# Permita somente os endereços de uma lista

Você pode deixar que apenas os clientes de uma [network list](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/) cheguem à sua aplicação, pelo Azion Console, pela [Azion CLI](/pt-br/documentacao/devtools/cli/) ou pela API. Uma lista `ip_cidr` guarda os endereços e os intervalos que você permite. Uma regra de [firewall](/pt-br/documentacao/plataforma/firewall/) então nega todo cliente cujo endereço não está nela. Use essa configuração para o que apenas clientes conhecidos devem alcançar, como uma ferramenta interna ou um ambiente de teste. Para negar os clientes de uma lista e deixar todos os outros passarem, 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 deste guia. Os pré-requisitos e cada tarefa desta página mudam para essa interface.

## Pré-requisitos

- Um [workload](/pt-br/documentacao/plataforma/workloads/) vinculado a um firewall. A regra da allowlist fica nesse firewall.
- [Network Shield](/pt-br/documentacao/plataforma/firewall/#network-shield) ativado para esse firewall. Ele começa ativado em todo firewall e permanece assim até que alguém o desative.
- O endereço IP público de cada cliente que precisa manter o acesso, incluindo o seu.

**Console**

- Uma conta que consegue entrar no [Azion Console](https://console.azion.com/).

**CLI**

- Azion CLI instalada e autenticada 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 envia no lugar de `[TOKEN VALUE]`.
- O ID do firewall ao qual o seu workload está vinculado.

---

## Crie a lista de endereços permitidos

A allowlist é uma lista do tipo `ip_cidr`, exibida como *IP/CIDR* no Azion Console. Cada item dela é um endereço ou intervalo IPv4 ou IPv6, como `203.0.113.0/24` ou `198.51.100.7`. A regra compara o endereço de cada cliente com esses itens e nega todo endereço que não corresponde a nenhum deles. Para todos os campos e tipos que uma lista aceita, 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).

> **Atenção**
>
> Assim que a regra existir, todo endereço que falta na lista é negado, incluindo o seu, em cada requisição que o firewall recebe. Coloque o seu próprio endereço IP público na lista antes de criar a regra. Adicione também a sua equipe, os monitores que verificam se a aplicação está disponível e cada integração de parceiro que a chama.

**Console**

Para criar a allowlist 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: `Allowed addresses`.

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

   Na seção **Network List Settings**, selecione *IP/CIDR*. Quando o formulário abre, *ASN* é o tipo selecionado.

5. **Informe os endereços permitidos**

   No campo **List**, informe um endereço ou intervalo por linha. Escreva o seu endereço IP público no lugar de `<your-ip>`:

   ```text
   203.0.113.0/24
   198.51.100.7
   <your-ip>
   ```

6. **Salve a lista**

   Selecione **Save**.

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

**CLI**

Para criar a allowlist pela Azion CLI, escreva-a em um arquivo chamado `network-list.json`. Coloque o seu endereço IP público no lugar de `<your-ip>`:

```json
{
  "name": "Allowed addresses",
  "type": "ip_cidr",
  "items": ["203.0.113.0/24", "198.51.100.7", "<your-ip>"],
  "active": true
}
```

Crie a lista a partir desse arquivo:

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

A saída traz o ID da lista:

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

Guarde esse ID, porque a regra se refere a `Allowed addresses` por ele.

**API**

Para criar a allowlist pela API, envie uma requisição `POST` para `/v4/workspace/network_lists`. Coloque o seu personal token no lugar de `[TOKEN VALUE]` e o seu endereço IP público no lugar de `<your-ip>`:

```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":"Allowed addresses","type":"ip_cidr","items":["203.0.113.0/24","198.51.100.7","<your-ip>"]}'
```

A API responde `201`. O `state` igual a `executed` indica que a lista foi armazenada imediatamente:

```json
{
  "state": "executed",
  "data": {
    "id": <network-list-id>,
    "name": "Allowed addresses",
    "type": "ip_cidr",
    "items": ["203.0.113.0/24", "198.51.100.7", "<your-ip>"],
    "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
  }
}
```

Guarde o valor de `data.id`. A regra o envia como um número.

---

## Crie a regra que nega todos os outros endereços

Uma regra do [Rules Engine para Firewall](/pt-br/documentacao/plataforma/firewall/rules-engine/) pode negar uma requisição, mas não tem nenhum comportamento que a admita. Uma requisição que nenhuma regra interrompe segue para a aplicação. Por isso, a regra da allowlist nega, e o critério *Network* dela usa o operador *does not match*. Esse critério é verdadeiro para todo cliente fora da lista. Para um cliente da lista ele é falso, então a regra não executa nada e o firewall passa para a regra seguinte.

**Console**

Para criar a regra da allowlist no Azion Console:

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

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

2. **Selecione a aba Rules Engine**

3. **Selecione Rule**

   Azion Console abre o drawer **Create Rule**.

4. **Nomeie a regra**

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

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

   Na seção **Criteria**, selecione a variável *Network* e o operador *does not match*.

   Uma variável que aparece como *Network - required Network Shield* indica que Network Shield está desativado neste firewall. Ative-o em **Main Settings** > **Modules** e salve o firewall, e a variável fica selecionável.

6. **Selecione a allowlist**

   No dropdown **Select a Network**, selecione `Allowed addresses`.

7. **Adicione o comportamento Deny**

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

8. **Salve a regra**

   Selecione **Save**.

Azion Console confirma com a mensagem `Rule successfully created`. Na aba **Rules Engine**, a coluna **Status** da regra mostra *Active*.

**CLI**

Para criar a regra da allowlist pela Azion CLI, escreva-a em um arquivo chamado `rule.json`. Coloque o ID da sua lista no lugar de `<network-list-id>`, como um número sem aspas:

```json
{
  "name": "Allow only listed addresses",
  "active": true,
  "criteria": [
    [
      { "variable": "${network}", "conditional": "if", "operator": "is_not_in_list", "argument": <network-list-id> }
    ]
  ],
  "behaviors": [
    { "type": "deny" }
  ]
}
```

Crie a regra a partir desse arquivo no firewall vinculado ao seu workload. Coloque o ID desse firewall no lugar de `<firewall-id>`:

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

A saída traz o ID da regra:

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

A regra fica ativa no firewall e lê `Allowed addresses` pelo ID da lista.

**API**

Para criar a regra da allowlist pela API, envie uma requisição `POST` para `/v4/workspace/firewalls/{firewall_id}/request_rules`. Escreva o ID do firewall vinculado ao seu workload no lugar de `<firewall-id>`. Coloque o `data.id` da resposta da lista no lugar de `<network-list-id>`, como um número 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": "Allow only listed addresses",
  "active": true,
  "criteria": [
    [
      { "variable": "${network}", "conditional": "if", "operator": "is_not_in_list", "argument": <network-list-id> }
    ]
  ],
  "behaviors": [
    { "type": "deny" }
  ]
}'
```

A API responde `202`, com um `state` igual a `pending`. O objeto `data` da resposta retorna a regra como o firewall a armazena, com o `id` da regra, uma `description` vazia e uma `order`. Essa `order` é a posição da regra entre as regras do firewall.

> **nota**
>
> O corpo JSON da CLI e da API tem um bloco com um critério, então esse critério começa com `if`. Nesse corpo, `${network}` nomeia o critério *Network*, `is_not_in_list` o operador *does not match* dele e `deny` o comportamento *Deny (403 Forbidden)*. O `argument` é o ID da lista como um inteiro JSON. O mesmo ID entre aspas é recusado com `25042 Invalid Operator Argument Type`. Um firewall com Network Shield desativado recusa a regra com `25047 Missing Required Modules`. Para saber como os critérios se combinam dentro de um bloco, consulte [Critérios](/pt-br/documentacao/plataforma/firewall/rules-engine/#criterios). Para os operadores e os erros do critério *Network*, consulte [O critério Network](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/#o-criterio-network).

---

## Confirme que apenas os clientes listados chegam à aplicação

O único critério da regra da allowlist é *Network*. Por isso, ela age sobre cada requisição que o firewall recebe, qualquer que seja o caminho. Uma regra que você adiciona pode levar de 6 minutos e 29 segundos a 9 minutos e 18 segundos para chegar ao tráfego em toda a infraestrutura distribuída da Azion. Até lá, o firewall responde a cada requisição como antes. Envie a requisição de novo até que a resposta mude.

Com a regra no tráfego, um cliente cujo endereço está fora da lista recebe `HTTP 403` e a página de erro padrão da Azion, encabeçada por **Forbidden**. Uma requisição de um cliente assim retorna esta resposta:

```text
$ curl -i https://<your-workload-domain>/
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         192.0.2.44
Request ID      <request-id>
Status Code     403
Edge Location   <edge-location>
```

A linha `Your IP` mostra o endereço que o firewall comparou com a allowlist. Se a regra negar um cliente que precisa passar, adicione à lista o endereço dessa linha. Uma mudança nos itens de uma lista chega ao tráfego entre 46 segundos e cerca de 100 segundos, antes de uma regra que você adiciona. Até ela se estabilizar, as respostas podem alternar entre os itens antigos e os atualizados. Repita a requisição até que as respostas concordem. Para a resposta que um cliente negado recebe, consulte [Deny (403 Forbidden)](/pt-br/documentacao/plataforma/firewall/rules-engine/#deny-403-forbidden).

Um cliente da lista passa pela regra da allowlist, e a aplicação decide o que ele recebe. Uma aplicação que não serve conteúdo responde `204`:

```text
$ curl -i https://<your-workload-domain>/
HTTP/2 204
server: nginx
date: Thu, 01 Jan 2026 12:00:00 GMT
x-azion-request-id: <request-id>
x-azion-edge-location: <edge-location>
alt-svc: h3=":443"; ma=86400
```

Estar na allowlist não isenta um cliente das outras regras do firewall. Quando uma regra de blocklist também corresponde a esse cliente, a regra de blocklist o nega, em qualquer ordem. Para aplicar a allowlist a apenas um caminho, adicione um critério *Request Uri*, `${request_uri}` na API, ao mesmo bloco. Para essa regra, consulte [Proteja um caminho com uma network list](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/proteger-um-caminho/).

---

## Próximos passos

- [Proteja um caminho com uma network list](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/proteger-um-caminho.md): Encadeie um critério Request Uri no mesmo bloco, para que uma regra de lista cubra um caminho e deixe os outros abertos.
- [Network Lists](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists.md): Cada tipo de lista, cada formato de item e todo erro que uma lista ou um critério Network retorna.
- [Como Firewall funciona](/pt-br/documentacao/plataforma/firewall/como-funciona.md#network-shield): A seção Network Shield explica como o operador transforma uma lista em uma blocklist ou em uma allowlist.
- [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 endereços, redes ou países para negar e aplique-a a um firewall.
- [Solucionar problemas de Firewall](/pt-br/documentacao/plataforma/firewall/solucao-de-problemas.md#network-shield): A seção Network Shield trata de um cliente legítimo que uma regra de lista recusa.
- [Guias e tutoriais de Firewall](/pt-br/documentacao/plataforma/firewall/guias.md): Todos os guias de um firewall, entre eles as outras configurações de network list.
