JavaScript 用 Azure Key Vault キー クライアント ライブラリ - バージョン 4.8.0

Azure Key Vault は、セキュリティで保護されたキーを使用して、認証キー、ストレージ アカウント キー、データ暗号化キー、.pfx ファイル、パスワードを暗号化できるサービスです。 Azure Key Vaultの詳細については、「Azure Key Vaultとは」を参照してください。

Azure Key Vault Managed HSM は、FIPS 140-2 レベル 3 の検証済み HSM を使用してクラウド アプリケーションの暗号化キーを保護できるようにする、フル マネージドの高可用性シングルテナント標準準拠クラウド サービスです。 Azure Key Vault Managed HSM の詳細については、「Azure Key Vault Managed HSM とは」を参照してください。

Azure Key Vault キー ライブラリ クライアントは、RSA キー、楕円曲線 (EC) キー、およびマネージド HSM に対して実行する場合の対称 (10 月) キーをサポートします。各キーは、ハードウェア セキュリティ モジュール (HSM) で対応します。 キーとそのバージョンを作成、取得、更新、削除、消去、バックアップ、復元、および一覧表示する操作が提供されます。

Node.js アプリケーションで Azure Key Vault キー用のクライアント ライブラリを使用して、次の操作を行います。

  • 省略記号曲線または RSA 暗号化を使用してキーを作成します。必要に応じて、ハードウェア セキュリティ モジュール (HSM) によってサポートされます。
  • インポート、削除、および更新キー。
  • 属性を使用して、1 つ以上のキーと削除されたキーを取得します。
  • 削除されたキーを回復し、バックアップされたキーを復元します。
  • キーのバージョンを取得します。

このライブラリで使用できる暗号化クライアントを使用すると、次のアクセスも可能です。

  • Encrypting
  • 解読
  • 署名
  • 確認中
  • キーの折り返し
  • キーのラップ解除

注: このパッケージは、Azure Key Vault サービスの制限によりブラウザーで使用できません。ガイダンスについては、こちらのドキュメントを参照してください。

主要リンク:

はじめに

現在サポートされている環境

前提条件

パッケージをインストールする

npm を使用して Azure Key Vault Key クライアント ライブラリをインストールする

npm install @azure/keyvault-keys

ID ライブラリをインストールする

Azure Key Vault クライアントは、Azure ID ライブラリを使用して認証します。 npm を使用してインストールする

npm install @azure/identity

TypeScript の構成

TypeScript ユーザーには、ノードの種類の定義がインストールされている必要があります。

npm install @types/node

また、tsconfig.jsonで を有効にする compilerOptions.allowSyntheticDefaultImports 必要があります。 を有効compilerOptions.esModuleInteropallowSyntheticDefaultImportsにした場合、既定では が有効になっていることに注意してください。 詳細については、「 TypeScript のコンパイラ オプション ハンドブック 」を参照してください。

主要な概念

  • キー クライアントは、JavaScript アプリケーションから Azure Key Vault API のキーに関連する API メソッドを操作するための主要なインターフェイスです。 初期化されると、キーの作成、読み取り、更新、削除に使用できる基本的な一連のメソッドが提供されます。
  • キー バージョンは、Key Vault内のキーのバージョンです。 ユーザーが一意のキー名に値を割り当てるたびに、そのキーの新しい バージョン が作成されます。 特定のバージョンがクエリに提供されていない限り、名前でキーを取得すると、常に割り当てられた最新の値が返されます。
  • 論理的な削除 を使用すると、Key Vault では削除と消去を 2 つの個別の手順としてサポートできるため、削除されたキーはすぐに失われるわけではありません。 これは、Key Vaultで論理的な削除が有効になっている場合にのみ発生します。
  • キー バックアップは、作成された任意のキーから生成できます。 これらのバックアップはバイナリ データとして提供され、以前に削除されたキーの再生成にのみ使用できます。
  • Cryptography クライアントは、Key Vault API のキー API メソッドと対話する別のインターフェイスです。 このクライアントは、Key Vaultで既に作成されているキーを使用して実行できる暗号化操作にのみ焦点を当てています。 このクライアントの詳細については、「 Cryptography 」セクションを参照してください。

