Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Aan de slag met de beheerde HSM-clientbibliotheek van Azure Key Vault voor JavaScript. Beheerde HSM is een volledig beheerde, maximaal beschikbare cloudservice die compatibel is met één tenant, waarmee u cryptografische sleutels voor uw cloudtoepassingen kunt beveiligen met behulp van met FIPS 140-3 niveau 3 gevalideerde HSM's. Raadpleeg het overzicht voor meer informatie over beheerde HSM.
In deze quickstart leert u hoe u cryptografische bewerkingen kunt openen en uitvoeren op sleutels in een beheerde HSM met behulp van de JavaScript-clientbibliotheek.
Resources voor beheerde HSM-clientbibliotheek:
API-referentiedocumentatie | Bibliotheekbroncode | Package (npm)
Vereiste voorwaarden
- Een Azure-abonnement. Maak er gratis een.
- Een geconfigureerde en geactiveerde beheerbare HSM. Zie quickstart: Een beheerde HSM inrichten en activeren met behulp van Azure CLI.
- Een sleutel die is gemaakt in uw beheerde HSM. Zie Sleutels beheren in een beheerde HSM.
- Een Azure-resource met een beheerde identiteit (zoals een VM, App Service of Azure Function) of Azure CLI voor lokale ontwikkeling.
- Aan de beheerde identiteit moet de juiste lokale RBAC-rol voor een beheerde HSM zijn toegewezen. Zie Beveiligde toegang tot uw beheerde HSM's.
Uw lokale omgeving instellen
In deze quickstart wordt de Azure Identity-bibliotheek met Azure CLI gebruikt om te verifiëren bij Azure-services. Ontwikkelaars kunnen Visual Studio Code ook gebruiken om hun aanroepen te verifiëren. Zie De client verifiëren met de Azure Identity-clientbibliotheek voor meer informatie.
Aanmelden bij Azure
Voer de az login opdracht uit om u aan te melden:
az login
Een projectmap maken en initialiseren
Maak een projectmap en navigeer ernaartoe:
mkdir mhsm-js-app && cd mhsm-js-appInitialiseer het project:
npm init -y
De pakketten installeren
Installeer de Clientbibliotheken voor Azure Identity en Key Vault-sleutels:
npm install @azure/identity @azure/keyvault-keys
De voorbeeldcode maken
Maak een bestand met de naam index.js met de volgende code. Vervang door <hsm-name> de naam van uw beheerde HSM en <key-name> door een bestaande sleutelnaam.
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);
});
De toepassing uitvoeren
Voer de toepassing uit:
node index.js
De uitvoer moet er ongeveer zo uitzien:
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!
De code begrijpen
Verificatie met DefaultAzureCredential
DefaultAzureCredential selecteert automatisch de juiste referentie op basis van uw omgeving:
| Milieu | Gebruikte inloggegevens |
|---|---|
| Azure VM's, App Service, Functions | Door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit |
| Azure Kubernetes Service | Workload-identiteit |
| Lokale ontwikkeling | Aanmeldgegevens voor Azure CLI, Visual Studio of VS Code |
| CI/CD-pijplijnen | Federatie van workload-identiteit of service-principal |
De inloggegevens controleren deze bronnen in de volgende volgorde:
- Omgevingsvariabelen
- Workload-identiteit
- Beheerde identiteit
- Azure-opdrachtregelinterface (CLI)
- Azure PowerShell
- Visual Studio/VS Code-aanmeldgegevens
Voor productieworkloads in Azure worden beheerde identiteiten sterk aanbevolen omdat ze referentiebeheer volledig elimineren.
Belangrijkste bewerkingen
De KeyClient klasse biedt methoden voor het volgende:
- Sleutels maken, ophalen, bijwerken en verwijderen
- Sleutels en sleutelversies vermelden
- Backup- en herstelsleutels
De CryptographyClient klasse biedt cryptografische bewerkingen:
- Gegevens versleutelen en ontsleutelen
- Handtekeningen ondertekenen en verifiëren
- Sleutels verpakken en uitpakken
Beheerde HSM-rollen toewijzen
Wijs de juiste lokale RBAC-rol van beheerde HSM toe aan uw beheerde identiteit om toegang te krijgen tot sleutels voor uw toepassing:
# 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
Zie voor meer informatie over rollen en machtigingen Ingebouwde rollen voor beheerde HSM lokaal RBAC.
De hulpbronnen opschonen
Verwijder de resourcegroep en alle gerelateerde resources wanneer u deze niet meer nodig hebt:
az group delete --name <resource-group>
Waarschuwing
Als u de resourcegroep verwijdert, wordt de beheerde HSM in een voorlopig verwijderde status gebracht. De beheerde HSM wordt nog steeds gefactureerd totdat het wordt verwijderd. Zie Voorlopige verwijdering van HSM en beveiliging tegen opschonen
Volgende stappen
- Meer informatie over beveiligde toegang tot uw beheerde HSM's
- Automatische sleutelrotatie configureren
- Beoordeel Best practices voor beheerde HSM's
- Meer informatie over ingebouwde rollen van lokale RBAC voor beheerde HSM