Pular para conteúdo

Gerenciando a Wallarm usando Terraform

Se você usa Terraform para gerenciar suas infraestruturas, pode ser uma opção confortável para você usá-lo para gerenciar a Wallarm. O provedor Wallarm para Terraform permite isso.

Requisitos

  • Conhecimento básico do Terraform

  • Binário do Terraform 0.15.5 ou superior

  • Conta Wallarm na Nuvem EUA ou Nuvem EU

  • Acesso à conta com a função Administrador na Console Wallarm na Nuvem EUA ou EU Cloud

  • Acesso a https://us1.api.wallarm.com se estiver trabalhando com a Nuvem Wallarm dos EUA ou a https://api.wallarm.com se estiver trabalhando com a Nuvem Wallarm da EU. Por favor, certifique-se de que o acesso não está bloqueado por um firewall

Instalando o provedor

  1. Copie e cole na configuração do Terraform:

    terraform {
      required_version = ">= 0.15.5"
    
      required_providers {
        wallarm = {
          source = "wallarm/wallarm"
          version = "1.1.2"
        }
      }
    }
    
    provider "wallarm" {
      # Opções de configuração
    }
    
  2. Execute terraform init.

Conectando o provedor à sua conta Wallarm

Para conectar o provedor Terraform da Wallarm à sua conta Wallarm na Nuvem EUA ou Nuvem EU, defina as credenciais de acesso à API na configuração do Terraform:

provider "wallarm" {
  api_token = "<WALLARM_API_TOKEN>"
  api_host = "https://us1.api.wallarm.com"
  # Apenas necessário quando a funcionalidade multilocação é utilizada:
  # client_id = <CLIENT_ID>
}
provider "wallarm" {
  api_token = "<WALLARM_API_TOKEN>"
  api_host = "https://api.wallarm.com"
  # Apenas necessário quando a funcionalidade multilocação é utilizada:
  # client_id = <CLIENT_ID>
}
  • <WALLARM_API_TOKEN> permite o acesso à API de sua conta Wallarm. Como conseguir it →

  • <CLIENT_ID> é ID do inquilino (cliente); requerido apenas quando a função de multilocação é usada. Pegue o id (não uuid) conforme descrito aqui.

Veja os detalhes na documentação do provedor Wallarm.

Gerenciando a Wallarm com provedor

Com o provedor Wallarm, via Terraform você pode gerenciar:

Provedor Terraform Wallarm e nós CDN

Atualmente, nós CDN não podem ser gerenciados por meio do provedor Terraform Wallarm.

Veja como realizar as operações listadas na documentação do provedor Wallarm.

Exemplo de uso

Abaixo está um exemplo de configuração Terraform para Wallarm:

provider "wallarm" {
  api_token = "<WALLARM_API_TOKEN>"
  api_host = "https://us1.api.wallarm.com"
}

resource "wallarm_global_mode" "global_block" {
  waf_mode = "default"
}

resource "wallarm_application" "tf_app" {
  name = "Terraform Application 001"
  app_id = 42
}

resource "wallarm_rule_mode" "tiredful_api_mode" {
  mode =  "monitoring"

  action {
    point = {
      instance = 42
    }
  }

  action {
    type = "regex"
    point = {
      scheme = "https"
    }
  }
}

Salve o arquivo de configuração e depois execute terraform apply.

A configuração faz o seguinte:

  • Conecta à Nuvem EUA → conta da empresa com o token de API Wallarm fornecido.

  • resource "wallarm_global_mode" "global_block" → define o modo de filtração global para Configurações locais (padrão), o que significa que o modo de filtração é controlado localmente em cada nó.

  • resource "wallarm_application" "tf_app" → cria aplicativo chamado Terraform Application 001 com ID 42.

  • resource "wallarm_rule_mode" "tiredful_api_mode" → cria a regra que define o modo de filtração de tráfego para Monitoring para todas as solicitações enviadas através do protocolo HTTPS para o aplicativo com ID 42.

Informações adicionais sobre Wallarm e Terraform

O Terraform suporta uma série de integrações (provedores) e configurações prontas para usar (módulos) disponíveis para usuários através do registro público, fornecido por diversos fornecedores.

Para este registro, a Wallarm publicou:

  • O provedor Wallarm para gerenciar a Wallarm via Terraform. Descrito no artigo atual.

  • O módulo Wallarm para implantar o nó na AWS a partir do ambiente compatível com Terraform.

Essas duas são ferramentas independentes usadas para diferentes propósitos. Não é necessário usar um para usar o outro.