Skip to content

Null-bin/TerraformAzureSQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TerraformAzureSQL

Aprovisionamento de recuros PaaS no Azure

🗄️ Provisionamento de Azure SQL para ERP.ABC (Brazil South)

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).

📂 Estrutura do projeto

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

📝 O que este pacote faz

  • 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.

🔧 Pré-requisitos

  • 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áveis principais (variables.tf)

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!

🚀 Como usar

  1. Clone este repositório ou copie os arquivos para seu ambiente local.
  2. Ajuste as variáveis no variables.tf ou crie um terraform.tfvars com seus valores.
  3. 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.

🔒 Segurança e Acesso Restrito🔹 Firewall Rule

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.

🔹Azure AD Conditional Access

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.

Boas práticas

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).

Passo prático:

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.

📝 Notas Importantes

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).

📝 Licença

Exemplo fornecido “como está”, sem garantias. Adapte e utilize conforme as políticas de segurança do seu ambiente.

About

Aprovisionamento de recuros PaaS no Azure

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages