将文件上传到Azure blob存储 — CRL-290029禁止
本文解决了Campaign v7的问题,在该问题中,您只能读取文件,但不能在blob存储中写入文件。 要解决此问题,请与Azure联系以检查由身份/授权(RBAC或SAS)确定的读/写权限。
描述 description
环境
Adobe Campaign
问题/症状
- 您正在将Adobe Campaign v7与Adobe Experience Platform集成,并且已创建工作流,如Campaign Classic v7文档中的在Campaign Classic中创建导出工作流中所述。 这是为了将数据从ACC导出到Azure Blob存储位置。
- 您尝试将文件传输活动(操作文件上传)添加到Azure Blob。 在审核记录日志中,您看到类似以下内容的错误:
将“https://xxxx002.blob.core.windows.net/campaign/xxxAEP/Feedback/envioCDP.csv'”上传到Azure Blob Storage时出现CRL-290182错误(代码CRL-290029 Forbidden — 服务器理解该请求,但拒绝履行)
结果是,您可以从blob存储中读取文件(下载),但不能在其中写入文件(上载)。
解决方法 resolution
要解决此类问题,请与Azure联系以检查由身份/授权(RBAC或SAS)确定的读/写权限。
Azure Blob Storage中的读取和写入访问权限未由将调用方IP列入白名单来定义。
IP列入允许列表是网络入口(完全可以与存储帐户通信),而读/写权限由身份/授权(RBAC或SAS)决定。
实际确定访问权限的方式
-
授权:角色和SAS权限
Azure Blob Storage支持多种授权机制:-
Azure AD + RBAC(推荐)
-
您可授予角色,例如:
Storage Blob Data Reader→只读Storage Blob Data Contributor→读/写/删除
-
这些角色定义了Blob和容器上的 读取与写入 权限。
-
请参阅Azure基于角色的访问控制文档中存储的操作和RBAC映射
共享访问签名(SAS)
-
SAS令牌对以下内容进行编码:
- 通过
sp授予权限(例如:sp=r表示读取,sp=rw表示读+写,sp=rwdl表示完整CRUD +列表)。 - 通过
sip的可选IP限制(允许使用该令牌的IP或IP范围)。
- 通过
-
Microsoft Azure Essentials: Azure的基础知识显示了一个SAS示例:
code language-none &sp=r # read permission &sip=168.1.5.60-168.1.5.70 # allowed IP rangesp参数控制读/写;sip仅限制请求可以来自的位置。
-
-
帐户密钥(共享密钥)
- 如果直接使用,则使用完整的帐户级别读/写;不建议用于细粒度访问,并且通常不建议在Adobe环境中使用。
-
-
网络/IP控制:防火墙和SAS
sip这些控制 是否 请求可以到达帐户,而不是它可以做什么:
-
存储帐户防火墙/虚拟网络规则
- 您可以允许特定的公共IP范围或VNet访问存储帐户。
- 无论调用方是执行读取还是写入,均适用;权限仍来自RBAC或SAS。
- Microsoft文档: 存储帐户网络安全
-
SAS
sip(IP范围)- SAS令牌上的可选参数,用于限制可使用令牌的IP。
- 但是,允许的操作由
sp(权限)定义;IP只是限制可能行使这些权限的人员。
-
相关的Azure Blob Storage文档
重要Microsoft学习参考资料:
-
Blob存储服务的总体概念和安全概念
-
存储的RBAC操作(数据平面操作,如读取/写入/删除)
-
存储帐户和IP列入允许列表的网络/防火墙规则
-
SAS和用户委派SAS(令牌中编码的权限)
这些文档共同说明了授权(RBAC/SAS)定义了读/写,而IP设置(防火墙或SAS sip)仅限制这些授权呼叫可能来自的位置。