Azure Active Directory での認証

Key Vault サービスは、Azure Active Directory を使用して API への要求を認証します。 @azure/identity パッケージには、アプリケーションでこれを行うために使用できるさまざまな資格情報の種類が用意されています。 の README @azure/identity には、作業を開始するための詳細とサンプルが用意されています。

Azure Key Vault サービスと対話するには、 クラスのインスタンス、コンテナー URLKeyClient、資格情報オブジェクトを作成する必要があります。 このドキュメントに示す例では、 という名前 DefaultAzureCredentialの資格情報オブジェクトを使用します。これは、ローカルの開発環境や運用環境を含むほとんどのシナリオに適しています。 また、運用環境での認証には マネージド ID を 使用することをお勧めします。

さまざまな認証方法とそれに対応する資格情報の種類の詳細については、 Azure ID のドキュメントを参照してください

簡単な例を次に示します。 最初に、 と をインポート DefaultAzureCredential します KeyClient

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

これらをインポートしたら、次に Key Vault サービスに接続できます。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

// Build the URL to reach your key vault
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`; // or `https://${vaultName}.managedhsm.azure.net` for managed HSM.

// Lastly, create our keys client and connect to the service
const client = new KeyClient(url, credential);

Azure Key Vault サービス API バージョンの指定

既定では、このパッケージでは最新の Azure Key Vault サービス バージョン () が使用されます7.2。 次に示すように、クライアント コンストラクターで オプション serviceVersion を設定することで、使用されているサービスのバージョンを変更できます。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

// Change the Azure Key Vault service API version being used via the `serviceVersion` option
const client = new KeyClient(url, credential, {
  serviceVersion: "7.0", // Or 7.1
});

次のセクションでは、Azure Key Vault キーを使用する一般的なタスクの一部をカバーするコード スニペットについて説明します。 ここで説明するシナリオは、次のもので構成されています。

キーの作成

createKeyは、Azure Key Vaultに格納されるキーを作成します。 同じ名前のキーが既に存在する場合は、新しいバージョンのキーが作成されます。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

async function main() {
  const result = await client.createKey(keyName, "RSA");
  console.log("result: ", result);
}

main();

に送信される createKey 2 番目のパラメーターは、キーの型です。 サポートされるキーの種類は、SKU と、Azure Key Vaultと Azure Managed HSM のどちらを使用しているかによって異なります。 サポートされているキーの種類の最新の一覧については、「キーについて」を参照してください

キーの取得

コンテナーからキーを読み取り戻す最も簡単な方法は、名前でキーを取得することです。 これにより、キーの最新バージョンが取得されます。 オプションのパラメーターの一部としてキーを指定する場合は、必要に応じて別のバージョンのキーを取得できます。

getKeyは、Key Vault内の以前のキー ストアを取得します。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

async function main() {
  const latestKey = await client.getKey(keyName);
  console.log(`Latest version of the key ${keyName}: `, latestKey);
  const specificKey = await client.getKey(keyName, { version: latestKey.properties.version! });
  console.log(`The key ${keyName} at the version ${latestKey.properties.version!}: `, specificKey);
}

main();

属性を使用したキーの作成と更新

次の属性は、Key Vault内の任意のキーに割り当てることもできます。

  • tags: キーの検索とフィルター処理に使用できる任意のキー値のセット。
  • keyOps: このキーで実行できる操作の配列 (encryptdecryptverifysign、、wrapKey、 )。 unwrapKey
  • enabled: キー値を読み取ることができるかどうかを決定するブール値。
  • notBefore: キー値を取得できる日付を指定します。
  • expires: キー値を取得できない日付を指定します。

これらの属性を持つオブジェクトは、 の 3 番目の createKeyパラメーターとして、次のようにキーの名前と値の直後に送信できます。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

