Azure Key Vault Managed HSM は、FIPS 140-2 レベル 3 で検証された HSM を使用してクラウド アプリケーションの暗号化キーを保護できるようにする、フル マネージドの高可用性シングルテナントの標準準拠クラウド サービスです。 Azure Key Vault Managed HSM の詳細については、「Azure Key Vault Managed HSM とは」を参照してください。
パッケージ @azure/keyvault-admin
では、完全バックアップ/復元、キー レベルのロールベースのアクセス制御 (RBAC) などの管理 Key Vault タスクがサポートされます。
注: 管理ライブラリは、Azure Key Vault Managed HSM でのみ機能します。Key Vault を対象とする関数は失敗します。
注: このパッケージは、Azure Key Vault サービスの制限によりブラウザーで使用できません。ガイダンスについては、このドキュメント 参照してください。
主要なリンク:
作業の開始
パッケージをインストールする
NPMを使用して、JavaScript および TypeScript 用の Azure Key Vault 管理クライアント ライブラリをインストールします。
npm install @azure/keyvault-admin
TypeScript の構成
TypeScript ユーザーには、Node 型の定義がインストールされている必要があります。
npm install @types/node
また、tsconfig.jsonで compilerOptions.allowSyntheticDefaultImports
を有効にする必要があります。
compilerOptions.esModuleInterop
を有効にした場合、allowSyntheticDefaultImports
は既定で有効になっています。 詳細については、TypeScript のコンパイラ オプション ハンドブックの を参照してください。
現在サポートされている環境
[前提条件]
- Azure サブスクリプション
- 既存の Key Vault Managed HSM。 Managed HSM を作成する必要がある場合は、Azure CLI を使用して、このドキュメントの 手順に従って作成できます。
クライアントを認証する
Azure Key Vault サービスと対話するには、KeyVaultAccessControlClient
クラスまたは KeyVaultBackupClient
クラスのインスタンスと、コンテナーの URL (Azure Portal では "DNS 名" と表示される場合があります) と資格情報オブジェクトを作成する必要があります。 このドキュメントに示す例では、DefaultAzureCredential
という名前の資格情報オブジェクトを使用します。これは、ローカルの開発環境や運用環境など、ほとんどのシナリオに適しています。 さらに、運用環境での認証には、マネージド ID を使用することをお勧めします。
認証のさまざまな方法とそれに対応する資格情報の種類の詳細については、Azure ID のドキュメントを参照してください。
KeyVaultAccessControlClient の作成
最適な に適した認証方法認証したら、次のように KeyVaultAccessControlClient
を作成し、コンストラクターの Managed HSM URL に置き換えることができます。
import { DefaultAzureCredential } from "@azure/identity";
import { KeyVaultAccessControlClient } from "@azure/keyvault-admin";
const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;
const credentials = new DefaultAzureCredential();
const client = new KeyVaultAccessControlClient(vaultUrl, credentials);
KeyVaultBackupClient の作成
最適な に適した認証方法認証したら、次のように KeyVaultBackupClient
を作成し、コンストラクターの Managed HSM URL に置き換えることができます。
import { DefaultAzureCredential } from "@azure/identity";
import { KeyVaultBackupClient } from "@azure/keyvault-admin";
const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;
const credentials = new DefaultAzureCredential();
const client = new KeyVaultBackupClient(vaultUrl, credentials);
重要な概念
KeyVaultRoleDefinition
ロール定義は、アクセス許可のコレクションです。 ロール定義は、読み取り、書き込み、削除など、実行できる操作を定義します。 また、許可された操作から除外される操作を定義することもできます。
ロール定義は、KeyVaultRoleAssignment
の一部として一覧表示および指定できます。
KeyVaultRoleAssignment
ロールの割り当ては、ロール定義とサービス プリンシパルの関連付けです。 これらは、作成、一覧表示、個別にフェッチ、および削除できます。
KeyVaultAccessControlClient
KeyVaultAccessControlClient
では、ロール定義 (KeyVaultRoleDefinition
のインスタンス) とロールの割り当て (KeyVaultRoleAssignment
のインスタンス) を管理できる操作が提供されます。
KeyVaultバックアップクライアント
KeyVaultBackupClient
では、完全キー バックアップ、完全キー復元、および選択的キー復元を実行するための操作が提供されます。
実行時間の長い操作
KeyVaultBackupClient
によって実行される操作には、Azure リソースで必要なだけ時間がかかる場合があり、クライアント レイヤーは、操作の完了を待機するプログラムのライフサイクルを通じて操作を追跡、シリアル化、再開する必要があります。 これは、パッケージ @azure/core-lroを通じて一般的な抽象化によって行われます。
KeyVaultBackupClient
には、実行時間の長い操作を実行する 3 つのメソッドが用意されています。
-
beginBackup
、指定したストレージ BLOB アカウントで Azure Key Vault Managed HSM のバックアップの生成を開始します。 -
beginRestore
、以前に格納された Azure Blob Storage バックアップ フォルダーを指す SAS トークンを使用して、すべてのキー マテリアルの復元を開始します。 -
beginSelectiveRestore
、以前に格納された Azure Blob Storage バックアップ フォルダーを指すユーザー指定の SAS トークンを使用して、特定のキーのすべてのキー バージョンの復元を開始します。
実行時間の長い操作を開始するメソッドは、操作が完了するまで無期限に待機できるポーリングャーを返します。 詳細については、以下の例を参照してください。
例示
このパッケージのアクセス制御とバックアップ/復元機能を示す JavaScript と TypeScript の両方のサンプルがあります。 サンプルを実行する詳細な手順については、対応する readmes に従ってください。
トラブルシューティング
さまざまな障害シナリオを診断する方法の詳細については、トラブルシューティング ガイドの を参照してください。
ログ記録を有効にすると、エラーに関する有用な情報を明らかにするのに役立つ場合があります。 HTTP 要求と応答のログを表示するには、AZURE_LOG_LEVEL
環境変数を info
に設定します。 または、setLogLevel
で @azure/logger
を呼び出すことによって、実行時にログを有効にすることもできます。
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
次のステップ
その他のコード サンプルについては、次のリンクを参照してください。
投稿
このライブラリに投稿する場合は、コードをビルドしてテストする方法の詳細については、投稿ガイド を参照してください。
Azure SDK for JavaScript