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 cadeias de ligação a bases de dados.
Neste tutorial, configura uma aplicação Node.js para ler informações de Azure Key Vault usando uma identidade gerida 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
- Uma versão atual da CLI do Azure. Executa
az --versionpara verificar a versão instalada.
Iniciar sessão no Azure
Inicie sessão no Azure com a CLI do Azure:
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 | Portal do Azure |
Para criar uma VM Linux usando a CLI do Azure, use o comando create da az-vm. O exemplo seguinte adiciona uma conta de utilizador chamada azureuser. O --generate-ssh-keys parâmetro gera uma chave SSH e armazena-a na localização padrão da chave (~/.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 gerida atribuída pelo sistema para a VM usando o comando az vm identity assign :
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Note a identidade atribuída pelo sistema na saída:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Atribuir permissões à identidade da VM
Atribua à identidade gerida da VM a função Key Vault Secrets User no cofre de chaves:
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>
Iniciar sessão na VM
Para iniciar sessão na VM, 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 com Windows.
Para iniciar sessão numa VM Linux, use ssh com o <public-ip-address> do passo Criar uma máquina virtual:
ssh azureuser@<public-ip-address>
Instalar bibliotecas Node.js e npm na VM
Na VM, instala 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 pacote Node.js:
mkdir app && cd app && npm init -yInstale os pacotes do Azure com
npm:npm install @azure/keyvault-secrets @azure/identity
Criar e editar o arquivo JavaScript de exemplo
Na VM do
appdiretório, crie um ficheiro JavaScript chamadoindex.js:touch index.jsAbra o arquivo com o 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); })Guarda o ficheiro com Ctrl+X.
Quando surgir a linha de comandos
Save modified buffer?, introduza y.Na
File Name to Write: index.jslinha de comandos, prima Enter.
Executar o aplicativo de Node.js de exemplo
Execute index.js. Se tudo estiver configurado corretamente, a aplicação imprime o valor secreto:
node index.js
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Limpeza de recursos
Quando já não precisares deles, apaga a VM e o cofre de chaves. A forma mais rápida é eliminar o grupo de recursos a que pertencem:
az group delete -g "myResourceGroup"