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.
Erste Schritte mit der Azure Key Vault Managed HSM-Clientbibliothek für JavaScript. Verwaltetes HSM ist ein vollständig verwalteter, hochverwendiger, einzelinstanzenfähiger, standardkonformer Clouddienst, mit dem Sie kryptografische Schlüssel für Ihre Cloudanwendungen schützen können, wobei FIPS 140-3 Level 3 validierte HSMs verwendet werden. Weitere Informationen zu verwaltetem HSM erfahren Sie in der Übersicht.
In dieser Schnellstartanleitung erfahren Sie, wie Sie mithilfe der JavaScript-Clientbibliothek auf Kryptografievorgänge auf Schlüssel in einem verwalteten HSM zugreifen und diese ausführen.
Verwaltete HSM-Clientbibliotheksressourcen:
API-Referenzdokumentation | Bibliotheksquellcode | Package (npm)
Voraussetzungen
- Ein Azure-Abonnement. Erstellen Sie ein kostenloses Konto.
- Ein bereitgestelltes und aktiviertes Managed HSM. Siehe Quickstart: Bereitstellen und Aktivieren eines verwalteten HSM mithilfe von Azure CLI.
- Ein Schlüssel, der in Ihrem verwalteten HSM erstellt wurde. Siehe Verwalten von Schlüsseln in einem verwalteten HSM.
- Eine Azure Ressource mit einer verwalteten Identität (z. B. einer VM, app Service oder Azure Funktion) oder Azure CLI für die lokale Entwicklung.
- Der verwalteten Identität muss die entsprechende lokale Managed HSM RBAC-Rolle zugewiesen sein. Siehe "Sicherer Zugriff auf Ihre verwalteten HSMs".
Einrichten Ihrer lokalen Umgebung
In dieser Schnellstartanleitung wird die Azure Identitätsbibliothek mit Azure CLI verwendet, um sich bei Azure Diensten zu authentifizieren. Entwickler können auch Visual Studio Code verwenden, um ihre Anrufe zu authentifizieren. Weitere Informationen finden Sie unter Authenticate the client with Azure Identity client library.
Anmelden bei Azure
Führen Sie den az login Befehl aus, um sich anzumelden:
az login
Erstellen eines Projektordners und Initialisieren
Erstellen Sie einen Projektordner, und navigieren Sie zu diesem Ordner:
mkdir mhsm-js-app && cd mhsm-js-appInitialisieren Sie das Projekt:
npm init -y
Installieren der Pakete
Installieren Sie die Clientbibliotheken Azure Identity und Key Vault Keys:
npm install @azure/identity @azure/keyvault-keys
Erstellen des Beispielcodes
Erstellen Sie eine Datei index.js mit dem folgenden Code. Ersetzen Sie <hsm-name> durch den Namen Ihres verwalteten HSM und <key-name> durch einen vorhandenen Schlüsselnamen.
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient, CryptographyClient } = require("@azure/keyvault-keys");
async function main() {
// Use DefaultAzureCredential for automatic credential selection
const credential = new DefaultAzureCredential();
// Connect to Managed HSM - replace with your HSM URI
const hsmUri = "https://<hsm-name>.managedhsm.azure.net";
const keyClient = new KeyClient(hsmUri, credential);
// Get a key reference
const keyName = "<key-name>";
console.log(`Retrieving key '${keyName}' from Managed HSM...`);
const key = await keyClient.getKey(keyName);
console.log(`Key retrieved. Key type: ${key.keyType}`);
// Perform cryptographic operations
const cryptoClient = new CryptographyClient(key, credential);
// Encrypt data
const plaintext = Buffer.from("Hello, Managed HSM!");
console.log(`\nOriginal text: ${plaintext.toString()}`);
const encryptResult = await cryptoClient.encrypt("RSA-OAEP-256", plaintext);
console.log(`Encrypted (base64): ${encryptResult.result.toString("base64").substring(0, 64)}...`);
// Decrypt data
const decryptResult = await cryptoClient.decrypt("RSA-OAEP-256", encryptResult.result);
console.log(`Decrypted text: ${decryptResult.result.toString()}`);
console.log("\nDone!");
}
main().catch((error) => {
console.error("An error occurred:", error);
process.exit(1);
});
Ausführen der Anwendung
Führen Sie die Anwendung aus.
node index.js
Eine ähnliche Ausgabe wie die folgende sollte angezeigt werden:
Retrieving key 'myrsakey' from Managed HSM...
Key retrieved. Key type: RSA-HSM
Original text: Hello, Managed HSM!
Encrypted (base64): NWE4ZjNiMmMxZDRlNWY2YTdiOGM5ZDBlMWYyYTNiNGM...
Decrypted text: Hello, Managed HSM!
Done!
Grundlegendes zum Code
Authentifizierung mit DefaultAzureCredential
DefaultAzureCredential wählt automatisch die passenden Zugangsdaten basierend auf Ihrer Umgebung aus.
| Umgebung | Verwendete Anmeldeinformationen |
|---|---|
| Azure VMs, App-Dienst, Funktionen | Vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität |
| Azure Kubernetes Service | Workload-Identität |
| Lokale Entwicklung | Anmeldeinformationen für Azure CLI, Visual Studio oder VS Code |
| CI/CD-Pipelines | Workload-Identitätsverbund oder Dienstprinzipal |
Die Berechtigungsnachweise überprüfen diese Quellen in der folgenden Reihenfolge:
- Umgebungsvariablen
- Workload-Identität
- Verwaltete Identität
- Azure CLI
- Azure PowerShell
- Visual Studio/VS Code-Anmeldeinformationen
Für Produktionsworkloads in Azure werden verwaltete Identitäten dringend empfohlen, da sie die Verwaltung von Anmeldeinformationen vollständig beseitigen.
Wichtige Vorgänge
Die KeyClient Klasse bietet Methoden für:
- Erstellen, Abrufen, Aktualisieren und Löschen von Schlüsseln
- Liste Schlüssel und Schlüsselversionen
- Sichern und Wiederherstellen von Schlüsseln
Die CryptographyClient Klasse stellt kryptografische Vorgänge bereit:
- Verschlüsseln und Entschlüsseln von Daten
- Signieren und Überprüfen von Signaturen
- Schlüssel verpacken und auspacken
Zuweisen verwalteter HSM-Rollen
Damit Ihre Anwendung auf Zugriffsschlüssel zugreifen kann, weisen Sie Ihrer verwalteten Identität die entsprechende lokale RBAC-Rolle für Managed HSM zu. Ersetzen Sie <vm-name>, <resource-group> und <hsm-name> durch Ihre tatsächlichen Werte.
# Get the principal ID of your managed identity
principalId=$(az vm identity show --name <vm-name> --resource-group <resource-group> --query principalId -o tsv)
# Assign the Crypto User role for key operations
az keyvault role assignment create \
--hsm-name <hsm-name> \
--role "Managed HSM Crypto User" \
--assignee $principalId \
--scope /keys
Weitere Informationen zu Rollen und Berechtigungen finden Sie unter Managed HSM local RBAC built-in roles.
Bereinigen von Ressourcen
Wenn sie nicht mehr benötigt wird, löschen Sie die Ressourcengruppe und alle zugehörigen Ressourcen:
az group delete --name <resource-group>
Warnung
Durch das Löschen der Ressourcengruppe wird das verwaltete HSM in einen vorläufig gelöschten Zustand versetzt. Das verwaltete HSM wird weiterhin in Rechnung gestellt, bis es gelöscht wird. Siehe Vorläufiges Löschen und Löschschutz des verwalteten HSM
Nächste Schritte
- Informationen zum sicheren Zugriff auf Ihre verwalteten HSMs
- Konfigurieren der automatischen Schlüsseldrehung
- Sehen Sie sich die bewährten Methoden für verwaltetes HSM an.
- Informationen über integrierte lokale RBAC-Rollen von Managed HSM