Kurz: Použití Azure Key Vault s virtuálním počítačem v JavaScriptu

Azure Key Vault pomáhá chránit klíče, tajné kódy a certifikáty, jako jsou klíče rozhraní API a připojovací řetězce databáze.

V tomto kurzu nastavíte aplikaci Node.js pro čtení informací z Azure Key Vault pomocí spravované identity pro prostředky Azure. Naučíte se:

  • Vytvořte trezor klíčů.
  • Uložení tajného kódu do Key Vault
  • Vytvoření virtuálního počítače Azure s Linuxem
  • Umožněte spravovanou identitu pro virtuální počítač
  • Udělte požadovaná oprávnění ke čtení dat z Key Vault konzolové aplikace.
  • Načtení tajného kódu z Key Vault

Než začnete, přečtěte si základní koncepty Key Vault.

Pokud nemáte předplatné Azure, vytvořte si účet free.

Prerequisites

Pro Windows, Mac a Linux:

  • Git
  • Aktuální verze Azure CLI. Spusťte az --version, chcete-li zkontrolovat nainstalovanou verzi.

Přihlásit se do Azure

Přihlaste se k Azure pomocí Azure CLI:

az login

Vytvořte skupinu prostředků a trezor klíčů

V tomto rychlém startu se používá předem vytvořený trezor klíčů Azure. Pro vytvoření úložiště klíčů postupujte podle kroků uvedených v těchto rychlých úvodech.

Případně můžete tyto příkazy Azure CLI spustit.

Important

Každý trezor klíčů musí mít jedinečný název. Nahraďte <vault-name> názvem trezoru klíčů v následujících příkladech.

az group create --name "myResourceGroup" -l "EastUS"

az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true

Naplňte svůj trezor klíčů tajemstvím.

Pojďme vytvořit tajný kód s názvem mySecret s hodnotou Success!. Tajným kódem může být heslo, připojovací řetězec SQL nebo jakékoli jiné informace, které potřebujete k zabezpečení a dostupnosti vaší aplikace.

K přidání tajného kódu do nově vytvořeného trezoru klíčů použijte následující příkaz:

az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"

Vytvoření virtuálního počítače

Pomocí jedné z následujících metod vytvořte virtuální počítač myVM s názvem myVM :

Linux Windows
Azure CLI Azure CLI
PowerShell PowerShell
portál Azure portál Azure

Pokud chcete vytvořit virtuální počítač s Linuxem pomocí Azure CLI, použijte příkaz az vm create. Následující příklad přidá uživatelský účet s názvem azureuser. Parametr --generate-ssh-keys vygeneruje klíč SSH a uloží ho do výchozího umístění klíče (~/.ssh).

az vm create \
  --resource-group <resource-group> \
  --name myVM \
  --image Ubuntu2204 \
  --admin-username azureuser \
  --generate-ssh-keys

Všimněte si hodnoty publicIpAddress ve výstupu.

Přiřazení identity k virtuálnímu počítači

Pomocí příkazu az vm identity assign vytvořte spravovanou identitu přiřazenou systémem pro virtuální počítač:

az vm identity assign --name "myVM" --resource-group "<resource-group>"

Všimněte si identity přiřazené systémem ve výstupu:

{
  "systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "userAssignedIdentities": {}
}

Přiřazení oprávnění identitě virtuálního počítače

Přiřaďte spravované identitě virtuálního počítače roli Key Vault Secrets User v trezoru klíčů:

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>

Přihlášení k virtuálnímu počítači

Pokud se chcete přihlásit k virtuálnímu počítači, postupujte podle pokynů v části Připojení a přihlaste se k Azure virtuálnímu počítači s Linuxem nebo Připojením a přihlaste se k Azure virtuálnímu počítači se spuštěným Windows.

Pokud se chcete přihlásit k virtuálnímu počítači s ssh Linuxem, použijte <public-ip-address> z kroku Vytvoření virtuálního počítače:

ssh azureuser@<public-ip-address>

Instalace Node.js a knihoven npm na virtuální počítač

Na virtuálním počítači nainstalujte dvě knihovny npm, které ukázkový skript používá: @azure/keyvault-secrets a @azure/identity.

  1. V terminálu SSH nainstalujte Node.js a npm:

    curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && \
        sudo apt-get install -y nodejs
    
  2. Vytvořte adresář aplikace a inicializujete balíček Node.js:

    mkdir app && cd app && npm init -y
    
  3. Nainstalujte balíčky Azure pomocínpm:

    npm install @azure/keyvault-secrets @azure/identity
    

Vytvoření a úprava ukázkového souboru JavaScriptu

  1. Na virtuálním počítači v app adresáři vytvořte soubor JavaScriptu s názvem index.js:

    touch index.js
    
  2. Otevřete soubor v textovém editoru Nano :

    nano index.js
    
  3. Do editoru vložte následující kód a nahraďte <vault-name> ho názvem vašeho trezoru klíčů:

    // 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);
    })
    
  4. Uložte soubor pomocí ctrl+X.

  5. Na výzvu Save modified buffer? zadejte y.

  6. Na příkazovém File Name to Write: index.js řádku stiskněte Enter.

Spuštění ukázkové aplikace Node.js

Spusťte index.js. Pokud je všechno správně nakonfigurované, aplikace vytiskne hodnotu tajného kódu:

node index.js

The value of secret 'mySecret' in '<vault-name>' is: 'Success!'

Upravte zdroje

Pokud je už nepotřebujete, odstraňte virtuální počítač a trezor klíčů. Nejrychlejším způsobem je odstranit skupinu prostředků, do které patří:

az group delete -g "myResourceGroup"

Další kroky

rozhraní REST API Azure Key Vault