適用於 JavaScript 的 Azure 金鑰保存庫 系統管理用戶端連結庫 - 4.5.0 版
Azure 金鑰保存庫 受控 HSM 是完全受控、高可用性、單一租使用者、符合標準標準的雲端服務,可讓您使用 FIPS 140-2 層級 3 驗證的 HSM 來保護雲端應用程式的密碼編譯密鑰。 如果您想要深入瞭解 Azure 金鑰保存庫 受控 HSM,您可以檢閱:什麼是 Azure 金鑰保存庫 受控 HSM?
此套件@azure/keyvault-admin
支援系統管理 金鑰保存庫 工作,例如完整備份/還原和密鑰層級角色型訪問控制 (RBAC) 。
注意:系統管理連結庫僅適用於 Azure 金鑰保存庫 受控 HSM - 以 金鑰保存庫 為目標的函式將會失敗。
注意:由於 Azure 金鑰保存庫 服務限制,此套件無法在瀏覽器中使用,請參閱本檔以取得指引。
重要連結:
開始使用
安裝套件
使用 NPM 安裝適用於 JavaScript 和 TypeScript 的 Azure 金鑰保存庫 管理用戶端連結庫:
npm install @azure/keyvault-admin
設定 TypeScript
TypeScript 用戶必須安裝 Node 類型定義:
npm install @types/node
您也需要在tsconfig.json中開啟 compilerOptions.allowSyntheticDefaultImports
。 請注意,如果您已啟用 compilerOptions.esModuleInterop
, allowSyntheticDefaultImports
預設會啟用 。 如需詳細資訊 ,請參閱 TypeScript 的編譯程式選項手冊 。
目前支援的環境
必要條件
- Azure 訂用帳戶
- 現有的 金鑰保存庫 受控 HSM。 如果您需要建立受控 HSM,您可以遵循 本文件中的步驟,使用 Azure CLI。
驗證用戶端
若要與 Azure 金鑰保存庫 服務互動,您必須建立 類別或 KeyVaultBackupClient
類別的KeyVaultAccessControlClient
實例,以及您在 Azure 入口網站) 和認證物件中看到的保存庫 URL (。 本檔中所示的範例會使用名為 的 DefaultAzureCredential
認證物件,適用於大部分案例,包括本機開發和生產環境。 此外,我們建議在生產環境中使用 受控識別 進行驗證。
您可以在 Azure 身分識別檔中找到不同驗證方式及其對應認證類型的詳細資訊。
建立 KeyVaultAccessControlClient
使用 最適合您的驗證方法進行驗證之後,您可以在建構函式的 Managed HSM URL 中建立 KeyVaultAccessControlClient
,如下所示:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyVaultAccessControlClient } = require("@azure/keyvault-admin");
const credentials = new DefaultAzureCredential();
const client = new KeyVaultAccessControlClient(`<your Managed HSM URL>`, credentials);
建立 KeyVaultBackupClient
使用 最適合您的驗證方法進行驗證之後,您可以在建構函式的 Managed HSM URL 中建立 KeyVaultBackupClient
,如下所示:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyVaultBackupClient } = require("@azure/keyvault-admin");
const credentials = new DefaultAzureCredential();
const client = new KeyVaultBackupClient(`<your Managed HSM URL>`, credentials);
重要概念
KeyVaultRoleDefinition
角色定義是許可權的集合。 角色定義會定義可執行的作業,例如讀取、寫入和刪除。 它也可以定義從允許的作業中排除的作業。
角色定義可以列出並指定為的一 KeyVaultRoleAssignment
部分。
KeyVaultRoleAssignment
角色指派是角色定義與服務主體的關聯。 您可以個別建立、列出、擷取和刪除它們。
KeyVaultAccessControlClient
提供 KeyVaultAccessControlClient
作業,允許管理角色定義 (實體) KeyVaultRoleDefinition
和角色指派 (實體) KeyVaultRoleAssignment
。
KeyVaultBackupClient
提供 KeyVaultBackupClient
執行完整金鑰備份、完整金鑰還原和選擇性金鑰還原的作業。
長時間執行的作業
完成 KeyVaultBackupClient
的作業可能需要 Azure 資源所需的時間,而需要用戶端層在等候它們完成的程式生命週期中,持續追蹤、串行化和繼續作業。 這是透過套件 @azure/core-lro 的常見抽象概念來完成。
KeyVaultBackupClient
提供三種方法來執行長時間執行的作業:
beginBackup
會開始在指定的記憶體 Blob 帳戶上產生 Azure 金鑰保存庫 受控 HSM 的備份。beginRestore
會使用指向先前儲存的 Azure Blob 記憶體備份資料夾的 SAS 令牌,開始還原所有密鑰數據。beginSelectiveRestore
會使用使用者提供的 SAS 令牌,開始還原指定金鑰的所有金鑰版本,指向先前儲存的 Azure Blob 記憶體備份資料夾。
開始長時間執行作業的方法會傳迴輪詢器,讓您無限期等候作業完成。 如需詳細資訊,請參閱下列範例。
範例
我們在 JavaScript 和 TypeScript 中都有範例,顯示此套件中的訪問控制和備份/還原功能。 請遵循對應的自述檔,以取得執行範例的詳細步驟。
疑難排解
如需如何診斷各種失敗案例的詳細資訊,請參閱我們的 疑難解答指南 。
啟用記錄有助於找出失敗的相關實用資訊。 若要查看 HTTP 的要求和回應記錄,請將 AZURE_LOG_LEVEL
環境變數設定為 info
。 或者,您可以在 @azure/logger
中呼叫 setLogLevel
,以在執行階段啟用記錄:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
後續步驟
您可以透過下列連結找到更多程式碼範例:
參與
如果您希望向此程式庫投稿,請參閱投稿指南,深入瞭解如何組建與測試程式碼。