Hızlı Başlangıç: Azure Key Vault Yönetilen HSM istemci kitaplığı - JavaScript için

JavaScript için Azure Key Vault Yönetilen HSM istemci kitaplığını kullanmaya başlayın. Yönetilen HSM, FIPS 140-3 Düzey 3 doğrulanmış HSM'leri kullanarak bulut uygulamalarınız için şifreleme anahtarlarını korumanızı sağlayan, tam olarak yönetilen, yüksek oranda kullanılabilir, tek kiracılı, standartlara uyumlu bir bulut hizmetidir. Yönetilen HSM hakkında daha fazla bilgi için Genel Bakış'ı gözden geçirin.

Bu hızlı başlangıçta, JavaScript istemci kitaplığını kullanarak Yönetilen HSM'deki anahtarlara erişmeyi ve bu anahtarlarda şifreleme işlemleri gerçekleştirmeyi öğreneceksiniz.

Yönetilen HSM istemci kitaplığı kaynakları:

API başvuru belgeleri | Kütüphane kaynak kodu | Paket (npm)

Önkoşullar

Yerel ortamınızı ayarlama

Bu hızlı başlangıçta, Azure hizmetlerinde kimlik doğrulaması yapmak için Azure CLI ile Azure Kimlik kitaplığı kullanılır. Geliştiriciler, aramalarının kimliğini doğrulamak için Visual Studio Code de kullanabilir. Daha fazla bilgi için bkz. İstemciyi Azure Identity istemci kitaplığıyla kimlik doğrulama.

Azure oturum açma

az login Oturum açmak için komutunu çalıştırın:

az login

Proje klasörü oluşturma ve başlatma

  1. Bir proje klasörü oluşturun ve klasörüne gidin:

    mkdir mhsm-js-app && cd mhsm-js-app
    
  2. Projeyi başlatın:

    npm init -y
    

Paketleri yükleme

Azure Kimliği ve Key Vault Anahtarları istemci kitaplıklarını yükleyin:

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

Örnek kodu oluşturma

Aşağıdaki kodla adlı index.js bir dosya oluşturun. Yönetilen HSM adınızı <hsm-name> ile ve mevcut bir anahtar adını <key-name> ile değiştirin.

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);
});

Uygulamayı çalıştırma

Uygulamayı çalıştırın:

node index.js

Aşağıdakine benzer bir çıktı görmeniz gerekir:

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!

Kodu anlama

DefaultAzureCredential ile kimlik doğrulaması

DefaultAzureCredential ortamınıza göre uygun kimlik bilgilerini otomatik olarak seçer:

Çevre Kullanılan kimlik bilgileri
Azure VM’leri, Azure App Service, Azure İşlevleri Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlik
Azure Kubernetes Service İş yükü tanımlayıcı
Yerel geliştirme Azure CLI, Visual Studio veya VS Code kimlik bilgileri
CI/CD boru hatları İş yükü kimliği federasyonu veya hizmet sorumlusu

Kimlik doğrulama bilgileri şu kaynakları sırayla kontrol eder:

  1. Ortam değişkenleri
  2. İş yükü tanımlayıcı
  3. İdare edilen kimlik
  4. Azure CLI
  5. Azure PowerShell
  6. Visual Studio / VS Code kimlik bilgileri

Azure üretim iş yükleri için, kimlik bilgisi yönetimini tamamen ortadan kaldırdıkları için yönetilen kimlikler kesinlikle önerilir.

Önemli işlemler

KeyClient sınıfı aşağıdakilere yönelik yöntemler sağlar:

  • Anahtarları oluşturma, alma, güncelleştirme ve silme
  • Anahtarları ve anahtar sürümlerini listele
  • Yedekleme ve geri yükleme anahtarları

CryptographyClient sınıfı şifreleme işlemleri sağlar:

  • Verileri şifreleme ve şifresini çözme
  • İmzaları imzala ve doğrula
  • Anahtarları sarma ve açma

Yönetilen HSM rollerini atayın

Uygulamanızın anahtarlara erişebilmesi için, yönetilen kimliğinize uygun Yerel Yönetilen HSM RBAC rolünü atayın. , <vm-name>ve <resource-group> değerlerini gerçek değerlerinizle değiştirin<hsm-name>.

# 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

Roller ve izinler hakkında daha fazla bilgi için bkz. Yönetilen HSM yerel RBAC yerleşik rolleri.

Kaynakları temizle

Artık gerekli olmadığında kaynak grubunu ve tüm ilgili kaynakları silin:

az group delete --name <resource-group>

Uyarı

Kaynak grubu silindiğinde Yönetilen HSM geçici olarak silinmiş duruma getirilir. Yönetilen HSM temizlenene kadar faturalandırılmaya devam eder. Yönetilen HSM geçici silme ve temizleme koruması bölümüne bakın

Sonraki Adımlar