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 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 do Cofre de Chaves do Azure usando identidades gerenciadas para recursos do Azure. Você aprende a:
- Criar um cofre de chaves
- Armazene um segredo no Cofre da Chave
- Criar uma máquina virtual Linux no Azure
- Habilitar uma identidade gerenciada para a máquina virtual
- Conceda as permissões necessárias para que o aplicativo de console leia dados do Cofre da Chave
- Recuperar um segredo do Key Vault
Antes de começar, leia os conceitos básicos do Key Vault.
Se não tiver uma subscrição do Azure, crie uma conta gratuita.
Prerequisites
Para Windows, Mac e Linux:
- Git
- Este tutorial requer que você execute a CLI do Azure localmente. Você deve ter a CLI do Azure versão 2.0.4 ou posterior instalada. Executar
az --versionpara localizar a versão. Se precisar de instalar ou atualizar a CLI, veja Instalar a CLI 2.0 do Azure.
Iniciar sessão no Azure
Para iniciar sessão no Azure com a CLI do Azure, introduza:
az login
Criar um grupo de recursos e um cofre de chaves
Este guia de 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 rápidos:
- Início rápido da CLI do Azure
- Início rápido do Azure PowerShell
- Guia de início rápido do portal do Azure
Como alternativa, você pode executar esses comandos da CLI do Azure.
Important
Cada cofre de chaves deve ter um nome exclusivo. Substitua <your-unique-keyvault-name> pelo nome do seu cofre de chaves nos exemplos seguintes.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-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 senha, uma cadeia de conexão SQL ou qualquer outra informação que você precise manter segura e disponível para seu aplicativo.
Para adicionar um segredo ao cofre de chaves recém-criado, use o seguinte comando:
- Azure CLI
- Azure PowerShell
az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "mySecret" --value "Success!"
Criar uma máquina virtual
Crie uma VM chamada myVM usando um dos seguintes métodos:
| Linux | Windows |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| portal do Azure | O portal do Azure |
Para criar uma VM Linux usando a 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 ao sistema para a máquina virtual usando o comando Azure CLI 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 entrar na máquina virtual, siga as instruções em Conectar e entre em uma máquina virtual do Azure executando Linux ou Connect e entre em uma máquina virtual do Azure executando o 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_14.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 do 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 <resource-group>