你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建托管应用程序以存储 Blob 摘要

先决条件

概述

由机密账本支持的 Blob 存储摘要托管应用程序可用于保证 blob 容器中的 blob 受信任且不会被篡改。 应用程序连接到存储帐户后,除了计算摘要并将其存储到 Azure 机密账本之外,还会实时跟踪要添加到存储帐户中的每个容器的所有 blob。 可以随时执行审核以检查 blob 的有效性,并确保 blob 容器不会被篡改。

部署托管应用程序

可在 Microsoft Azure 市场中找到托管应用程序:由机密账本支持的 Blob 存储摘要(预览版)

要创建的资源

填写必填字段并部署应用程序后,将在受管理资源组下创建以下资源:

将存储帐户连接到托管应用程序

创建托管应用程序后,即可将托管应用程序连接到存储帐户,以便开始处理 Blob 容器摘要并将其记录到 Azure 机密账本。

为存储帐户创建主题和事件订阅

托管应用程序使用 Azure 服务总线队列来跟踪和记录所有“创建 Blob”事件。 将使用托管应用程序在受管理资源组中创建的队列,并将其添加为要为其创建 blob 的任何存储帐户的事件订阅服务器。

Web 浏览器中 Azure 门户的屏幕截图,其中显示了如何设置存储事件订阅。

在 Microsoft Azure 门户中,可以导航到要开始为其创建 blob 摘要的存储帐户,并转到“Events”边栏选项卡。 可以在那里创建事件订阅并将其连接到 Azure 服务总线队列终结点。

Web 浏览器中 Azure 门户的屏幕截图,其中显示了如何设置存储事件订阅会话 ID。

该队列使用会话来维护跨多个存储帐户的排序,因此还需要导航到“Delivery Properties”选项卡,并为此事件订阅输入唯一的会话 ID。

将所需角色添加到存储帐户

托管应用程序需要 Storage Blob Data Owner 角色才能读取并为每个 blob 创建哈希,并且需要添加此角色才能正确计算摘要。

Web 浏览器中 Azure 门户的屏幕截图,其中显示了如何为托管应用设置托管标识。

注意

多个存储帐户可以连接到单个托管应用程序实例。 目前,建议最多使用 10 个包含高使用率 blob 容器的存储帐户

添加 blob 和摘要创建

将存储帐户正确连接到托管应用程序后,可以开始将 blob 添加到存储帐户中的容器。 系统将实时跟踪 blob,计算摘要并将其存储在 Azure 机密账本中。

事务表和块表

所有 blob 创建事件都在托管应用程序内存储的内部表中进行跟踪。

Web 浏览器中 Azure 门户的屏幕截图,其中显示了存储 blob 哈希的事务表。

事务表用于保存有关每个 blob 的信息,以及使用 blob 元数据和/或内容的组合生成的唯一哈希。

Web 浏览器中 Azure 门户的屏幕截图,其中显示了存储摘要信息的块表。

块表用于保存与为 blob 容器创建的每个摘要相关的信息,摘要的关联事务 ID 存储在 Azure 机密账本中。

摘要设置

托管应用预配的屏幕截图,其中显示了摘要设置。

创建托管应用程序时,可以选择一些摘要设置。 可以选择用于创建摘要的 Hashing Algorithm,无论是 MD5 还是 SHA256。 还可以选择每个摘要或 Digest Size 中包含的 blob 数。 摘要大小范围介于 1-16 之间,是每个块中将一起哈希处理的 blob 数。 最后,可以选择 Hash Contents,以及创建每个摘要时将进行哈希处理的内容。 这可以是每个 blob 的 File Contents + Metadata,也可以只是 File Contents

在 Azure 机密账本上查看摘要

通过导航到“Ledger Explorer”边栏选项卡,可以查看直接存储在 Azure 机密账本中的摘要。

Web 浏览器中 Azure 门户的屏幕截图,其中显示了包含摘要事务的 Azure 机密账本资源管理器。

执行审核

如果想要检查添加到容器的 blob 的有效性,以确保它们不会被篡改,则可以随时运行审核。 审核会重播每个 blob 创建事件,并使用审核期间存储在容器中的 blob 来重新计算摘要。 然后,它会将重新计算的摘要与 Azure 机密中存储的摘要进行比较,并提供一份报告,其中显示所有摘要比较以及 blob 容器是否被篡改。

触发审核

可以通过向与托管应用程序关联的 Microsoft Azure 服务总线队列添加以下消息来触发审核:

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

Web 浏览器中 Azure 门户的屏幕截图,介绍如何通过向队列添加消息来触发审核。

请确保包含 Session ID,因为队列已启用会话。

查看审核结果

Web 浏览器中 Azure 门户的屏幕截图,其中显示了包含匹配摘要的示例审核记录。

成功执行审核后,可以在相应的存储帐户中名为 <managed-application-name>-audit-records 的容器下找到审核结果。 结果包含重新计算的摘要、从 Azure 机密账本检索的摘要以及 blob 是否被篡改。

托管应用预配的屏幕截图,其中显示了审核电子邮件警报设置。

创建托管应用程序时,如果选择使用电子邮件警报,则会在 Audit FailureAudit Success and Failure(具体取决于选择的选项)期间收到发送到你电子邮件地址的电子邮件。

日志记录和错误

可以在相应的存储帐户中名为 <managed-application-name>-error-logs 的容器下找到错误日志。 如果 blob 创建事件或审核进程失败,则会记录失败的原因并将其存储在此容器中。 如果对错误日志或应用程序功能有任何疑问,请联系托管应用程序详细信息中提供的 Azure 机密账本支持团队。

清理托管应用程序

可以删除托管应用程序以清理并移除所有关联的资源。 删除托管应用程序会停止跟踪所有 Blob 事务,并停止创建所有摘要。 对于在删除之前添加的 blob,审核报告仍然有效。

更多资源

有关托管应用程序和已部署资源的详细信息,请参阅以下链接:

后续步骤