Implantar infraestrutura Linux e PostgreSQL
Esta unidade o guia pela criação dos recursos de computação que hospedam seu aplicativo no Azure.
Há vários métodos para implantar a infraestrutura no Azure, incluindo o portal do Azure, a CLI do Azure e modelos de infraestrutura como código (incluindo Bicep e Terraform). Nesta unidade, você implantará um modelo Bicep pré-configurado que encapsula os recursos de computação necessários para seu aplicativo. Os principais recursos são:
- Uma máquina virtual executando o Linux (Ubuntu 24.04 LTS)
- Banco de Dados do Azure para Postgres executando o Postgres 16 ou superior
- Uma identidade gerenciada para habilitar o acesso seguro da VM ao banco de dados
- RBAC, incluindo funções para acessar o banco de dados como administrador e funções mais restritivas para o próprio aplicativo
- Uma rede virtual para a VM e o banco de dados
Como este exemplo é uma carga de trabalho de desenvolvimento/teste e queremos manter o custo-benefício e o desempenho, escolhemos a seguinte configuração para você:
A VM é uma D2s_v4 Standard (dois vCPUs, 8 GB de memória). Ele tem o SSD Premium do Azure com 3.200 operações máximas de E/S por segundo (IOPS) e 128 GB de armazenamento. Ele tem um disco SSD Premium P10 de 128 GB anexado com 500 IOPS para o disco do sistema operacional. Você pode atualizar o disco do sistema operacional para corresponder ao IOPS da VM conforme necessário.
O banco de dados é um D2ds_v4 de Uso Geral (dois vCores, 8 GB de RAM) com 3.200 IOPS máximos. Ele tem um disco SSD Premium P10 de 128 GB com 500 IOPS. Você pode atualizar esse disco para corresponder ao IOPS de computação conforme necessário.
Ao concluir o módulo, você exclui esses recursos para economizar custos. No entanto, você também pode desativar a VM e o banco de dados quando não estiverem em uso para economizar o custo de computação e pagar apenas pelo armazenamento usado. Você também pode escalar verticalmente essa carga de trabalho conforme necessário.
O modelo Bicep neste módulo usa AVM (Módulos Verificados do Azure). AVM é uma iniciativa para padronizar módulos de infraestrutura como código. A Microsoft mantém esses módulos e eles encapsulam muitas melhores práticas para a implantação de recursos no Azure.
Certifique-se de que você tenha uma assinatura do Azure e a CLI do Azure
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Este artigo requer a versão 2.0.30 ou posterior da CLI do Azure. Localize a versão usando o seguinte comando:
az --version
Se você precisar instalar ou atualizar, veja Instalar a CLI do Azure.
Entrar no Azure usando a CLI do Azure
Para executar comandos no Azure usando a CLI do Azure, você precisa fazer logon primeiro. Entre usando o comando az login:
az login
Criar um grupo de recursos
Um grupo de recursos é um contêiner para recursos relacionados. Todos os recursos devem ser colocados em um grupo de recursos. Use o comando az group create para criar um grupo de recursos:
az group create \
--name 240900-linux-postgres \
--location westus2
Implantar o modelo Bicep usando a CLI do Azure
O Bicep é um DSL (linguagem específica de domínio) que usa sintaxe declarativa para implantar recursos do Azure. Em um arquivo Bicep, você define a infraestrutura que deseja implantar no Azure. Em seguida, use esse arquivo durante todo o ciclo de vida de desenvolvimento para implantar repetidamente sua infraestrutura. Os seus recursos são implantados de maneira consistente.
O arquivo Bicep que você está usando para implantar os recursos de computação desta unidade está no repositório GitHub deploy/vm-postgres.bicep. Ele contém uma máquina virtual, uma rede virtual, uma identidade gerenciada e um NSG (grupo de segurança de rede) para a VM. Você pode ler mais sobre o Bicep em O que é o Bicep?.
Clone o repositório de exemplo em seu computador local:
git clone https://github.com/Azure-Samples/linux-postgres-migration.gitVá para o diretório
linux-postgres-migration:cd linux-postgres-migrationImplante o modelo Bicep:
az deployment group create \ --resource-group 240900-linux-postgres \ --template-file deploy/vm-postgres.bicep
Após a conclusão da implantação, a saída JSON confirma que os recursos foram implantados.
Nas próximas seções, você configurará e explorará as funções RBAC e as regras de segurança de rede em sua infraestrutura implantada usando o portal do Azure. Ao usar o portal do Azure, você pode codificar as funções e as regras no modelo Bicep. O portal do Azure fornece uma interface visual que facilita a compreensão das relações entre os recursos e as permissões atribuídas a eles.
Abrir o grupo de recursos no portal do Azure
Abra o Portal do Azure.
No menu de serviço, selecione Grupos de recursos.
No painel Grupos de recursos, selecione o grupo de recursos
240900-linux-postgres.
Na parte superior direita do painel, a área Implantações mostra o status da implantação do modelo Bicep. Quando a implantação for bem-sucedida, ela mostrará Bem-sucedida.
Exibir o grupo de segurança de rede da máquina virtual
Selecione a máquina virtual,
vm-1.Na seção Rede, selecione Configurações de rede.
As configurações de rede mostram que o grupo de segurança de rede (240900-linux-postgres-nsg) está anexado à mesma sub-rede da rede virtual (240900-linux-postgres-vnet) que a máquina virtual.
O NSG também é visível dentro do grupo de recursos. Ele contém um conjunto de regras de segurança de entrada e saída que controlam o tráfego de e para a máquina virtual.
Voltar ao grupo de recursos
Na parte superior da página, selecione o link de navegação estrutural para retornar ao grupo de recursos (Home > Resource groups > 240900-linux-postgres).
Observe que a identidade gerenciada atribuída pelo usuário 240900-linux-postgres-identity está listada no grupo de recursos.
Você pode saber mais sobre identidades gerenciadas atribuídas pelo sistema e pelo usuário em O que são identidades gerenciadas para recursos do Azure?.
Adicionar uma regra de segurança de entrada ao grupo de segurança de rede
Adicione uma regra de segurança de entrada ao NSG para permitir o tráfego SSH do endereço IP atual para a máquina virtual.
Em um cenário de produção, você geralmente usaria acesso just-in-time, Azure Bastion ou uma VPN (como o Azure ou uma VPN de malha) para restringir o acesso à sua máquina virtual.
Selecione
240900-linux-postgres-nsg.Selecione Configurações>Regras de segurança de entrada.
Selecione Adicionar.
Em Origem, selecione Meu endereço IP.
Em Serviço, selecione SSH.
Selecione Adicionar.
Exiba o administrador do servidor flexível do Banco de Dados do Azure para PostgreSQL
Localize e selecione o servidor flexível do Banco de Dados do Azure para PostgreSQL. Chama-se
postgres-xxxxx, em quexxxxxé uma cadeia de caracteres exclusiva que o modelo Bicep definiu. A cadeia de caracteres permanece consistente entre implantações para sua assinatura e grupo de recursos.Selecione Segurança>Autenticação.
Para esse cenário, você está usando Somente autenticação do Microsoft Entra. A 240900-linux-postgres-identityidentidade gerenciada atribuída pelo usuário é listada em Administradores Microsoft Entra.
A identidade gerenciada 240900-linux-postgres-identity é o único administrador do servidor atualmente. Opcionalmente, você pode adicionar sua própria conta de usuário como administrador. Mas, para esse cenário, você usa a identidade gerenciada que já está em vigor.
Em uma próxima seção, você usará a identidade da máquina virtual para administrar o servidor por meio da CLI do Azure. Você também usará essa identidade para fornecer acesso ao servidor para seu aplicativo.
Em um cenário de produção, você provavelmente usaria uma combinação de identidades gerenciadas, o Microsoft Entra ID e o RBAC refinado para permitir que sua carga de trabalho de aplicativo acessasse dados e gerenciasse recursos no Azure com segurança. Você seguiria o princípio do menor privilégio.
Leia mais sobre esses cenários em Autenticação do Microsoft Entra com o Banco de Dados do Azure para PostgreSQL – Servidor Flexível e Usar o Microsoft Entra ID para autenticação com o Banco de Dados do Azure para PostgreSQL – Servidor Flexível.
Examinar as regras de firewall do Banco de Dados do Azure para PostgreSQL – Servidor Flexível
Selecione Configurações>Rede.
Se você estivesse administrando o servidor de seu computador local, em vez da máquina virtual, precisaria adicionar seu endereço IP às regras de firewall.
Você pode criar uma regra de firewall para o endereço IP atual selecionando Adicionar endereço IP do cliente atual (xxx.xxx.xxx.xxx)>Salvar. Essa regra permite que você acesse o servidor de desenvolvimento/teste usando ferramentas em seu computador local. Mas como você está usando uma máquina virtual para acessar o banco de dados, não criará uma regra de firewall no momento.
Em produção, você provavelmente isolaria esse servidor da Internet pública inteiramente limpando a opção Permitir acesso público a esse recurso por meio da Internet usando um endereço IP público.
Ao contrário da máquina virtual, você não associou o Banco de Dados do Azure para PostgreSQL a nenhuma rede virtual. Você mantém a opção de acessar o Banco de Dados do Azure para PostgreSQL pela Internet pública, o que é útil para cenários de desenvolvimento/teste.
Para fornecer segurança e flexibilidade, você habilita o acesso da máquina virtual por meio de sua rede virtual usando um ponto de extremidade privado. O ponto de extremidade privado permite que a máquina virtual acesse o banco de dados sem expô-lo à Internet pública. Leia mais sobre pontos de extremidade privados em Rede do Banco de Dados do Azure para PostgreSQL – servidor flexível com Link Privado.
Aqui, o endpoint privado foi criado para você usando Bicep.
Examine as atribuições de função para a identidade gerenciada atribuída pelo sistema da máquina virtual
Volte ao grupo de recursos
240900-linux-postgrese selecionevm-1.No menu de serviço, selecione Segurança>Identidade.
Aqui, você pode confirmar se a identidade gerenciada atribuída pelo sistema está anexada à máquina virtual.
Em Atribuído pelo sistema, selecione Atribuições de função do Azure.
Aqui, você pode confirmar se a função Leitor está atribuída à identidade gerenciada atribuída pelo sistema. A função tem como escopo o grupo de recursos
240900-linux-postgres.
As permissões nessa identidade permitem que você use a CLI do Azure dentro da VM para listar recursos no grupo de recursos. Com essa capacidade, você não precisa codificar detalhes específicos de recursos em seus scripts.
Em um estágio posterior, você atribuirá uma função adicional à identidade gerenciada da VM para que a VM possa acessar diretamente uma conta de Armazenamento de Blobs do Azure.
Em seguida, você explorará e configurará a infraestrutura implantada.
Recursos
- Módulos verificados do Azure
- Instalar a CLI do Azure
- Criar um grupo de recursos usando a CLI do Azure
- RBAC do Azure
- Identidade gerenciada do Azure
- O que é o Bicep?
- O que são identidades gerenciadas para recursos do Azure?
- Habilitar o acesso just-in-time em VMs
- O que é o Azure Bastion?
- Autenticação do Microsoft Entra com o Banco de Dados do Azure para PostgreSQL – Servidor flexível
- Usar o Microsoft Entra ID para autenticação com o Banco de Dados do Azure para PostgreSQL – Servidor Flexível
- Rede do Banco de Dados do Azure para PostgreSQL – servidor flexível com link privado