步驟 2:受軟體保護的金鑰移轉至 HSM 保護的金鑰

這些指示是從 AD RMS 移轉至 Azure 資訊保護 的一部分 ,只有在 AD RMS 金鑰受到軟體保護,而且您想要使用受 HSM 保護的租使用者金鑰移轉至 Azure 資訊保護 時,才適用金鑰保存庫。

如果這不是您選擇的設定案例,請返回 步驟 4。從 AD RMS 匯出組態資料,並將其匯入至 Azure RMS ,然後選擇不同的組態。

這是將 AD RMS 組態匯入 Azure 資訊保護的四部分程式,可產生 Azure 金鑰保存庫 中由您管理的 Azure 資訊保護 租使用者金鑰。

您必須先從 AD RMS 設定資料擷取伺服器授權憑證 (SLC) 金鑰,然後將金鑰傳輸到內部部署 nCipher HSM、下一個封裝並將 HSM 金鑰傳輸到 Azure 金鑰保存庫,然後授權 Azure 資訊保護的 Azure Rights Management 服務存取金鑰保存庫,然後匯入設定資料。

因為 Azure 資訊保護租使用者金鑰將由 Azure 金鑰保存庫儲存和管理,因此除了 Azure 資訊保護 之外,移轉的這個部分還需要在 Azure 金鑰保存庫 中管理。 如果 Azure 金鑰保存庫是由與貴組織不同的系統管理員所管理,您必須協調並使用該系統管理員來完成這些程式。

開始之前,請確定您的組織具有已在 Azure 金鑰保存庫 中建立的金鑰保存庫,且其支援受 HSM 保護的金鑰。 雖然並非必要,但建議您有 Azure 資訊保護專用的金鑰保存庫。 此金鑰保存庫會設定為允許 Azure 資訊保護的 Azure Rights Management 服務存取它,因此此金鑰保存庫所儲存的金鑰應僅限於 Azure 資訊保護金鑰。

提示

如果您要執行 Azure 金鑰保存庫的設定步驟,但不熟悉此 Azure 服務,建議您先檢閱 開始使用 Azure 金鑰保存庫

第 1 部分:從設定資料擷取 SLC 金鑰,並將金鑰匯入內部部署 HSM

  1. Azure 金鑰保存庫系統管理員:針對您想要儲存在 Azure 金鑰保存庫 的每個匯出 SLC 金鑰,請使用 Azure 金鑰保存庫 金鑰保存庫 檔中實作您自己的金鑰 (BYOK) 一節中的下列步驟

    請勿遵循步驟來產生您的租使用者金鑰,因為您在匯出的組態資料 (.xml) 檔案中已經有對等專案。 相反地,您將執行工具,從檔案擷取此金鑰,並將其匯入至您的內部部署 HSM。 當您執行此工具時,此工具會建立兩個檔案:

    • 沒有金鑰的新組態資料檔案,然後就可以匯入 Azure 資訊保護租使用者。

    • 具有金鑰的 PEM 檔案(金鑰容器),然後即可匯入至內部部署 HSM。

  2. Azure 資訊保護 系統管理員或 Azure 金鑰保存庫 系統管理員:在已中斷連線的工作站上,從 Azure RMS 移轉工具組 執行 TpdUtil 工具。 例如,如果在 E 磁片磁碟機上安裝此工具,您可以在其中複製名為 ContosoTPD.xml 的組態資料檔案:

    E:\TpdUtil.exe /tpd:ContosoTPD.xml /otpd:ContosoTPD.xml /opem:ContosoTPD.pem
    

    如果您有多個 RMS 組態資料檔案,請針對這些檔案的其餘部分執行此工具。

    若要查看此工具的說明,其中包含描述、使用方式和範例,請執行沒有參數的 TpdUtil.exe

    此命令的其他資訊:

    • /tpd :指定匯出 AD RMS 組態資料檔案的完整路徑和名稱。 完整參數名稱為 TpdFilePath

    • /otpd :指定組態資料檔案的輸出檔名稱,不含索引鍵。 完整參數名稱為 OutPfxFile 。 如果您未指定此參數,輸出檔會預設為副檔名為_keyless 的原始檔案名 ,並儲存在目前資料夾中。

    • /opem : 會指定 PEM 檔案的輸出檔案名,其中包含擷取的金鑰。 完整參數名稱為 OutPemFile 。 如果您未指定此參數,輸出檔會預設為副檔名為_key 的原始檔案名 ,並且儲存在目前資料夾中。

    • 如果您在執行此命令時未指定密碼(使用 TpdPassword 完整參數名稱或 pwd short 參數名稱),系統會提示您指定它。

  3. 在相同的已中斷連線的工作站上,根據您的 nCipher 檔連結並設定 nCipher HSM。 您現在可以使用下列命令將金鑰匯入連結的 nCipher HSM 中,而您必須將自己的檔案名取代為 ContosoTPD.pem:

    generatekey --import simple pemreadfile=e:\ContosoTPD.pem plainname=ContosoBYOK protect=module ident=contosobyok type=RSA
    

    注意

    如果您有一個以上的檔案,請選擇對應至您想要在 Azure RMS 中使用之 HSM 金鑰的檔案,以保護移轉後的內容。

    這會產生類似下列的輸出顯示:

    金鑰產生參數:

    執行匯入的作業作業

    應用程式應用程式簡單

    確認組態金鑰的安全性是

    類型金鑰類型 RSA

    pemreadfile PEM 檔案,其中包含 RSA 金鑰 e:\ContosoTPD.pem

    ident 金鑰識別碼 contosobyok

    plainname 金鑰名稱 ContosoBYOK

    金鑰已成功匯入。

    索引鍵的路徑:C:\ProgramData\nCipher\Key Management Data\local\key_simple_contosobyok

