Share via


建立受控應用程式以儲存 Blob 摘要

必要條件

  • Azure 儲存體帳戶
  • Azure CLI (選擇性)
  • 適用于 Python 的 Azure SDK 支援的 Python 版本 (選擇性)

概觀

Blob 儲存體由機密總帳 受控應用程式支援的摘要,可用來保證 Blob 容器內的 Blob 受信任且不會遭到竄改。 應用程式一旦連線到儲存體帳戶,除了計算摘要並將其儲存至 Azure 機密總帳之外,也會即時追蹤將所有 Blob 新增至儲存體帳戶中的每個容器。 您可以隨時執行稽核,以檢查 Blob 的有效性,並確保 Blob 容器不會遭到竄改。

部署受控應用程式

受控應用程式可在 Azure Marketplace 中找到: Blob 儲存體摘要支援機密總帳 (預覽)

要建立的資源

填入必要欄位並部署應用程式之後,就會在受控資源群組下建立下列資源:

將儲存體帳戶連線至受控應用程式

建立受控應用程式之後,您就可以將受控應用程式連線到您的儲存體帳戶,以開始處理 Blob 容器摘要,並將 Blob 容器摘要記錄至 Azure 機密總帳。

建立儲存體帳戶的主題和事件訂用帳戶

受控應用程式會使用Azure 服務匯流排佇列來追蹤和記錄所有 建立 Blob 事件。 您將使用受控應用程式在受控資源群組中建立的佇列,並將它新增為您要為其建立 Blob 的任何儲存體帳戶的事件訂閱者。

Screenshot of the Azure portal in a web browser, showing how to set up a storage event subscription.

在Azure 入口網站上,您可以流覽至您想要開始建立 Blob 摘要的儲存體帳戶,然後移至 Events 刀鋒視窗。 您可以在該處建立事件訂用帳戶,並將其連線至Azure 服務匯流排佇列端點。

Screenshot of the Azure portal in a web browser, showing how to set up a storage event subscription session ID.

佇列會使用會話來維護跨多個儲存體帳戶的排序,因此您也必須流覽至 Delivery Properties 索引標籤,並為此事件訂用帳戶輸入唯一的會話識別碼。

將必要的角色新增至儲存體帳戶

受控應用程式需要 Storage Blob Data Owner 角色讀取和建立每個 Blob 的雜湊,而且必須新增此角色,才能正確計算摘要。

Screenshot of the Azure portal in a web browser, showing how to set up a managed identity for the managed app.

注意

多個儲存體帳戶可以連線到單一受控應用程式實例。 我們目前建議最多 10 個儲存體帳戶 包含高使用量 Blob 容器。

新增 Blob 和摘要建立

一旦儲存體帳戶正確連線到受控應用程式,Blob 就可以開始新增至儲存體帳戶內的容器。 Blob 會即時追蹤,摘要會計算並儲存在 Azure 機密總帳中。

交易和區塊資料表

所有 Blob 建立事件都會追蹤到儲存在受控應用程式的內部資料表中。

Screenshot of the Azure portal in a web browser, showing the transaction table where blob hashes are stored.

交易資料表會保存每個 Blob 的相關資訊,以及使用 Blob 中繼資料和內容組合所產生的唯一雜湊。

Screenshot of the Azure portal in a web browser, showing the block table where digest information is stored.

區塊資料表會保存針對 Blob 容器建立的每個摘要相關資訊,而摘要的相關交易識別碼會儲存在 Azure 機密總帳中。

注意

每個 Blob 建立事件都不會產生建立摘要。 在達到特定區塊大小之後,就會建立摘要。 目前,每 4 個 Blob 建立事件 都會建立 摘要。

在 Azure 機密總帳上檢視摘要

您可以流覽至刀鋒視窗,以檢視直接儲存在 Azure 機密總帳中的 Ledger Explorer 摘要。

Screenshot of the Azure portal in a web browser, showing the Azure Confidential Ledger explorer with digest transactions.

執行稽核

如果您想要檢查新增至容器的 Blob 有效性,以確保這些 Blob 不會遭到竄改,則可以在任何時間點執行稽核。 稽核會重新執行每個 Blob 建立事件,並使用稽核期間儲存在容器中的 Blob 重新計算摘要。 然後,它會比較重新計算的摘要與儲存在 Azure 機密中的摘要,並提供報告來顯示所有摘要比較,以及 Blob 容器是否遭到竄改。

觸發稽核

您可以將下列訊息納入與受控應用程式相關聯的服務匯流排佇列,以觸發稽核:

{
    "eventType": "PerformAudit",
    "storageAccount": "<storage_account_name>",
    "blobContainer": "<blob_container_name>"
}

Screenshot of the Azure portal in a web browser, how to trigger an audit by adding a message to the queue.

請務必在佇列已啟用會話時包含 Session ID

檢視稽核結果

成功執行稽核之後,您可以在個別儲存體帳戶內名為 <managed-application-name>-audit-records 的容器下找到稽核結果。 結果包含重新計算的摘要、從 Azure 機密總帳擷取的摘要,以及 Blob 是否遭到竄改。

Screenshot of the Azure portal in a web browser, showing a sample audit record with matching digests.

記錄和錯誤

您可以在位於個別儲存體帳戶內名為 <managed-application-name>-error-logs 的容器下找到錯誤記錄檔。 如果 Blob 建立事件或稽核程式失敗,則會記錄失敗的原因並儲存在此容器中。 如果錯誤記錄檔或應用程式功能有任何問題,請連絡受控應用程式詳細資料中提供的 Azure 機密總帳支援小組。

清除受控應用程式

您可以刪除受控應用程式,以清除和移除所有相關聯的資源。 刪除受控應用程式會停止追蹤所有 Blob 交易,並停止建立所有摘要。 稽核報告對於刪除之前新增的 Blob 仍然有效。

更多資源

如需受控應用程式和已部署資源的詳細資訊,請參閱下列連結:

下一步