Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Key Vault hilft Ihnen, Schlüssel, geheime Schlüssel und Zertifikate wie API-Schlüssel und Datenbankverbindungszeichenfolgen zu schützen.
In diesem Lernprogramm richten Sie eine Node.js Anwendung ein, um Informationen aus Azure Key Vault mithilfe von verwalteten Identitäten für Azure Ressourcen zu lesen. Hier erfahren Sie, wie Sie:
- Erstellen eines Schlüsseltresors
- Speichern eines geheimen Schlüssels in Key Vault
- Erstellen eines Azure virtuellen Linux-Computers
- Aktivieren einer verwalteten Identität für den virtuellen Computer
- Erteilen der erforderlichen Berechtigungen für die Konsolenanwendung zum Lesen von Daten aus Key Vault
- Abrufen eines geheimen Schlüssels aus Key Vault
Lesen Sie vor Beginn Key Vault grundlegende Konzepte.
Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein free-Konto.
Prerequisites
Für Windows, Mac und Linux:
- Git
- In diesem Lernprogramm müssen Sie die Azure CLI lokal ausführen. Sie müssen eine aktuelle Version der Azure CLI installiert haben. Führen Sie
az --versionaus, um die Version zu ermitteln. Wenn Sie die CLI installieren oder aktualisieren müssen, lesen Sie Install Azure CLI.
Melden Sie sich bei Azure an
Um sich mit dem Azure CLI bei Azure anzumelden, geben Sie Folgendes ein:
az login
Erstellen einer Ressourcengruppe und eines Schlüsseltresors
In dieser Schnellstartanleitung wird ein vorkonfigurierter Azure Key Vault verwendet. Sie können einen Schlüsseltresor erstellen, indem Sie die Schritte in den folgenden Schnellstarts ausführen:
Alternativ können Sie diese Azure CLI Befehle ausführen.
Important
Jeder Schlüsseltresor muss einen eindeutigen Namen haben. Ersetzen Sie in den folgenden Beispielen <vault-name> durch den Namen Ihres Schlüsseltresors.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Einfügen eines Geheimnisses in Ihren Schlüsseltresor
Erstellen Sie ein Geheimnis mit dem Namen mySecret und dem Wert Success! . Ein Geheimer Schlüssel kann ein Kennwort, ein SQL-Verbindungszeichenfolge oder andere Informationen sein, die Sie benötigen, um sowohl sicher als auch für Ihre Anwendung verfügbar zu sein.
Fügen Sie Ihrem neu erstellten Schlüsseltresor mit dem folgenden Befehl ein Geheimnis hinzu:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Erstellen eines virtuellen Computers
Erstellen Sie mit einer der folgenden Methoden einen virtuellen Computer namens myVM:
| Linux | Windows |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Azure Portal | Das Azure Portal |
Verwenden Sie den Befehl az vm create, um eine Linux-VM mit dem Azure CLI zu erstellen. Im folgenden Beispiel wird ein Benutzerkonto mit dem Namen azureuser hinzugefügt. Der Parameter --generate-ssh-keys wird genutzt, um automatisch einen SSH-Schlüssel zu generieren und am Speicherort für den Standardschlüssel abzulegen ( ~/.ssh).
az vm create \
--resource-group <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Beachten Sie den Wert von publicIpAddress in der Ausgabe.
Zuweisen einer Identität zum virtuellen Computer
Erstellen Sie eine vom System zugewiesene Identität für den virtuellen Computer mithilfe des Befehls Azure CLI az vm identity assign:
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Beachten Sie die systemseitig zugewiesene Identität, die im folgenden Code angezeigt wird. Die Ausgabe des obigen Befehls lautet etwa wie folgt:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Zuweisen von Berechtigungen für die VM-Identität
Jetzt können Sie Ihrem Schlüsseltresor die zuvor erstellten Identitätsberechtigungen zuweisen, indem Sie den folgenden Befehl ausführen:
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>
Anmelden am virtuellen Computer
Um sich an der virtuellen Maschine anzumelden, folgen Sie den Anweisungen in Verbinden und Anmelden bei einer Azure-VM mit Linux oder Verbinden und Anmelden bei einer Azure-VM mit Windows.
Um sich bei einer Linux-VM anzumelden, können Sie den ssh-Befehl mit dem <public-ip-address> im Schritt " Erstellen eines virtuellen Computers " angegebenen Befehl verwenden:
ssh azureuser@<public-ip-address>
Installieren von Node.js und npm-Bibliotheken auf der VM
Installieren Sie auf der VM die beiden npm-Bibliotheken, die wir in unserem JavaScript-Skript verwenden werden: @azure/keyvault-secrets und @azure/identity.
Installieren Sie im SSH-Terminal Node.js und npm mit den folgenden Befehlen:
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - && \ sudo apt-get install -y nodejsErstellen Sie ein App-Verzeichnis, und initialisieren Sie das Node.js-Paket:
mkdir app && cd app && npm init -yInstallieren Sie die Azure Servicepakete mit
npm:npm install @azure/keyvault-secrets @azure/identity
Erstellen und Bearbeiten der JavaScript-Beispieldatei
Erstellen Sie auf der VM im Verzeichnis
appeine JavaScript-Datei namens index.js.touch index.jsÖffnen Sie die Datei mit dem Nano-Text-Editor:
nano index.jsKopieren Sie den folgenden Code, wobei Sie
<vault-name>durch den Namen Ihres Key Vault ersetzen, und fügen Sie ihn in den Nano-Editor ein:// 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); })Speichern Sie die Datei über STRG + X.
Geben Sie auf die Frage
Save modified buffer?den Wert y ein.Geben Sie auf die Frage
File Name to Write: index.jsden Wert Enter ein.
Ausführen der Node.js-Beispiel-App
Führen Sie abschließend index.js aus. Hat alles richtig funktioniert, sollte der Wert Ihres Geheimnisses zurückgeben werden:
node index.js
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Bereinigen von Ressourcen
Löschen Sie den virtuellen Computer und Ihren Schlüsseltresor, wenn diese nicht mehr benötigt werden. Das geht ganz schnell, indem Sie einfach die Ressourcengruppe löschen, zu der diese Elemente gehören:
az group delete -g "myResourceGroup"