我正在尝试使用复制活动将文件从 ADF 上传到容器。我已在链接服务中使用用户分配的托管标识来连接到存储帐户。连接成功,但复制活动失败并出现以下错误。
用户分配的托管 ID 已在存储帐户中分配资源组参与者角色。
“Sink”侧发生故障。 ErrorCode=FileForbidden,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=尝试上传 blob 时发生错误,详细消息:20240320_130837_File1.csv,Source=Microsoft.DataTransfer.ClientLibrary,''Type=Microsoft.WindowsAzure .Storage.StorageException,Message=远程服务器返回错误:(403) 禁止。,Source=Microsoft.WindowsAzure.Storage,StorageExtendedMessage=此请求无权使用此权限执行此操作。 请求ID:b1c85e0a-b01e-001c-6a79-7be8ba000000 时间:2024-03-21T10:18:31.4813244Z,,''Type=System.Net.WebException,Message=远程服务器返回错误:(403) Forbidden。,Source=Microsoft.WindowsAzure.Storage,'
您的使用分配托管标识无权将 blob 上传到存储帐户,这可能是出现上述错误的原因。您应该将
storage blob data contributor
角色分配给用户分配的托管身份,如下所示:
第1步:进入blob存储账户的IAM,点击“添加角色分配”,如下图:
第二步:搜索
storage Blob data contributor
角色并选择,如下图:
第三步:选择托管身份,如下图:
然后您将能够通过复制活动将 Blob 成功上传到存储帐户:
已上传文件: