Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Azure Key Vault ułatwia ochronę kluczy, wpisów tajnych i certyfikatów, takich 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 przy użyciu tożsamości zarządzanych dla zasobów platformy Azure. Uczysz się, jak:
- Stwórz magazyn kluczy
- Przechowywanie tajemnicy w usłudze Key Vault
- Tworzenie maszyny wirtualnej z systemem Linux platformy Azure
- Włączanie tożsamości zarządzanej dla maszyny wirtualnej
- Udzielanie wymaganych uprawnień aplikacji konsolowej do odczytywania danych z usługi Key Vault
- Pobieranie tajemnicy z Key Vault
Przed rozpoczęciem zapoznaj się z podstawowymi pojęciami dotyczącymi usługi Key Vault.
Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
Prerequisites
W przypadku systemów Windows, Mac i Linux:
- Git
- Ten samouczek wymaga uruchomienia interfejsu wiersza polecenia platformy Azure lokalnie. Musisz mieć zainstalowany interfejs wiersza polecenia platformy Azure w wersji 2.0.4 lub nowszej. Uruchom
az --version, aby znaleźć wersję. Jeśli konieczna będzie instalacja interfejsu wiersza polecenia lub jego uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure 2.0.
Logowanie się do platformy Azure
Aby zalogować się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure, wpisz:
az login
Utwórz grupę zasobów i magazyn kluczy
Ten szybki start używa wcześniej utworzonego magazynu kluczy Azure. Można utworzyć magazyn kluczy, wykonując kroki opisane w tych szybkich przewodnikach startowych:
- Szybki start korzystania z interfejsu wiersza polecenia platformy Azure
- Szybki start Azure PowerShell
- Szybki start w usłudze Portal Azure
Alternatywnie możesz uruchomić te polecenia Azure CLI.
Important
Każdy magazyn kluczy musi mieć unikatową nazwę. Zamień <your-unique-keyvault-name> na nazwę Twojego magazynu kluczy w poniższych przykładach.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-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, parametrami połączenia SQL lub innymi danymi, które musisz zarówno zabezpieczyć, jak i zapewnić ich dostępność dla aplikacji.
Aby dodać sekret do nowo utworzonego magazynu kluczy, użyj następującego polecenia:
az keyvault secret set --vault-name "<your-unique-keyvault-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 interfejsu wiersza polecenia platformy Azure, użyj polecenia az vm create . W poniższym przykładzie dodano konto użytkownika o nazwie azureuser. Parametr --generate-ssh-keys jest używany, aby automatycznie wygenerować klucz SSH i umieścić go w domyślnej lokalizacji klucza (~/.ssh).
az vm create \
--resource-group myResourceGroup \
--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ść przypisaną przez system dla maszyny wirtualnej przy użyciu polecenia interfejsu wiersza polecenia platformy Azure az vm identity assign.
az vm identity assign --name "myVM" --resource-group "myResourceGroup"
Zanotuj tożsamość przypisaną przez system, która jest wyświetlana w poniższym kodzie. Dane wyjściowe poprzedniego polecenia to:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Przypisywanie uprawnień do tożsamości maszyny wirtualnej
Teraz możesz przypisać wcześniej utworzone uprawnienia tożsamości do magazynu kluczy, uruchamiając następujące polecenie:
az role assignment create --role "Key Vault Secrets User" --assignee "<systemAssignedIdentity>" --scope /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>
Logowanie się do maszyny wirtualnej
Aby zalogować się do maszyny wirtualnej, postępuj zgodnie z instrukcjami w Connect and sign in to an Azure virtual machine running Linux lub Connect and sign in to an Azure virtual machine running Windows.
Aby zalogować się do maszyny wirtualnej z systemem Linux, możesz użyć polecenia ssh z wartością <publicIpAddress> podaną w kroku Tworzenie maszyny wirtualnej:
ssh azureuser@<PublicIpAddress>
Instalowanie bibliotek Node.js i npm na maszynie wirtualnej
Na maszynie wirtualnej zainstaluj dwie biblioteki npm, których będziemy używać w skrypcie języka JavaScript: @azure/keyvault-secrets i @azure/identity.
W terminalu SSH zainstaluj Node.js i narzędzie npm przy użyciu następujących poleceń:
curl -sL https://deb.nodesource.com/setup_14.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 usług platformy Azure przy użyciu 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 nazwie index.js.touch index.jsOtwórz plik za pomocą edytora tekstów Nano :
nano index.jsSkopiuj następujący kod, zastępując <ciąg your-unique-keyvault-name> nazwą magazynu kluczy i wklej go w edytorze Nano:
// index.js const { SecretClient } = require("@azure/keyvault-secrets"); const { DefaultAzureCredential } = require("@azure/identity"); // Your Azure Key Vault name and secret name const keyVaultName = "<your-unique-keyvault-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ą Ctrl + x.
Po zapytaniu
Save modified buffer?wprowadź y.Po wyświetleniu monitu
File Name to Write: index.jswprowadź enter.
Uruchamianie przykładowej aplikacji Node.js
Na koniec uruchom index.js. Jeśli wszystko poszło dobrze, powinien zwrócić wartość Twojej tajemnicy.
node index.js
The value of secret 'mySecret' in '<your-unique-keyvault-name>' is: 'Success!'
Uprzątnij zasoby
Gdy maszyna wirtualna i magazyn kluczy nie będą już potrzebne, usuń je. Możesz to zrobić szybko, usuwając grupę zasobów, do której należą:
az group delete -g myResourceGroup