async function main() {
  const result = await client.createKey(keyName, "RSA", {
    enabled: false,
  });
  console.log("result: ", result);
}

main();

これにより、同じキーの新しいバージョンが作成され、最新の属性が提供されます。

属性は、次のように を使用して既存のキー バージョンに updateKeyProperties更新することもできます。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

async function main() {
  const result = await client.createKey(keyName, "RSA");
  await client.updateKeyProperties(keyName, result.properties.version, {
    enabled: false,
  });
}

main();

キーの削除

メソッドは beginDeleteKey 、キーの削除を開始します。 このプロセスは、必要なリソースが利用可能になるとすぐにバックグラウンドで行われます。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

async function main() {
  const poller = await client.beginDeleteKey(keyName);
  await poller.pollUntilDone();
}

main();

Key Vaultに対して論理的な削除が有効になっている場合、この操作ではキーに削除されたキーとしてのみラベルが付けられます。 削除されたキーは更新できません。 読み取り、回復、または消去のみが可能です。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

async function main() {
  const poller = await client.beginDeleteKey(keyName);

  // You can use the deleted key immediately:
  const deletedKey = poller.getResult();

  // The key is being deleted. Only wait for it if you want to restore it or purge it.
  await poller.pollUntilDone();

  // You can also get the deleted key this way:
  await client.getDeletedKey(keyName);

  // Deleted keys can also be recovered or purged:

  // recoverDeletedKey also returns a poller, just like beginDeleteKey.
  const recoverPoller = await client.beginRecoverDeletedKey(keyName);
  await recoverPoller.pollUntilDone();

  // And here is how to purge a deleted key
  await client.purgeDeletedKey(keyName);
}

main();

Keys は完全に削除されるまでに時間がかかるため、 beginDeleteKey ガイドラインに従って基になる長時間実行操作を追跡する Poller オブジェクトを返します。 https://azure.github.io/azure-sdk/typescript_design.html#ts-lro

受信したポーリングツールを使用すると、 を呼び出して削除されたキーを poller.getResult()取得できます。 また、キーが削除されるまで個々のサービス呼び出しを実行するか、プロセスが完了するまで待機することで、削除が完了するまで待機することもできます。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

async function main() {
  const poller = await client.beginDeleteKey(keyName);

  // You can use the deleted key immediately:
  let deletedKey = poller.getResult();

  // Or you can wait until the key finishes being deleted:
  deletedKey = await poller.pollUntilDone();
  console.log(deletedKey);
}

main();

キーが完全に削除されるまで待機するもう 1 つの方法は、次のように個々の呼び出しを行うことです。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");
const { delay } = require("@azure/core-util");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

async function main() {
  const poller = await client.beginDeleteKey(keyName);

  while (!poller.isDone()) {
    await poller.poll();
    await delay(5000);
  }

  console.log(`The key ${keyName} is fully deleted`);
}

main();

自動キーローテーションの構成

KeyClient を使用すると、ローテーション ポリシーを指定することで、キーの自動キーローテーションを構成できます。 さらに、KeyClient には、指定されたキーの新しいバージョンを作成することで、キーをオンデマンドでローテーションするメソッドが用意されています。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const url = `https://<YOUR KEYVAULT NAME>.vault.azure.net`;
const client = new KeyClient(url, new DefaultAzureCredential());

async function main() {
  const keyName = "MyKeyName";

  // Set the key's automated rotation policy to rotate the key 30 days before expiry.
  const policy = await client.updateKeyRotationPolicy(keyName, {
    lifetimeActions: [
      {
        action: "Rotate",
        timeBeforeExpiry: "P30D",
      },
    ],
    // You may also specify the duration after which any newly rotated key will expire.
    // In this case, any new key versions will expire after 90 days.
    expiresIn: "P90D",
  });

  // You can get the current key rotation policy of a given key by calling the getKeyRotationPolicy method.
  const currentPolicy = await client.getKeyRotationPolicy(keyName);

  // Finally, you can rotate a key on-demand by creating a new version of the given key.
  const rotatedKey = await client.rotateKey(keyName);
}

