从Azure Data Lake Gen2数据存储创建Azure ML数据集时发生AuthenticationException

从Azure Data Lake Gen2数据存储创建Azure ML数据集时发生AuthenticationException,azure,azure-active-directory,azure-data-lake,azure-data-lake-gen2,azureml,Azure,Azure Active Directory,Azure Data Lake,Azure Data Lake Gen2,Azureml,我有一个带有公共端点的Azure DataLake Gen2和一个标准的Azure ML实例。 我已经用我的用户创建了这两个组件,我被列为贡献者 我想在Azure ML中使用此数据湖中的数据 我使用服务主体身份验证将数据湖添加为数据存储 然后,我尝试使用Azure ML GUI创建表格数据集,但出现以下错误: 拒绝访问 您没有访问指定路径或文件的权限 { "message": "ScriptExecutionException was caused by Str

我有一个带有公共端点的Azure DataLake Gen2和一个标准的Azure ML实例。 我已经用我的用户创建了这两个组件,我被列为贡献者

我想在Azure ML中使用此数据湖中的数据

我使用服务主体身份验证将数据湖添加为数据存储

然后,我尝试使用Azure ML GUI创建表格数据集,但出现以下错误:

拒绝访问 您没有访问指定路径或文件的权限

{
  "message": "ScriptExecutionException was caused by StreamAccessException.\n  StreamAccessException was caused by AuthenticationException.\n    'AdlsGen2-ListFiles (req=1, existingItems=0)' for '[REDACTED]' on storage failed with status code 'Forbidden' (This request is not authorized to perform this operation using this permission.), client request ID '1f9e329b-2c2c-49d6-a627-91828def284e', request ID '5ad0e715-a01f-0040-24cb-b887da000000'. Error message: [REDACTED]\n"
}
我已经尝试让我们的Azure门户管理员,同时具有Azure ML和Data Lake的管理员访问权限,尝试相同的方式,但她得到了相同的错误

我尝试使用Python sdk创建数据集,但得到了类似的错误:

ExecutionError: 
Error Code: ScriptExecution.StreamAccess.Authentication
Failed Step: 667ddfcb-c7b1-47cf-b24a-6e090dab8947
Error Message: ScriptExecutionException was caused by StreamAccessException.
  StreamAccessException was caused by AuthenticationException.
    'AdlsGen2-ListFiles (req=1, existingItems=0)' for 'https://mydatalake.dfs.core.windows.net/mycontainer?directory=mydirectory/csv&recursive=true&resource=filesystem' on storage failed with status code 'Forbidden' (This request is not authorized to perform this operation using this permission.), client request ID 'a231f3e9-b32b-4173-b631-b9ed043fdfff', request ID 'c6a6f5fe-e01f-0008-3c86-b9b547000000'. Error message: {"error":{"code":"AuthorizationPermissionMismatch","message":"This request is not authorized to perform this operation using this permission.\nRequestId:c6a6f5fe-e01f-0008-3c86-b9b547000000\nTime:2020-11-13T06:34:01.4743177Z"}}
| session_id=75ed3c11-36de-48bf-8f7b-a0cd7dac4d58
我已经创建了一个普通blob存储和一个托管sql数据库的数据存储和数据集,没有任何问题,我只有参与者可以访问这些数据存储和数据集,因此我无法理解为什么不应该授权我添加数据湖。事实上,我们的管理员得到相同的错误,使我相信有一些其他问题

我希望你能帮我确定它是什么,或者给我一些线索,让我知道还有什么需要测试

编辑: 我知道我可能复制了这篇文章:
我将测试该解决方案并关闭此帖子,如果它有效的话

这实际上是一个副本

解决方案是将Azure ML用于访问数据湖的服务主体赋予存储Blob数据读取器访问权限。请注意,您必须至少等待几分钟,才能使其生效