Implantar infraestrutura Linux e PostgreSQL
Esta unidade orienta você 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ê implanta 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 rodando Linux (Ubuntu 24.04 LTS)
- Banco de Dados do Azure para Postgres executando Postgres 16 ou posterior
- 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 as coisas econômicas e eficientes, escolhemos a seguinte configuração para você:
A VM é um D2s_v4 padrão (duas vCPUs, 8 GB de memória). Tem 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 às 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. Tem um disco SSD Premium P10 de 128 GB com 500 IOPS. Você pode atualizar esse disco para corresponder às 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 eles não estiverem em uso para economizar custos de computação e pagar apenas pelo armazenamento que você usa. Você também pode aumentar essa carga de trabalho conforme necessário.
O modelo Bicep neste módulo utiliza os Módulos Verificados do Azure (AVM). O AVM é uma iniciativa para padronizar módulos de infraestrutura como código. A Microsoft mantém esses módulos e eles encapsulam muitas práticas recomendadas para implantar recursos no Azure.
Verifique se você tem 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 módulo requer a CLI do Azure versão 2.0.30 ou posterior. Localize a versão usando o seguinte comando:
az --version
Se você precisar instalar ou atualizar, consulte 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 entrar primeiro. Entre usando o az login comando:
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 é uma linguagem específica do domínio que utiliza sintaxe declarativa para implementar recursos do Azure. Em um arquivo Bicep, você define a infraestrutura que deseja implantar no Azure. Em seguida, você usa esse arquivo durante todo o ciclo de vida de desenvolvimento para implantar repetidamente sua infraestrutura. Seus recursos são implantados de maneira consistente.
O arquivo Bicep que você está usando para implantar os recursos de computação para esta 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 grupo de segurança de rede (NSG) para a VM. Você pode ler mais sobre Bicep em O que é Bicep?.
Clone o repositório de exemplo para sua máquina local:
git clone https://github.com/Azure-Samples/linux-postgres-migration.gitVá para o
linux-postgres-migrationdiretório:cd linux-postgres-migrationImplante o modelo Bicep:
az deployment group create \ --resource-group 240900-linux-postgres \ --template-file deploy/vm-postgres.bicep
Na conclusão da implantação, a saída JSON confirma que os recursos estão implantados.
Nas próximas seções, você configurará e explorará funções RBAC e 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 regras no modelo Bicep. O portal do Azure fornece uma interface visual que facilita a compreensão das relações entre 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
240900-linux-postgresde recursos .
Na parte superior direita do painel, a área Implantações mostra o status da implantação do modelo Bicep. Quando a implantação é bem-sucedida, ela mostra Succeeded.
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á conectado à 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.
Regressar ao grupo de recursos
Na parte superior da página, selecione o link de trilha para retornar ao grupo de recursos (Home > Resource groups > 240900-linux-postgres).
Observe que a identidade gerenciada atribuída pelo 240900-linux-postgres-identity usuário 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 seu endereço IP atual para a máquina virtual.
Em um cenário de produção, você geralmente usaria o acesso just-in-time, o 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.
Exibir o administrador do Banco de Dados do Azure para servidor flexível PostgreSQL
Localize e selecione o Banco de Dados do Azure para servidor flexível PostgreSQL. É chamado
postgres-xxxxx, ondexxxxxé 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 a autenticação do Microsoft Entra. A 240900-linux-postgres-identity identidade gerenciada atribuída pelo usuário está listada em Administradores do Microsoft Entra.
A 240900-linux-postgres-identity identidade gerenciada é atualmente o único administrador do servidor. 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ê usa a identidade da máquina virtual para administrar o servidor por meio da CLI do Azure. Você também usa 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, ID do Microsoft Entra e RBAC refinado para permitir que sua carga de trabalho de aplicativo acesse dados e gerencie recursos no Azure com segurança. Você seguiria o princípio do menor privilégio.
Leia mais sobre esses cenários na autenticação do Microsoft Entra com o Banco de Dados do Azure para PostgreSQL - Servidor Flexível e Utilize a ID do Microsoft Entra para autenticação com o Banco de Dados do Azure para PostgreSQL - Servidor Flexível.
Revise o Banco de Dados do Azure para regras de firewall do Servidor Flexível PostgreSQL
Selecione Configurações>de rede.
Se estivesse a administrar o servidor a partir da sua máquina local, em vez da máquina virtual, teria de adicionar o seu endereço IP às regras de firewall.
Você pode criar uma regra de firewall para seu endereço IP atual selecionando Adicionar endereço IP do cliente atual (xxx.xxx.xxx.xxx)>Salvar. Esta regra permite que você acesse o servidor de desenvolvimento/teste usando ferramentas em sua máquina 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.
Na produção, você provavelmente isolaria esse servidor da Internet pública inteiramente limpando a opção Permitir acesso público a este recurso através 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 no Banco de Dados do Azure para PostgreSQL - Rede de servidor flexível com link privado.
Aqui, o ponto de extremidade privado foi criado para você usando o Bicep.
Revise as atribuições de função para a identidade gerenciada atribuída ao sistema da máquina virtual
Retorne ao
240900-linux-postgresgrupo de recursos e selecionevm-1.No menu de serviço, selecione Segurança>Identidade.
Aqui, você pode confirmar se a identidade gerenciada atribuída ao sistema está anexada à máquina virtual.
Em Sistema atribuído, selecione Atribuições de função do Azure.
Aqui, você pode confirmar se a função Leitor está atribuída à identidade gerenciada atribuída ao sistema. A função tem como escopo o
240900-linux-postgresgrupo de recursos.
As permissões nessa identidade permitem que você use a CLI do Azure na VM para listar recursos no grupo de recursos. Com essa capacidade, você não precisa codificar detalhes de recursos específicos 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 Blob 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
- Azure RBAC
- Identidade gerenciada do Azure
- O que é 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
- Utilizar a ID do Microsoft Entra para autenticação com a Base de Dados do Azure para PostgreSQL - Servidor Flexível
- Banco de Dados do Azure para PostgreSQL - Rede de servidor flexível com link privado