Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure Key Vault ajuda você a proteger chaves, segredos e certificados, como chaves de API e cadeias de conexão de banco de dados.
Neste tutorial, você configura um aplicativo Node.js para ler informações de Azure Key Vault usando uma identidade gerenciada para recursos de Azure. Você aprenderá como:
- Criar um cofre de chaves
- Armazenar 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 o aplicativo de console ler dados de Key Vault
- Recuperar um segredo de Key Vault
Antes de começar, leia Key Vault conceitos básicos.
Se você não tiver uma assinatura da Azure, crie uma conta gratuita.
Prerequisites
Para Windows, Mac e Linux:
- Git
- Uma versão atual do CLI do Azure. Execute
az --versionpara verificar a versão instalada.
Entrar no Azure
Entre no Azure com o CLI do Azure:
az login
Criar um grupo de recursos e um cofre de chaves
Este início rápido usa um cofre de chaves do Azure pré-criado. Você pode criar um cofre de chaves seguindo as etapas nestes guias de início rápido:
- Início Rápido do CLI do Azure
- Introdução ao Azure PowerShell
- Guia de início rápido do Azure portal
Como alternativa, você pode executar esses comandos CLI do Azure.
Important
Cada cofre de chaves deve ter um nome exclusivo. Substitua <vault-name> pelo nome do cofre de chaves nos exemplos a seguir.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Preencha seu cofre de chaves com um segredo
Vamos criar um segredo chamado mySecret, com um valor de Êxito! . Um segredo pode ser uma senha, um sql cadeia de conexão ou qualquer outra informação que você precise manter seguras e disponíveis para seu aplicativo.
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 | Portal do Azure |
Para criar uma VM do 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 gera uma chave SSH e a armazena 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 gerenciada atribuída pelo sistema para a VM usando o comando az vm identity assign :
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Observe a identidade atribuída pelo sistema na saída:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Atribuir permissões à identidade da VM
Conceda à identidade gerenciada da VM a função Key Vault Secrets User no Key Vault:
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>
Entre na VM
Para entrar na VM, siga as instruções em Conectar e entre em uma máquina virtual Azure executando Linux ou Connect e entre em uma máquina virtual Azure executando Windows.
Para entrar em uma VM Linux, use ssh com o <public-ip-address> da etapa Criar uma máquina virtual:
ssh azureuser@<public-ip-address>
Instalar Node.js e npm bibliotecas na VM
Na VM, instale as duas bibliotecas npm que o script de exemplo usa: @azure/keyvault-secrets e @azure/identity.
No terminal SSH, instale Node.js e npm:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && \ sudo apt-get install -y nodejsCrie um diretório de aplicativos e inicialize o Node.js pacote:
mkdir app && cd app && npm init -yInstale os pacotes de Azure com
npm:npm install @azure/keyvault-secrets @azure/identity
Criar e editar o arquivo JavaScript de exemplo
Na VM no
appdiretório, crie um arquivo JavaScript chamadoindex.js:touch index.jsAbra o arquivo com qualquer editor de texto Nano.
nano index.jsCole o seguinte código no editor, substituindo
<vault-name>pelo nome do cofre de chaves:// 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.
No prompt
Save modified buffer?, insira y.No prompt
File Name to Write: index.js, pressione Enter.
Executar o aplicativo Node.js exemplo
Execute index.js. Se tudo estiver configurado corretamente, o aplicativo imprimirá o valor secreto:
node index.js
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Limpar os recursos
Quando você não precisar mais deles, exclua a VM e o cofre de chaves. A maneira mais rápida é excluir o grupo de recursos ao qual pertencem:
az group delete -g "myResourceGroup"