Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Key Vault pomaga chronić klucze, wpisy tajne i certyfikaty, takie jak klucze interfejsu API i parametry połączenia bazy danych.
W tym samouczku skonfigurujesz aplikację Node.js do odczytywania informacji z usługi Azure Key Vault za pomocą tożsamości zarządzanej dla zasobów platformy Azure. Uczysz się, jak:
- Stwórz magazyn kluczy
- Przechowaj tajemnicę w Key Vault
- Tworzenie maszyny wirtualnej z systemem Azure Linux
- Włączanie tożsamości zarządzanej dla maszyny wirtualnej
- Udzielanie wymaganych uprawnień aplikacji konsolowej do odczytywania danych z Key Vault
- Pobieranie tajemnicy z Key Vault
Przed rozpoczęciem przeczytaj Key Vault podstawowe pojęcia.
Jeśli nie masz subskrypcji Azure, utwórz konto free.
Prerequisites
W przypadku systemów Windows, Mac i Linux:
Zaloguj się do Azure
Zaloguj się do Azure przy użyciu Azure CLI:
az login
Utwórz grupę zasobów i magazyn kluczy
Ten przewodnik szybkiego startu korzysta z wcześniej utworzonego Azure Key Vault. Można utworzyć magazyn kluczy, wykonując kroki opisane w tych szybkich przewodnikach startowych:
- Azure CLI Szybki start
- Azure PowerShell Szybki start
- Azure portal - szybkie wprowadzenie
Alternatywnie możesz uruchomić polecenia Azure CLI.
Important
Każdy magazyn kluczy musi mieć unikatową nazwę. Zastąp <vault-name> nazwą magazynu kluczy w poniższych przykładach.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Wypełnij swój magazyn kluczy tajemnicą
Utwórzmy wpis tajny o nazwie mySecret z wartością Success!. Tajna informacja może być hasłem, ciągiem połączeniowym SQL lub innymi informacjami, które muszą być zarówno zabezpieczone, jak i dostępne dla Twojej aplikacji.
Aby dodać sekret do nowo utworzonego magazynu kluczy, użyj następującego polecenia:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Tworzenie maszyny wirtualnej
Utwórz maszynę wirtualną o nazwie myVM przy użyciu jednej z następujących metod:
| Linux | Windows |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Portal Azure | Portal Azure |
Aby utworzyć maszynę wirtualną z systemem Linux przy użyciu Azure CLI, użyj polecenia az vm create. W poniższym przykładzie dodano konto użytkownika o nazwie azureuser. Parametr --generate-ssh-keys generuje klucz SSH i przechowuje go w domyślnej lokalizacji klucza (~/.ssh).
az vm create \
--resource-group <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Zanotuj wartość publicIpAddress w danych wyjściowych.
Przypisywanie tożsamości do maszyny wirtualnej
Utwórz tożsamość zarządzaną przypisaną przez system dla maszyny wirtualnej przy użyciu polecenia az vm identity assign :
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Zanotuj tożsamość przypisaną przez system w danych wyjściowych:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Przypisywanie uprawnień do tożsamości maszyny wirtualnej
Przypisz tożsamości zarządzanej maszyny wirtualnej rolę Użytkownik wpisów tajnych usługi Key Vault w magazynie kluczy:
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>
Zaloguj się do maszyny wirtualnej
Aby zalogować się do maszyny wirtualnej, postępuj zgodnie z instrukcjami w temacie Łączenie i logowanie się do maszyny wirtualnej Azure z systemem Linux lub Connect i zaloguj się do maszyny wirtualnej Azure z systemem Windows.
Aby zalogować się do maszyny wirtualnej z systemem Linux, użyj ssh wraz z poleceniem z kroku Utwórz maszynę wirtualną:
ssh azureuser@<public-ip-address>
Instalowanie bibliotek Node.js i npm na maszynie wirtualnej
Na maszynie wirtualnej zainstaluj dwie biblioteki npm używane przez przykładowy skrypt: @azure/keyvault-secrets i @azure/identity.
W terminalu SSH zainstaluj Node.js i narzędzie npm:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && \ sudo apt-get install -y nodejsUtwórz katalog aplikacji i zainicjuj pakiet Node.js:
mkdir app && cd app && npm init -yZainstaluj pakiety Azure za pomocą polecenia
npm:npm install @azure/keyvault-secrets @azure/identity
Tworzenie i edytowanie przykładowego pliku JavaScript
Na maszynie
appwirtualnej w katalogu utwórz plik JavaScript o nazwieindex.js:touch index.jsOtwórz plik za pomocą edytora tekstów Nano :
nano index.jsWklej następujący kod do edytora, wstawiając w miejsce
<vault-name>nazwę magazynu kluczy:// 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); })Zapisz plik za pomocą klawiszy Ctrl+X.
W monicie
Save modified buffer?wprowadź y.Po wyświetleniu monitu
File Name to Write: index.jsnaciśnij klawisz Enter.
Uruchamianie przykładowej aplikacji Node.js
Uruchom program index.js. Jeśli wszystko jest poprawnie skonfigurowane, aplikacja wypisuje tajną wartość:
node index.js
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Uprzątnij zasoby
Gdy nie są już potrzebne, usuń maszynę wirtualną i magazyn kluczy. Najszybszym sposobem jest usunięcie grupy zasobów, do której należą:
az group delete -g "myResourceGroup"
Dalsze kroki
REST API Azure Key Vault