此輸出會確認私密金鑰現在已移轉至您的內部部署 nCipher HSM 裝置,其中包含已儲存至金鑰的加密複本(在我們的範例中為「key_simple_contosobyok」)。

既然已擷取 SLC 金鑰並匯入至內部部署 HSM,您就可以封裝受 HSM 保護的金鑰,並將其傳輸至 Azure 金鑰保存庫。

重要

當您完成此步驟時,請從中斷連線的工作站安全地清除這些 PEM 檔案,以確保未經授權的人員無法存取這些 PEM 檔案。 例如,執行 「cipher /w: E」 以安全地刪除 E: 磁片磁碟機中的所有檔案。

第 2 部分:將 HSM 金鑰封裝並傳輸至 Azure 金鑰保存庫

Azure 金鑰保存庫系統管理員:針對您想要儲存在 Azure 金鑰保存庫中的每個匯出 SLC 金鑰,請使用 Azure 金鑰保存庫 金鑰保存庫 檔中實作您自己的金鑰 (BYOK) 一節中的下列步驟

請勿遵循步驟來產生金鑰組,因為您已經擁有金鑰。 相反地,您將執行命令,從內部部署 HSM 傳輸此金鑰(在我們的範例中,KeyIdentifier 參數會使用 「contosobyok」。

將金鑰傳輸至 Azure 金鑰保存庫之前,請確定 KeyTransferRemote.exe 公用程式會傳回 Result:SUCCESS ,當您建立具有縮減許可權的金鑰複本(步驟 4.1)和加密金鑰時(步驟 4.3)。

當金鑰上傳至 Azure 金鑰保存庫時,您會看到顯示的金鑰屬性,其中包括金鑰識別碼。 看起來會類似 https://contosorms-kv.vault.azure.net/keys/contosorms-byok/aaaabbbbcccc111122223333 。 請記下此 URL,因為 Azure 資訊保護系統管理員需要它從 Azure 資訊保護告訴 Azure Rights Management 服務,以將此金鑰用於其租使用者金鑰。

然後使用 Set-AzKeyVaultAccessPolicy Cmdlet 來授權 Azure Rights Management 服務主體存取金鑰保存庫。 所需的許可權包括解密、加密、解除包裝金鑰、wrapkey、verify 和 sign。

例如,如果您為 Azure 資訊保護建立的金鑰保存庫名為 contosorms-byok-kv,且您的資源群組名為 contosorms-byok-rg ,請執行下列命令:

Set-AzKeyVaultAccessPolicy -VaultName "contosorms-byok-kv" -ResourceGroupName "contosorms-byok-rg" -ServicePrincipalName 00000012-0000-0000-c000-000000000000 -PermissionsToKeys decrypt,encrypt,unwrapkey,wrapkey,verify,sign,get

既然您已將 HSM 金鑰傳輸至 Azure 金鑰保存庫,即可匯入 AD RMS 組態資料。

第 3 部分:將設定資料匯入 Azure 資訊保護

  1. Azure 資訊保護系統管理員:在執行 TpdUtil 工具之後,在連線到網際網路的工作站和 PowerShell 會話中,複製已移除 SLC 金鑰的新組態資料檔案 (.xml)。

  2. 使用 Import-AipServiceTpd Cmdlet 上傳每個 .xml 檔案。 例如,如果您升級 AD RMS 叢集進行密碼編譯模式 2,則至少應該要匯入一個額外的檔案。

    若要執行此 Cmdlet,您需要您稍早為組態資料檔案指定的密碼,以及上一個步驟中所識別金鑰的 URL。

    例如,使用 C:\contoso_keyless.xml 的組態資料檔案和上一個步驟中的金鑰 URL 值,先執行下列命令來儲存密碼:

     $TPD_Password = Read-Host -AsSecureString
    

    輸入您指定用來匯出組態資料檔案的密碼。 然後,執行下列命令,並確認您想要執行此動作:

    Import-AipServiceTpd -TpdFile "C:\contoso_keyless.xml" -ProtectionPassword $TPD_Password –KeyVaultStringUrl https://contoso-byok-kv.vault.azure.net/keys/contosorms-byok/aaaabbbbcccc111122223333 -Verbose
    

    在此匯入時,會匯入 SLC 金鑰,並自動設定為封存。

  3. 上傳每個檔案之後,請執行 Set-AipServiceKeyProperties 來指定哪些匯入的金鑰符合 AD RMS 叢集中目前作用中的 SLC 金鑰。

  4. 使用 Disconnect-AipServiceService Cmdlet 從 Azure Rights Management 服務中斷連線:

    Disconnect-AipServiceService
    

如果您稍後需要確認 Azure 資訊保護租使用者金鑰在 Azure 金鑰保存庫中使用的金鑰,請使用 Get-AipServiceKeys Azure RMS Cmdlet。

您現在已準備好移至 步驟 5。啟用 Azure Rights Management 服務