Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Key Vault ajuda-o a proteger chaves, segredos e certificados, como chaves API e strings de ligação à base de dados.
Neste tutorial, configura uma aplicação Node.js para ler informações de Azure Key Vault usando identidades geridas para Azure recursos. Você aprende a:
- Criar um cofre de chaves
- Guardar um segredo no Key Vault
- Criar uma máquina virtual Azure Linux
- Habilitar uma identidade gerenciada para a máquina virtual
- Conceda as permissões necessárias para que a aplicação de consola leia dados do Key Vault
- Recuperar um segredo da Key Vault
Antes de começares, lê Key Vault conceitos básicos.
Se não tiver uma subscrição Azure, crie uma conta free.
Prerequisites
Para Windows, Mac e Linux:
- Git
- Este tutorial exige que execute a CLI do Azure localmente. Deve ter uma versão recente da CLI do Azure instalada. Executar
az --versionpara localizar a versão. Se precisares de instalar ou atualizar a CLI, vê Install CLI do Azure.
Iniciar sessão no Azure
Para iniciar sessão no Azure usando a CLI do Azure, digite:
az login
Criar um grupo de recursos e um cofre de chaves
Este quickstart utiliza um cofre de chaves Azure pré-criado. Você pode criar um cofre de chaves seguindo as etapas nestes guias rápidos:
Alternativamente, pode executar estes comandos do CLI do Azure.
Important
Cada cofre de chaves deve ter um nome exclusivo. Substitua <vault-name> pelo nome do seu cofre de chaves nos exemplos seguintes.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Preencha o cofre das chaves com um segredo
Vamos criar um segredo chamado mySecret, com um valor de Sucesso!. Um segredo pode ser uma palavra-passe, uma cadeia de ligação SQL ou qualquer outra informação que precise para manter segura e disponível para a sua aplicação.
Para adicionar um segredo ao cofre de chaves recém-criado, use o seguinte comando:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Criar uma máquina virtual
Crie uma VM chamada myVM usando um dos seguintes métodos:
| Linux | Windows |
|---|---|
| CLI do Azure | CLI do Azure |
| PowerShell | PowerShell |
| Portal do Azure | O portal Azure |
Para criar uma VM Linux usando o CLI do Azure, use o comando az vm create. O exemplo a seguir adiciona uma conta de usuário chamada azureuser. O --generate-ssh-keys parâmetro é usado para gerar automaticamente uma chave SSH e colocá-la no local da chave padrão (~/.ssh).
az vm create \
--resource-group <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Observe o valor de publicIpAddress na saída.
Atribuir uma identidade à VM
Crie uma identidade atribuída pelo sistema para a máquina virtual usando o comando CLI do Azure az vm identity assign:
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Observe a identidade atribuída ao sistema que é exibida no código a seguir. A saída do comando anterior seria:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Atribuir permissões à identidade da VM
Agora você pode atribuir as permissões de identidade criadas anteriormente ao seu cofre de chaves executando o seguinte comando:
az role assignment create --role "Key Vault Secrets User" --assignee "<system-assigned-identity>" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<vault-name>
Faça login na VM
Para iniciar sessão na máquina virtual, siga as instruções em Connect e inicie sessão numa máquina virtual Azure a correr Linux ou Connect e inicie sessão numa máquina virtual Azure a correr Windows.
Para iniciar sessão numa VM Linux, pode usar o comando ssh com o <public-ip-address> que aparece no passo Criar uma máquina virtual :
ssh azureuser@<public-ip-address>
Instalar bibliotecas Node.js e npm na VM
Na máquina virtual, instale as duas bibliotecas npm que usaremos em nosso script JavaScript: @azure/keyvault-secrets e @azure/identity.
No terminal SSH, instale o Node.js e o npm com os seguintes comandos:
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - && \ sudo apt-get install -y nodejsCrie um diretório de aplicativos e inicialize o pacote Node.js:
mkdir app && cd app && npm init -yInstale os pacotes de serviço Azure usando
npm:npm install @azure/keyvault-secrets @azure/identity
Criar e editar o arquivo JavaScript de exemplo
Na máquina virtual no
appdiretório, crie um arquivo JavaScript chamado index.js.touch index.jsAbra o arquivo com o editor de texto Nano :
nano index.jsCopie o seguinte código, substituindo
<vault-name>pelo nome do seu cofre de chaves, e cole no editor Nano:// index.js const { SecretClient } = require("@azure/keyvault-secrets"); const { DefaultAzureCredential } = require("@azure/identity"); // Your Azure Key Vault name and secret name const keyVaultName = "<vault-name>"; const keyVaultUri = `https://${keyVaultName}.vault.azure.net`; const secretName = "mySecret"; // Authenticate to Azure const credential = new DefaultAzureCredential(); const client = new SecretClient(keyVaultUri, credential); // Get Secret with Azure SDK for JS const getSecret = async (secretName) => { return (await client.getSecret(secretName)).value; } getSecret(secretName).then(secretValue => { console.log(`The value of secret '${secretName}' in '${keyVaultName}' is: '${secretValue}'`); }).catch(err => { console.log(err); })Salve o arquivo com Ctrl + x.
Quando lhe for solicitado
Save modified buffer?, digite y.Quando solicitado
File Name to Write: index.js, digite Enter.
Executar o aplicativo de Node.js de exemplo
Por fim, execute index.js. Se tudo correu bem, deve devolver o valor do seu segredo:
node index.js
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Limpeza de recursos
Quando não forem mais necessários, exclua a máquina virtual e o cofre de chaves. Você pode fazer isso rapidamente simplesmente excluindo o grupo de recursos ao qual eles pertencem:
az group delete -g "myResourceGroup"