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 数据工厂错误地复制单元格值