Aprovisionamento de recuros PaaS no Azure
Este pacote Terraform cria um Azure SQL Server e um Banco de Dados ERP.ABC hospedados no Brasil (Brazil South).
Inclui exemplo de restrição de acesso apenas para IPs do Brasil e recomendações para aplicar Política Condicional no Microsoft Entra ID (Azure AD).
azure-sql/ │
├── main.tf # Infraestrutura SQL Azure
├── variables.tf # Variáveis parametrizáveis
├── outputs.tf # Saídas (FQDN, nome do banco)
└── conditional-access.json # Exemplo de política condicional
- Cria um Resource Group no Azure.
- Cria um Azure SQL Server chamado
erpabc-sqlserver. - Cria um Banco de Dados chamado
ERP.ABC. - Define firewall rule para permitir somente IPs do Brasil (range exemplo).
- Recomenda Azure AD Conditional Access para reforçar restrições geográficas.
- Conta no Microsoft Azure com permissões para criar recursos SQL.
- Terraform ≥ 1.3.
- Azure CLI configurada ou variáveis de ambiente para autenticação.
- Microsoft Entra ID (Azure AD) licenciado para Conditional Access.
| Variável | Descrição | Exemplo |
|---|---|---|
sql_admin_user |
Usuário administrador do SQL Server | sqladmin |
sql_admin_password |
Senha administrador (alterar em produção) | P@ssword123456! |
- Clone este repositório ou copie os arquivos para seu ambiente local.
- Ajuste as variáveis no
variables.tfou crie umterraform.tfvarscom seus valores. - Execute:
terraform init terraform plan terraform apply
Ao final, o Terraform exibirá:
Apply complete! Resources: X added.
Outputs: sql_server_fqdn = erpabc-sqlserver.database.windows.net sql_database_name = ERP.ABC
Conecte-se ao SQL Server utilizando o FQDN e credenciais definidas.
No main.tf configuramos uma regra de firewall:
resource "azurerm_mssql_firewall_rule" "allow_brazil" { start_ip_address = "177.0.0.0" end_ip_address = "177.255.255.255" }
Substitua os ranges pelos blocos de IP atualizados do Brasil.
Para bloquear acesso fora do Brasil em nível de identidade:
Crie Named Location no Entra ID → Security → Named Locations → “Brasil”.
Configure com geolocalização ou ranges de IP.
Crie política condicional “Bloquear Acesso SQL fora do Brasil” aplicando ao grupo de usuários que acessa o banco.
Utilize Private Endpoint e VNet Integration para acesso interno.
Armazene senhas no Azure Key Vault.
Restrinja IPs e use NSGs para controle granular.
Mantenha o Terraform state protegido (ex: backend no Azure Storage com lock no Key Vault).
Crie no Entra ID → Security → Conditional Access → Named Locations.
Configure “Brasil” com os IPs ou geolocalização.
Crie uma política “Bloquear Acesso SQL fora do Brasil” aplicando ao grupo de usuários do SQL.
Instância SQL = azurerm_mssql_server + azurerm_mssql_database.
Bloqueio geográfico: No nível de rede (firewall) você define ranges de IP; no nível de identidade você usa Conditional Access (Entra ID).
Segurança extra: considere usar Private Endpoint + VNet Integration para evitar exposição pública.
Senha: substitua por um segredo seguro (Key Vault).
Exemplo fornecido “como está”, sem garantias. Adapte e utilize conforme as políticas de segurança do seu ambiente.