Azure Blob 存储:防止 Blob 复制到另一个存储帐户的最佳方法?

Posted

技术标签:

【中文标题】Azure Blob 存储:防止 Blob 复制到另一个存储帐户的最佳方法?【英文标题】:Azure Blob Storage: best way to prevent blobs copied to another storage account? 【发布时间】:2022-01-11 08:31:06 【问题描述】:

我需要允许数据工厂管道处理某个 blob 存储帐户中的一些 blob,但要防止将数据复制到外部 blob 存储帐户。

读取存储帐户中的数据后,管道需要将一些结果写回同一个存储帐户。

这可能吗?如果是的话,实现这一目标的最佳方法是什么?

我一直在检查有关 SAS 密钥的文档,似乎表明这是可能的,但我一直无法找到如何去做。

【问题讨论】:

如果回答对您有帮助,您可以Accept it as an Answer,以便其他遇到相同问题的人可以找到此解决方案并解决他们的问题 【参考方案1】:

您可以使用 SAS 限制或配置对 blob 的自定义访问。使用Authentication method = SAS URI 创建链接服务,并在管道中将此链接服务与数据集一起使用。

如何设置链接服务:

转到Azure portal > Blob Storage account > Security + Networking > Shared access signature

现在回到ADF studio > Create New linked service > Authentication method > SAS URI

注意: Blob 服务 SAS URL 包含验证 SAS 所需的所有信息,因此您可以将 SAS 令牌字段留空

或者,如果您想获取单个容器或 blob,您可以访问其属性中的Generate SAS选项卡。

【讨论】:

这很好,但是在配置链接服务时应该如何设置权限,以防止容器的内容被复制到外部。您共享的屏幕截图似乎允许 SAS 密钥接收器执行任何操作(读取、写入、添加等)。我错过了什么?谢谢! 您可以为不同的链接服务使用多个 SAS 密钥。例如,您可以在 sink 链接服务上使用不同的 SAS,这样它就无法访问或复制流中的特定文件。 但是文件只有在你正确设置复制管道的情况下才会被复制,你为什么不只选择需要复制的文件。也许如果你能详细说明你的过程。 如果您正在与另一个用户合作,该用户的凭据在该过程中被使用,他应该至少有Storage Blob Data Contributor 到 Blob 存储资源来复制它们。 感谢@karthikBhyresh-MT,但似乎无法使用 SAS 密钥将文件复制到外部源。

以上是关于Azure Blob 存储:防止 Blob 复制到另一个存储帐户的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure 存储客户端 2.0 中将一个 Azure blob 复制到另一个 blob

使用 Nodejs 将文件从 Azure 存储 blob(容器)复制到 Azure 文件共享

使用 @azure/storage-blob 将 blob 从一个存储帐户复制到另一个

将数据从 Azure Blob 存储复制到 Azure SQLDB 时,Azure 数据工厂错误地复制单元格值

如何将 Azure 存储帐户内容(表、队列、blob)复制到其他存储帐户

将 blob 从私有 blob 容器复制到 Azure 中的公共 blob 容器