You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Lake Gen2本地SMTP用户ACL配置失败求助

解决Azure Data Lake Gen2本地用户ACL配置中EntityId/SID获取失败问题

一、排查Get-AzStorageLocalUser命令失败原因

执行该命令无法获取用户SID,通常是以下问题导致:

  • 参数拼写错误:检查命令中的ResourceGroupName和StorageAccountName是否与实际资源完全一致(注意大小写和特殊字符),你当前命令中的"myblobstorage"和"myccount"需替换为真实资源名称。
  • 本地用户功能未启用:确认存储账户已开启本地用户功能:
    1. 登录Azure门户,进入目标存储账户
    2. 导航至安全 + 网络 > 本地用户,确认状态为已启用,且user1、user2已成功创建
  • PowerShell模块版本过低:本地用户是Azure Storage的较新特性,需确保Az.Storage模块版本足够新,执行以下命令更新:
    Update-Module -Name Az.Storage -Force
    
  • 权限不足:执行命令的账号需拥有存储账户的Contributor或Storage Account Local User Operator角色权限。

二、正确获取本地用户SID(EntityId)

替换参数后执行以下命令,精准获取目标用户的SID:

# 获取user1的SID
$user1 = Get-AzStorageLocalUser -ResourceGroupName "真实资源组名称" -StorageAccountName "真实存储账户名称" -UserName "user1"
$user1ID = $user1.Sid

# 获取user2的SID
$user2 = Get-AzStorageLocalUser -ResourceGroupName "真实资源组名称" -StorageAccountName "真实存储账户名称" -UserName "user2"
$user2ID = $user2.Sid

输出中的Sid字段即为配置ACL所需的EntityId,不能直接使用用户名替代。

三、正确配置文件夹ACL

注意:直接创建新ACL会覆盖原有条目,导致所有者等权限丢失,因此需基于现有ACL添加目标用户权限。

1. 配置folder1的ACL(user1读写执行权限)

# 获取存储账户上下文
$ctx = New-AzStorageContext -StorageAccountName "真实存储账户名称" -UseConnectedAccount

# 获取folder1现有ACL
$existingAclFolder1 = Get-AzDataLakeGen2ItemAcl -Context $ctx -FileSystem "容器名称" -Path "folder1"

# 添加user1的权限(rwx:读、写、执行)
$newAclFolder1 = Set-AzDataLakeGen2ItemAclObject -InputObject $existingAclFolder1 -AccessControlType user -EntityId $user1ID -Permission rwx

# 更新folder1的ACL
Update-AzDataLakeGen2Item -Context $ctx -FileSystem "容器名称" -Path "folder1" -Acl $newAclFolder1

2. 配置folder2的ACL(user2读写执行权限)

# 获取folder2现有ACL
$existingAclFolder2 = Get-AzDataLakeGen2ItemAcl -Context $ctx -FileSystem "容器名称" -Path "folder2"

# 添加user2的权限
$newAclFolder2 = Set-AzDataLakeGen2ItemAclObject -InputObject $existingAclFolder2 -AccessControlType user -EntityId $user2ID -Permission rwx

# 更新folder2的ACL
Update-AzDataLakeGen2Item -Context $ctx -FileSystem "容器名称" -Path "folder2" -Acl $newAclFolder2

四、验证权限隔离

配置完成后,可通过以下方式验证:

  • 使用user1的凭据访问存储账户,确认可读写folder1,无法写入folder2
  • 使用user2的凭据访问存储账户,确认可读写folder2,无法写入folder1

内容的提问来源于stack exchange,提问作者Yoshinobu Furuya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:57:46