【问题标题】:Trying to Connect Azure DataLake using Managed access but getting unauthorized error尝试使用托管访问连接 Azure DataLake 但出现未经授权的错误
【发布时间】:2021-07-22 16:46:08
【问题描述】:
string dfsUri = "https://" + accountName + ".dfs.core.windows.net";
DataLakeServiceClient dataLakeServiceClient = new DataLakeServiceClient(new Uri(dfsUri), new DefaultAzureCredential(new DefaultAzureCredentialOptions()));
DataLakeFileSystemClient dataLakeFileSystemClient = await dataLakeServiceClient.CreateFileSystemAsync("test1");
DataLakeDirectoryClient directoryClient = await dataLakeFileSystemClient.CreateDirectoryAsync("my-directory");
DataLakeFileClient fileClient = await directoryClient.CreateFileAsync("uploaded-file.txt");
FileStream fileStream = File.OpenRead("");
long fileSize = fileStream.Length;
await fileClient.AppendAsync(fileStream, offset: 0);
await fileClient.FlushAsync(position: fileSize);

尝试使用托管标识连接 Azure DataLake,但在线出现未经授权的错误:

DataLakeFileSystemClient dataLakeFileSystemClient = await dataLakeServiceClient.CreateFileSystemAsync("test1");

错误消息:此请求无权执行此操作,状态:403(此请求无权执行此操作。)\r\n错误代码:授权失败

【问题讨论】:

  • MSI 在 ADLS 帐户中具有哪些 IAM 角色?

标签: c# azure azure-functions azure-data-lake azure-managed-identity


【解决方案1】:

确保您的托管标识至少具有存储数据 Blob 读取器或存储数据 Blob 参与者角色。

要了解如何使用 Azure 门户为资源分配托管标识访问权限,请查看以下链接:Assign a managed identity access to a resource by using the Azure portal

要了解 ask gen2 中可用角色的详细信息,请查看以下链接:Access control model in Azure Data Lake Storage Gen2

您能否告诉我们,您为托管身份授予了哪些角色?

【讨论】:

    猜你喜欢
    • 2020-05-01
    • 2011-09-15
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2019-05-28
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多