main();

キーのリストの反復処理

KeyClient を使用すると、Azure Key Vault内のすべてのキーと、削除されたすべてのキーと特定のキーのバージョンを取得して反復処理できます。 次の API メソッドを使用できます。

  • listPropertiesOfKeys は、削除されていないすべてのキーを名前で一覧表示します。最新バージョンでのみ表示されます。
  • listDeletedKeys は、削除されたすべてのキーを最新バージョンでのみ、その名前で一覧表示します。
  • listPropertiesOfKeyVersions では、キー名に基づいてキーのすべてのバージョンが一覧表示されます。

次のように使用できます。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

async function main() {
  for await (let keyProperties of client.listPropertiesOfKeys()) {
    console.log("Key properties: ", keyProperties);
  }
  for await (let deletedKey of client.listDeletedKeys()) {
    console.log("Deleted: ", deletedKey);
  }
  for await (let versionProperties of client.listPropertiesOfKeyVersions(keyName)) {
    console.log("Version properties: ", versionProperties);
  }
}

main();

これらのメソッドはすべて、 使用可能なすべての結果を 一度に返します。 ページごとに取得するには、次のように、使用する API メソッドを呼び出した直後に を追加 .byPage() します。

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

async function main() {
  for await (let page of client.listPropertiesOfKeys().byPage()) {
    for (let keyProperties of page) {
      console.log("Key properties: ", keyProperties);
    }
  }
  for await (let page of client.listDeletedKeys().byPage()) {
    for (let deletedKey of page) {
      console.log("Deleted key: ", deletedKey);
    }
  }
  for await (let page of client.listPropertiesOfKeyVersions(keyName).byPage()) {
    for (let versionProperties of page) {
      console.log("Version: ", versionProperties);
    }
  }
}

main();

暗号化

このライブラリには、 を介して CryptographyClient使用できる一連の暗号化ユーティリティも用意されています。 と同様に、指定されたKeyClientCryptographyClient資格情報のセットを使用して Azure Key Vaultに接続します。 接続が完了すると、 CryptographyClient キーの暗号化、暗号化解除、署名、検証、ラップ、キーのラップ解除を行うことができます。

次に、 と同様に、キー コンテナー サービスに KeyClient接続できます。 接続しているキー コンテナーから環境変数にいくつかの設定をコピーする必要があります。 環境に入ったら、次のコードを使用してそれらにアクセスできます。

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const keysClient = new KeyClient(url, credential);

async function main() {
  // Create or retrieve a key from the keyvault
  let myKey = await keysClient.createKey("MyKey", "RSA");

  // Lastly, create our cryptography client and connect to the service
  const cryptographyClient = new CryptographyClient(myKey, credential);
}

main();

暗号化

encrypt はメッセージを暗号化します。

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const keysClient = new KeyClient(url, credential);

async function main() {
  let myKey = await keysClient.createKey("MyKey", "RSA");
  const cryptographyClient = new CryptographyClient(myKey.id, credential);

  const encryptResult = await cryptographyClient.encrypt({
    algorithm: "RSA1_5",
    plaintext: Buffer.from("My Message"),
  });
  console.log("encrypt result: ", encryptResult.result);
}

main();

復号化

decrypt では、暗号化されたメッセージの暗号化が解除されます。

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const keysClient = new KeyClient(url, credential);

async function main() {
  let myKey = await keysClient.createKey("MyKey", "RSA");
  const cryptographyClient = new CryptographyClient(myKey.id, credential);

  const encryptResult = await cryptographyClient.encrypt({
    algorithm: "RSA1_5",
    plaintext: Buffer.from("My Message"),
  });
  console.log("encrypt result: ", encryptResult.result);

  const decryptResult = await cryptographyClient.decrypt({
    algorithm: "RSA1_5",
    ciphertext: encryptResult.result,
  });
  console.log("decrypt result: ", decryptResult.result.toString());
}

main();

署名

