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

必要條件

概觀

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

部署受控應用程式

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

要建立的資源

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

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

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

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

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

網頁瀏覽器中 Azure 入口網站的螢幕擷取畫面,其中顯示如何設定儲存體事件訂用帳戶。

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

網頁瀏覽器中 Azure 入口網站的螢幕擷取畫面,其中顯示如何設定儲存體事件訂用帳戶工作階段識別碼。

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

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

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

網頁瀏覽器中 Azure 入口網站的螢幕擷取畫面,其中顯示如何設定受控應用程式的受控識別。

注意

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

新增 Blob 和摘要建立

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

交易和區塊資料表

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

網頁瀏覽器中 Azure 入口網站的螢幕擷取畫面,其中顯示儲存 Blob 雜湊所在的交易資料表。

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

網頁瀏覽器中 Azure 入口網站的螢幕擷取畫面,其中顯示儲存摘要資訊所在的區塊資料表。

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

摘要設定

受控應用程式佈建的螢幕擷取畫面,其中顯示摘要設定。

建立受控應用程式時,可以選取一些摘要設定。 您可以選擇用來建立摘要的 Hashing Algorithm,無論是 MD5 還是 SHA256。 您也可以選擇每個摘要或 Digest Size 中包含的 Blob 數目。 摘要大小範圍從 1-16 開始,而且是每個區塊內一起雜湊的 Blob 數目。 最後,您可以選取 Hash Contents,以及在建立每個摘要時進行雜湊的內容。 這可以是每個 Blob 的 File Contents + Metadata,或只是 File Contents

在 Azure 機密總帳上檢視摘要

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

網頁瀏覽器中 Azure 入口網站的螢幕擷取畫面,其中顯示具有摘要交易的 Azure 機密總帳總管。

執行稽核

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

觸發稽核

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

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

網頁瀏覽器中 Azure 入口網站的螢幕擷取畫面,如何在佇列中新增訊息來觸發稽核。

請務必包含 Session ID,因為佇列已啟用工作階段。

檢視稽核結果

網頁瀏覽器中 Azure 入口網站的螢幕擷取畫面,其中顯示具有相符摘要的範例稽核記錄。

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

受控應用程式佈建的螢幕擷取畫面,其中顯示稽核電子郵件警示設定。

建立受控應用程式時,如果您選擇使用電子郵件警示,根據選取的選項,您會在 Audit FailureAudit Success and Failure 期間收到傳送給您的電子郵件。

記錄和錯誤

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

清除受控應用程式

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

更多資源

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

下一步