Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Key Vault helpt u bij het beveiligen van sleutels, geheimen en certificaten, zoals API-sleutels en databaseverbindingsreeksen.
In deze zelfstudie stelt u een Node.js toepassing in om informatie uit Azure Key Vault te lezen met behulp van beheerde identiteiten voor Azure resources. U leert het volgende:
- Maak een Key Vault.
- Een geheim opslaan in Key Vault
- Een Azure virtuele Linux-machine maken
- Een Beheerde identiteit inschakelen voor de virtuele machine
- Verdeel de vereiste machtigingen voor de consoletoepassing om gegevens uit Key Vault te lezen
- Een geheim ophalen uit Key Vault
Lees Key Vault basisconcepten voordat u begint.
Als u geen Azure abonnement hebt, maakt u een free-account.
Prerequisites
Voor Windows, Mac en Linux:
- Git
- Voor deze zelfstudie moet u de Azure CLI lokaal uitvoeren. Je moet een recente versie van de Azure CLI geïnstalleerd hebben. Voer
az --versionuit om de versie te vinden. Zie Install Azure CLI als u de CLI wilt installeren of upgraden.
Meld u aan bij Azure
Als u zich wilt aanmelden bij Azure met behulp van de Azure CLI, voert u het volgende in:
az login
Maak een resourcegroep en een sleutelkluis aan
In deze quickstart wordt een vooraf aangemaakte Azure-sleutelkluis gebruikt. U kunt een sleutelkluis maken door de stappen in deze quickstarts te volgen:
U kunt deze Azure CLI opdrachten ook uitvoeren.
Important
Elke sleutelkluis moet een unieke naam hebben. Vervang <vault-name> door de naam van uw sleutelkluis in de volgende voorbeelden.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Vul uw sleutelkluis met een geheim
We gaan een geheim maken met de naam mySecret en de waarde Success!. Een geheim kan een wachtwoord, een SQL-verbindingsreeks of andere informatie zijn die u nodig hebt om zowel veilig als beschikbaar te blijven voor uw toepassing.
Gebruik de volgende opdracht om een geheim toe te voegen aan uw zojuist gemaakte sleutelkluis:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Een virtuele machine maken
Gebruik een van de volgende methoden om een VM met de naam myVM te maken:
| Linux | Windows |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Azure portal | De Azure portal |
Als u een Virtuele Linux-machine wilt maken met behulp van de Azure CLI, gebruikt u de opdracht az vm create. In het volgende voorbeeld wordt een gebruikersaccount met de naam azureuser toegevoegd. De parameter --generate-ssh-keys wordt gebruikt om automatisch een SSH-sleutel te genereren en deze te plaatsen in de standaardsleutellocatie (~/.ssh).
az vm create \
--resource-group <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Noteer de waarde van publicIpAddress in de uitvoer.
Een identiteit toewijzen aan de virtuele machine
Maak een door het systeem toegewezen identiteit voor de virtuele machine met behulp van de opdracht Azure CLI az vm identity assign:
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Bekijk de door het systeem toegewezen identiteit die wordt weergegeven in de volgende code. De uitvoer van de vorige opdracht ziet er als volgt uit:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Machtigingen toewijzen aan de VM-identiteit
U kunt nu de eerder gemaakte identiteitsmachtigingen toewijzen aan uw sleutelkluis door de volgende opdracht uit te voeren:
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>
Aanmelden bij de nieuwe virtuele machine
Als u zich wilt aanmelden bij de virtuele machine, volgt u de instructies in Connect and sign in to an Azure virtual machine running Linux or Connect and sign in to an Azure virtual machine running Windows.
Als u zich wilt aanmelden bij een Virtuele Linux-machine, kunt u de ssh-opdracht gebruiken met de <public-ip-address> opgegeven in de stap Een virtuele machine maken :
ssh azureuser@<public-ip-address>
Node.js- en NPM-bibliotheken installeren op de VIRTUELE machine
Installeer op de virtuele machine de twee npm-bibliotheken die we gaan gebruiken in ons JavaScript-script: @azure/keyvault-secrets en @azure/identity.
Installeer in de SSH-terminal Node.js en npm met de volgende opdrachten:
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - && \ sudo apt-get install -y nodejsMaak een app-folder en installeer het Node.js-pakket.
mkdir app && cd app && npm init -yInstalleer de Azure-servicepakketten met behulp van
npm:npm install @azure/keyvault-secrets @azure/identity
Het JavaScript-voorbeeldbestand maken en bewerken
Maak op de virtuele machine in de map een JavaScript-bestand met de
appnaam index.js.touch index.jsOpen het bestand met de Nano-teksteditor :
nano index.jsKopieer de volgende code, vervang
<vault-name>door de naam van uw sleutelkluis, en plak deze in de Nano-editor:// 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); })Sla het bestand op met Ctrl + x.
Wanneer u hier om wordt gevraagd
Save modified buffer?, voert u y in.Wanneer hier om wordt gevraagd
File Name to Write: index.js, typt u Enter.
De voorbeeld-Node.js-app uitvoeren
Voer ten slotte index.js uit. Als alles goed is gegaan, moet de waarde van uw geheim worden teruggegeven.
node index.js
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
De hulpbronnen opschonen
Als ze niet meer nodig zijn, verwijdert u de virtuele machine en de sleutelkluis. U kunt dit snel doen door simpelweg de resource groep te verwijderen waarvan ze deel uitmaken:
az group delete -g "myResourceGroup"