sign は、署名を使用してメッセージのダイジェスト (ハッシュ) に暗号的に署名します。

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "crypto";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const keysClient = new KeyClient(url, credential);

async function main() {
  let myKey = await keysClient.createKey("MyKey", "RSA");
  const cryptographyClient = new CryptographyClient(myKey, credential);

  const signatureValue = "MySignature";
  let hash = createHash("sha256");

  let digest = hash.update(signatureValue).digest();
  console.log("digest: ", digest);

  const signResult = await cryptographyClient.sign("RS256", digest);
  console.log("sign result: ", signResult.result);
}

main();

データに署名する

signData は、署名を使用してメッセージに暗号的に署名します。

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const keysClient = new KeyClient(url, credential);

async function main() {
  let myKey = await keysClient.createKey("MyKey", "RSA");
  const cryptographyClient = new CryptographyClient(myKey, credential);

  const signResult = await cryptographyClient.signData("RS256", Buffer.from("My Message"));
  console.log("sign result: ", signResult.result);
}

main();

確認

verify は、署名されたダイジェストが指定された署名で署名されたことを暗号で確認します。

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "crypto";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const keysClient = new KeyClient(url, credential);

async function main() {
  let myKey = await keysClient.createKey("MyKey", "RSA");
  const cryptographyClient = new CryptographyClient(myKey, credential);

  const hash = createHash("sha256");
  hash.update("My Message");
  const digest = hash.digest();

  const signResult = await cryptographyClient.sign("RS256", digest);
  console.log("sign result: ", signResult.result);

  const verifyResult = await cryptographyClient.verify("RS256", digest, signResult.result);
  console.log("verify result: ", verifyResult.result);
}

main();

データの確認

verifyData は、署名されたメッセージが指定された署名で署名されたことを暗号で確認します。

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const keysClient = new KeyClient(url, credential);

async function main() {
  let myKey = await keysClient.createKey("MyKey", "RSA");
  const cryptographyClient = new CryptographyClient(myKey, credential);

  const buffer = Buffer.from("My Message");

  const signResult = await cryptographyClient.signData("RS256", buffer);
  console.log("sign result: ", signResult.result);

  const verifyResult = await cryptographyClient.verifyData("RS256", buffer, signResult.result);
  console.log("verify result: ", verifyResult.result);
}

main();

折り返しキー

wrapKey は、暗号化レイヤーでキーをラップします。

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const keysClient = new KeyClient(url, credential);

async function main() {
  let myKey = await keysClient.createKey("MyKey", "RSA");
  const cryptographyClient = new CryptographyClient(myKey, credential);

  const wrapResult = await cryptographyClient.wrapKey("RSA-OAEP", Buffer.from("My Key"));
  console.log("wrap result:", wrapResult.result);
}

main();

キーのラップ解除

unwrapKey はラップされたキーのラップを解除します。

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const keysClient = new KeyClient(url, credential);

async function main() {
  let myKey = await keysClient.createKey("MyKey", "RSA");
  const cryptographyClient = new CryptographyClient(myKey, credential);

  const wrapResult = await cryptographyClient.wrapKey("RSA-OAEP", Buffer.from("My Key"));
  console.log("wrap result:", wrapResult.result);

  const unwrapResult = await cryptographyClient.unwrapKey("RSA-OAEP", wrapResult.result);
  console.log("unwrap result: ", unwrapResult.result);
}

main();

トラブルシューティング

さまざまな障害シナリオを診断する方法の詳細については、 トラブルシューティング ガイド を参照してください。

ログの記録を有効にすると、エラーに関する有用な情報を明らかにするのに役立つ場合があります。 HTTP 要求と応答のログを表示するには、環境変数 AZURE_LOG_LEVELinfo に設定します。 または、@azure/loggersetLogLevel を呼び出して、実行時にログ記録を有効にすることもできます。

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

次のステップ

その他のコード サンプルについては、次のリンクを参照してください。

共同作成

このライブラリに投稿する場合、コードをビルドしてテストする方法の詳細については、投稿ガイドを参照してください。

インプレッション数